Template:Infobox/styles.css
Template page
More actions
.loka-infobox {
float: right;
clear: right;
width: 300px;
margin: 0 0 1em 1em;
/* Opaque, not translucent, for the same reason as before (a translucent
overlay only ever looked right against this wiki's own dark page
background, and washed out on light mode) -- but now a genuinely
neutral charcoal (equal R/G/B) rather than the previous warm
brown-tinted near-black, since that read as muddy/dirty rather than
a clean dark surface. Kept as a subtle vertical gradient (still lines
up with the header photo's own fade), a light touch of shadow to
lift it off the page without being heavy, and gently rounded
corners (clipped via overflow:hidden, which is why the header
photo's own square corners still end up rounded to match). */
background: linear-gradient(180deg, #1c1c1c 0%, #131313 100%);
color: #f0ece2;
border: 1px solid rgba(255, 255, 255, .1);
border-radius: 6px;
overflow: hidden;
box-shadow: 0 3px 10px rgba(0, 0, 0, .25);
}
@media (prefers-color-scheme: light) {
.loka-infobox {
background: linear-gradient(180deg, #ffffff 0%, #f4efe3 100%);
color: #241f1a;
border-color: rgba(0, 0, 0, .1);
box-shadow: 0 3px 10px rgba(0, 0, 0, .1);
}
}
.loka-infobox--wide {
width: 440px;
}
/* Below this width a floated fixed-width box (300px, or 520px for --wide)
either overflows the viewport or squeezes body text into an unreadably
narrow column, so every infobox drops the float and goes full-width
instead -- applies wiki-wide since this is the shared shell every
specific infobox is built on. */
@media (max-width: 600px) {
.loka-infobox,
.loka-infobox--wide {
float: none;
clear: none;
width: 100%;
max-width: 100%;
margin: 0 0 1em 0;
box-sizing: border-box;
}
}
.loka-infobox-name {
text-align: center;
font-family: UNIVERSAL-SERIF, serif;
font-variant: small-caps;
font-size: 1.25em;
font-weight: 600;
padding: .5em;
border-bottom: 1px solid rgba(255, 255, 255, .08);
}
/* Plain text, not a solid coloured chip -- matches the same muted gold
"eyebrow" treatment used for every other section heading in an infobox
(loka-tournament-col-heading etc.) instead of standing out as its own
loud element. Flips to a darker amber in light mode, same as those. */
.loka-infobox-type {
color: #f0cf8e;
font-weight: 700;
font-size: .7em;
text-transform: uppercase;
letter-spacing: .04em;
text-align: center;
padding: .3em .5em;
border-bottom: 1px solid rgba(255, 255, 255, .08);
}
@media (prefers-color-scheme: light) {
.loka-infobox-type {
color: #9c6b2e;
border-bottom-color: rgba(0, 0, 0, .1);
}
}
.loka-infobox-image {
line-height: 0;
text-align: center;
padding: 10px;
}
.loka-infobox-image img {
max-width: 100%;
height: auto;
}
.loka-infobox-header-photo {
position: relative;
height: 150px;
overflow: hidden;
}
.loka-infobox-header-photo img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
/* Previous attempts used a second overlay div and tried to hand-tune its
alpha to approximately match the box's own background colour by eye
-- fragile, and it kept reading as a hard cut regardless of the exact
numbers used. This instead fades the photo's OWN opacity to nothing
via a mask, so what's revealed underneath as it disappears is
whatever's actually behind it (.loka-infobox's real background),
guaranteed to match exactly since nothing is being approximated. */
-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 35%, transparent 100%);
mask-image: linear-gradient(to bottom, #000 0%, #000 35%, transparent 100%);
}
.loka-infobox-header-scrim {
position: absolute;
inset: 0;
/* Only handles darkening the top for the name/type text now -- the
bottom fade is the image's own mask (above), not this. */
background: linear-gradient(to bottom,
rgba(8, 6, 3, .8) 0,
rgba(8, 6, 3, .35) 50px,
rgba(8, 6, 3, 0) 85px);
}
.loka-infobox-header-text {
position: relative;
text-align: center;
}
.loka-infobox-header-text .loka-infobox-name {
/* Explicit, not inherited: this text always sits on the header photo's
own permanent dark scrim (see loka-infobox-header-scrim), regardless
of the page's own light/dark theme, so it must always be light --
otherwise it silently inherits .loka-infobox's theme-adaptive colour
and goes dark-on-dark in light mode (a real, previously-unnoticed
bug: the name was unreadable against its own header photo). */
color: #ffffff;
border-bottom: none;
text-shadow: 0 1px 3px rgba(0, 0, 0, .9);
}
.loka-infobox-header-text .loka-infobox-type {
/* Sitting on top of an arbitrary photo needs some kind of scrim behind
it to stay legible regardless of what's in the image, so this one
keeps a background chip unlike the plain-text version above -- but a
neutral dark tint (matching the header photo's own scrim) rather
than a saturated brown patch. Always dark regardless of page theme,
like the rest of the header photo overlay. Case/weight/letter-spacing
and colour are otherwise identical to the base .loka-infobox-type
(and every other section-heading label in the infobox), so it reads
as the same kind of text rather than a one-off exception.
display:inline-block (centred via the parent's text-align, above)
instead of a full-width bar -- a small pill sitting under the name
reads as a deliberate badge, rather than a strip that happens to
span the same width as the photo purely because it's a block-level
div. Rounded to match the box's own (also modest) corner radius. */
display: inline-block;
background: rgba(20, 16, 12, .55);
border-bottom: none;
border-radius: 4px;
margin-top: .2em;
text-shadow: 0 1px 3px rgba(0, 0, 0, .9);
}
.loka-infobox-row {
display: flex;
align-items: baseline;
padding: .35em .6em;
border-top: 1px solid rgba(255, 255, 255, .08);
font-size: .9em;
}
/* Matches the muted, uppercase "eyebrow" label treatment used by
Infobox tournament's detail tiles and Infobox town's Location panel
(loka-tournament-detail-label / loka-town-location-heading), so every
infobox on the wiki shares one label language even though tournament's
is a stacked tile and this one is a side-by-side row. */
.loka-infobox-row-key {
flex: 0 0 38%;
font-size: .78em;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .03em;
opacity: .65;
text-align: left;
}
.loka-infobox-row-value {
flex: 1;
text-align: left;
}
.loka-infobox-row--wide {
flex-direction: column;
align-items: flex-start;
gap: .3em;
}
.loka-hlist {
list-style: none;
margin: 0;
padding: 0;
display: inline;
}
.loka-hlist li {
display: inline;
}
.loka-hlist li:not(:last-child)::after {
content: ", ";
}
.loka-hlist--stacked {
display: block;
}
.loka-hlist--stacked li {
display: block;
}
.loka-hlist--stacked li:not(:last-child)::after {
content: none;
}
/* A faint white hairline (8% opacity) reads fine as a subtle divider on
this wiki's own dark page background, but is nearly invisible against
a light one -- flipped to an equally faint dark line instead so every
infobox keeps its internal row/section dividers in both themes. */
@media (prefers-color-scheme: light) {
.loka-infobox-name {
border-bottom-color: rgba(0, 0, 0, .1);
}
.loka-infobox-row {
border-top-color: rgba(0, 0, 0, .1);
}
}