Template:OOOInfoBox/styles.css: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
/* | /* OOO infobox — TemplateStyles + night-mode friendly | ||
- Uses skin tokens with fallbacks | |||
- Sets color whenever background is set | |||
- Keeps border colors as literals to avoid TemplateStyles color warnings | |||
*/ | |||
/* Base box */ | |||
.ooo-infobox { | .ooo-infobox { | ||
width: 340px; | width: 340px; | ||
border-width: 1px; | border-width: 1px; | ||
border-style: solid; | border-style: solid; | ||
border-color: #a2a9b1; /* | border-color: #a2a9b1; /* literal to avoid linter warning */ | ||
border-collapse: separate; | border-collapse: separate; | ||
border-spacing: 0; | border-spacing: 0; | ||
background: var(--background-color-base,#ffffff); | background: var(--background-color-base, #ffffff); | ||
color: var(--color-base,#202122); | color: var(--color-base, #202122); | ||
font-size: 90%; | font-size: 90%; | ||
box-shadow: 0 2px 10px rgba(0,0,0,.08); | box-shadow: 0 2px 10px rgba(0,0,0,.08); | ||
Line 16: | Line 21: | ||
} | } | ||
/* Links */ | /* Links (optional; remove to let skin handle them) */ | ||
.ooo-infobox a { color: var(--color-progressive,#36c); } | .ooo-infobox a { color: var(--color-progressive, #36c); } | ||
.ooo-infobox a:hover { color: var(--color-progressive--hover,#447ff5); } | .ooo-infobox a:hover { color: var(--color-progressive--hover, #447ff5); } | ||
/* Title bar */ | /* Title bar */ | ||
Line 26: | Line 31: | ||
font-size: 112%; | font-size: 112%; | ||
letter-spacing: .2px; | letter-spacing: .2px; | ||
background: var(--background-color-neutral,#f5f5f5); | background: var(--background-color-neutral, #f5f5f5); | ||
color: #cea141; /* NMC accent */ | color: #cea141; /* NMC accent */ | ||
padding: 12px 10px; | padding: 12px 10px; | ||
border-top: 1px solid #a2a9b1; /* | border-top: 1px solid #a2a9b1; /* literal */ | ||
border-bottom: 1px solid #a2a9b1; /* | border-bottom: 1px solid #a2a9b1; /* literal */ | ||
} | } | ||
Line 37: | Line 42: | ||
text-align: center; | text-align: center; | ||
padding: 12px; | padding: 12px; | ||
background: var(--background-color-neutral-subtle,#f8f9fa); | background: var(--background-color-neutral-subtle, #f8f9fa); | ||
color: var(--color-base, #202122); | |||
} | } | ||
.ooo-infobox .ooo-infobox__image img { | .ooo-infobox .ooo-infobox__image img { | ||
Line 48: | Line 54: | ||
text-align: center; | text-align: center; | ||
font-style: italic; | font-style: italic; | ||
color: var(--color-subtle,#54595d); | color: var(--color-subtle, #54595d); | ||
padding: 8px 12px 12px; | padding: 8px 12px 12px; | ||
line-height: 1.35; | line-height: 1.35; | ||
background: var(--background-color-neutral-subtle,#f8f9fa); | background: var(--background-color-neutral-subtle, #f8f9fa); | ||
border-bottom: 1px solid #a2a9b1; /* | border-bottom: 1px solid #a2a9b1; /* literal */ | ||
} | } | ||
/* | /* Table rows/cells */ | ||
.ooo-infobox th, | .ooo-infobox th, | ||
.ooo-infobox td { | .ooo-infobox td { | ||
Line 64: | Line 70: | ||
width: 46%; | width: 46%; | ||
font-weight: 600; | font-weight: 600; | ||
color: var(--color-emphasized,#101418); | color: var(--color-emphasized, #101418); | ||
} | } | ||
/* Zebra striping */ | /* Zebra striping (set color alongside background) */ | ||
.ooo-infobox tr:nth-child(even) td, | .ooo-infobox tr:nth-child(even) td, | ||
.ooo-infobox tr:nth-child(even) th { | .ooo-infobox tr:nth-child(even) th { | ||
background: var(--background-color-neutral-subtle,#f8f9fa); | background: var(--background-color-neutral-subtle, #f8f9fa); | ||
color: var(--color-base, #202122); | |||
} | } | ||
Line 78: | Line 85: | ||
font-weight: 800; | font-weight: 800; | ||
padding: 10px 12px; | padding: 10px 12px; | ||
background: var(--background-color-neutral,#eaecf0); | background: var(--background-color-neutral, #eaecf0); | ||
color: var(--color-base,#202122); | color: var(--color-base, #202122); | ||
border-top: 1px solid #a2a9b1; /* | border-top: 1px solid #a2a9b1; /* literal */ | ||
border-bottom: 1px solid #a2a9b1; /* | border-bottom: 1px solid #a2a9b1; /* literal */ | ||
} | } | ||
/* Helper text */ | /* Helper text */ | ||
.ooo-infobox .ooo-infobox__muted { | .ooo-infobox .ooo-infobox__muted { | ||
color: var(--color-subtle,#54595d); | color: var(--color-subtle, #54595d); | ||
} | } | ||
/* | /* --------- Night mode: forced (explicit user toggle) --------- | ||
Wrapped in @media screen to avoid affecting print styles. | |||
*/ | |||
@media screen { | |||
html.skin-theme-clientpref-night .ooo-infobox { | |||
border-color: #3a3a3a; /* literals for borders */ | |||
background: var(--background-color-base, #1b1b1d); | |||
color: var(--color-base, #eaecf0); | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox a { | |||
color: var(--color-progressive, #6aa9ff); | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox a:hover { | |||
color: var(--color-progressive--hover, #8fbdff); | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__title { | |||
background: var(--background-color-neutral, #252527); | |||
color: #cea141; | |||
border-top-color: #3a3a3a; | |||
border-bottom-color: #3a3a3a; | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__image, | |||
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__caption, | |||
html.skin-theme-clientpref-night .ooo-infobox tr:nth-child(even) td, | |||
html.skin-theme-clientpref-night .ooo-infobox tr:nth-child(even) th { | |||
background: var(--background-color-neutral-subtle, #222325); | |||
color: var(--color-base, #eaecf0); | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__caption, | |||
html.skin-theme-clientpref-night .ooo-infobox__group th { | |||
border-bottom-color: #3a3a3a; | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox__group th { | |||
background: var(--background-color-neutral, #2a2b2e); | |||
color: var(--color-base, #eaecf0); | |||
border-top-color: #3a3a3a; | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox th { | |||
color: var(--color-emphasized, #f1f2f3); | |||
} | |||
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__muted { | |||
color: var(--color-subtle, #a2a9b1); | |||
} | |||
} | |||
/* --------- Night mode: automatic (follow OS preference) --------- */ | |||
@media (prefers-color-scheme: dark) { | @media (prefers-color-scheme: dark) { | ||
.ooo-infobox { border-color: #3a3a3a; } | html.skin-theme-clientpref-os .ooo-infobox { | ||
.ooo-infobox .ooo-infobox__title { | border-color: #3a3a3a; | ||
background: var(--background-color-base, #1b1b1d); | |||
color: var(--color-base, #eaecf0); | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox a { | |||
color: var(--color-progressive, #6aa9ff); | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox a:hover { | |||
color: var(--color-progressive--hover, #8fbdff); | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__title { | |||
background: var(--background-color-neutral, #252527); | |||
color: #cea141; | |||
border-top-color: #3a3a3a; | border-top-color: #3a3a3a; | ||
border-bottom-color: #3a3a3a; | border-bottom-color: #3a3a3a; | ||
} | } | ||
.ooo-infobox .ooo-infobox__caption { border-bottom-color: #3a3a3a; } | |||
.ooo-infobox__group th { | html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__image, | ||
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__caption, | |||
html.skin-theme-clientpref-os .ooo-infobox tr:nth-child(even) td, | |||
html.skin-theme-clientpref-os .ooo-infobox tr:nth-child(even) th { | |||
background: var(--background-color-neutral-subtle, #222325); | |||
color: var(--color-base, #eaecf0); | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__caption, | |||
html.skin-theme-clientpref-os .ooo-infobox__group th { | |||
border-bottom-color: #3a3a3a; | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox__group th { | |||
background: var(--background-color-neutral, #2a2b2e); | |||
color: var(--color-base, #eaecf0); | |||
border-top-color: #3a3a3a; | border-top-color: #3a3a3a; | ||
} | |||
html.skin-theme-clientpref-os .ooo-infobox th { | |||
color: var(--color-emphasized, #f1f2f3); | |||
} | |||
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__muted { | |||
color: var(--color-subtle, #a2a9b1); | |||
} | } | ||
} | } |
Revision as of 06:50, 7 October 2025
/* OOO infobox — TemplateStyles + night-mode friendly
- Uses skin tokens with fallbacks
- Sets color whenever background is set
- Keeps border colors as literals to avoid TemplateStyles color warnings
*/
/* Base box */
.ooo-infobox {
width: 340px;
border-width: 1px;
border-style: solid;
border-color: #a2a9b1; /* literal to avoid linter warning */
border-collapse: separate;
border-spacing: 0;
background: var(--background-color-base, #ffffff);
color: var(--color-base, #202122);
font-size: 90%;
box-shadow: 0 2px 10px rgba(0,0,0,.08);
border-radius: 12px;
overflow: hidden;
}
/* Links (optional; remove to let skin handle them) */
.ooo-infobox a { color: var(--color-progressive, #36c); }
.ooo-infobox a:hover { color: var(--color-progressive--hover, #447ff5); }
/* Title bar */
.ooo-infobox .ooo-infobox__title {
text-align: center;
font-weight: 800;
font-size: 112%;
letter-spacing: .2px;
background: var(--background-color-neutral, #f5f5f5);
color: #cea141; /* NMC accent */
padding: 12px 10px;
border-top: 1px solid #a2a9b1; /* literal */
border-bottom: 1px solid #a2a9b1; /* literal */
}
/* Image region */
.ooo-infobox .ooo-infobox__image {
text-align: center;
padding: 12px;
background: var(--background-color-neutral-subtle, #f8f9fa);
color: var(--color-base, #202122);
}
.ooo-infobox .ooo-infobox__image img {
max-width: 100%;
height: auto;
}
/* Caption */
.ooo-infobox .ooo-infobox__caption {
text-align: center;
font-style: italic;
color: var(--color-subtle, #54595d);
padding: 8px 12px 12px;
line-height: 1.35;
background: var(--background-color-neutral-subtle, #f8f9fa);
border-bottom: 1px solid #a2a9b1; /* literal */
}
/* Table rows/cells */
.ooo-infobox th,
.ooo-infobox td {
padding: 9px 12px;
vertical-align: top;
}
.ooo-infobox th {
width: 46%;
font-weight: 600;
color: var(--color-emphasized, #101418);
}
/* Zebra striping (set color alongside background) */
.ooo-infobox tr:nth-child(even) td,
.ooo-infobox tr:nth-child(even) th {
background: var(--background-color-neutral-subtle, #f8f9fa);
color: var(--color-base, #202122);
}
/* Group headers */
.ooo-infobox__group th {
text-align: center;
font-weight: 800;
padding: 10px 12px;
background: var(--background-color-neutral, #eaecf0);
color: var(--color-base, #202122);
border-top: 1px solid #a2a9b1; /* literal */
border-bottom: 1px solid #a2a9b1; /* literal */
}
/* Helper text */
.ooo-infobox .ooo-infobox__muted {
color: var(--color-subtle, #54595d);
}
/* --------- Night mode: forced (explicit user toggle) ---------
Wrapped in @media screen to avoid affecting print styles.
*/
@media screen {
html.skin-theme-clientpref-night .ooo-infobox {
border-color: #3a3a3a; /* literals for borders */
background: var(--background-color-base, #1b1b1d);
color: var(--color-base, #eaecf0);
}
html.skin-theme-clientpref-night .ooo-infobox a {
color: var(--color-progressive, #6aa9ff);
}
html.skin-theme-clientpref-night .ooo-infobox a:hover {
color: var(--color-progressive--hover, #8fbdff);
}
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__title {
background: var(--background-color-neutral, #252527);
color: #cea141;
border-top-color: #3a3a3a;
border-bottom-color: #3a3a3a;
}
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__image,
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__caption,
html.skin-theme-clientpref-night .ooo-infobox tr:nth-child(even) td,
html.skin-theme-clientpref-night .ooo-infobox tr:nth-child(even) th {
background: var(--background-color-neutral-subtle, #222325);
color: var(--color-base, #eaecf0);
}
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__caption,
html.skin-theme-clientpref-night .ooo-infobox__group th {
border-bottom-color: #3a3a3a;
}
html.skin-theme-clientpref-night .ooo-infobox__group th {
background: var(--background-color-neutral, #2a2b2e);
color: var(--color-base, #eaecf0);
border-top-color: #3a3a3a;
}
html.skin-theme-clientpref-night .ooo-infobox th {
color: var(--color-emphasized, #f1f2f3);
}
html.skin-theme-clientpref-night .ooo-infobox .ooo-infobox__muted {
color: var(--color-subtle, #a2a9b1);
}
}
/* --------- Night mode: automatic (follow OS preference) --------- */
@media (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .ooo-infobox {
border-color: #3a3a3a;
background: var(--background-color-base, #1b1b1d);
color: var(--color-base, #eaecf0);
}
html.skin-theme-clientpref-os .ooo-infobox a {
color: var(--color-progressive, #6aa9ff);
}
html.skin-theme-clientpref-os .ooo-infobox a:hover {
color: var(--color-progressive--hover, #8fbdff);
}
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__title {
background: var(--background-color-neutral, #252527);
color: #cea141;
border-top-color: #3a3a3a;
border-bottom-color: #3a3a3a;
}
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__image,
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__caption,
html.skin-theme-clientpref-os .ooo-infobox tr:nth-child(even) td,
html.skin-theme-clientpref-os .ooo-infobox tr:nth-child(even) th {
background: var(--background-color-neutral-subtle, #222325);
color: var(--color-base, #eaecf0);
}
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__caption,
html.skin-theme-clientpref-os .ooo-infobox__group th {
border-bottom-color: #3a3a3a;
}
html.skin-theme-clientpref-os .ooo-infobox__group th {
background: var(--background-color-neutral, #2a2b2e);
color: var(--color-base, #eaecf0);
border-top-color: #3a3a3a;
}
html.skin-theme-clientpref-os .ooo-infobox th {
color: var(--color-emphasized, #f1f2f3);
}
html.skin-theme-clientpref-os .ooo-infobox .ooo-infobox__muted {
color: var(--color-subtle, #a2a9b1);
}
}
/* Responsive */
@media (max-width: 640px) {
.ooo-infobox { width: 100%; }
}