MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
Stop overriding tab geometry: draw the border with an inset shadow so Vector own padding still positions labels and the watch icon; lighter selected tab for readable dark text |
Readable section numbers in the table of contents |
||
| Line 291: | Line 291: | ||
color: #21506b; | color: #21506b; | ||
opacity: 1; | opacity: 1; | ||
} | |||
#toc .tocnumber, | |||
.toc .tocnumber { | |||
color: var(--muted); | |||
} | |||
#toc a:hover .tocnumber, | |||
.toc a:hover .tocnumber { | |||
color: var(--text); | |||
} | } | ||
Revision as of 11:47, 5 September 2026
/*======================================================================
Evospace wiki skin — tokens shared with evospace.tech
======================================================================*/
:root {
color-scheme: dark;
--bg: #2e2e2e;
--bg-deep: #1a1a1a;
--bg-base: #0a0a10;
--steel: #3a3e44;
--steel-light: #525860;
--steel-mid: #434850;
--steel-dark: #272a2f;
--panel: #1a1a1a;
--panel-raised: #242424;
--panel-border: #4a4a4a;
--recess: #151515;
--bevel-light: rgba(255, 255, 255, 0.1);
--bevel-dark: rgba(0, 0, 0, 0.65);
--text: #ececec;
--muted: #8a8a8a;
--accent-subtle: rgba(72, 212, 255, 0.14);
--accent-muted: #5ec4e8;
--accent: #48d4ff;
--accent-bright: #7ae4ff;
--accent-deep: #1e9ec7;
--link: #8fb4c6;
--link-visited: #7d97a5;
--steel-ink: #10141a;
--danger: #c45c5c;
--steel-texture:
repeating-linear-gradient(0deg,
rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px,
transparent 1px, transparent 3px,
rgba(0,0,0,.04) 3px, rgba(0,0,0,.04) 4px,
transparent 4px, transparent 7px),
repeating-linear-gradient(90deg,
transparent, transparent 2px,
rgba(255,255,255,.012) 2px, rgba(255,255,255,.012) 3px);
--steel-gloss:
linear-gradient(180deg,
rgba(255,255,255,.16) 0%, rgba(255,255,255,.07) 6%,
rgba(255,255,255,.02) 14%, transparent 38%);
--metal-rim:
linear-gradient(90deg, transparent 0%,
rgba(255,255,255,.22) 12%, rgba(255,255,255,.72) 50%,
rgba(255,255,255,.22) 88%, transparent 100%);
--steel-body:
linear-gradient(180deg,
var(--steel-light) 0%, var(--steel-mid) 14%,
var(--steel) 32%, var(--steel) 100%);
--mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
}
/*==================== page ====================*/
body {
background: var(--bg-base);
color: var(--text);
}
.mw-body,
#content,
#mw-content-text {
background: var(--panel);
color: var(--text);
border-color: var(--panel-border);
}
.mw-body {
border: 1px solid var(--panel-border);
border-radius: 6px;
box-shadow: inset 1px 1px 0 var(--bevel-light), 0 6px 24px rgba(0,0,0,.5);
}
#mw-page-base {
background: var(--bg-deep);
}
#mw-head-base,
#mw-navigation h2 {
border: 0;
}
/*==================== typography ====================*/
.mw-body h1,
.mw-body h2,
.mw-body h3,
.mw-body h4,
.mw-body h5,
.mw-body h6,
#firstHeading {
color: var(--text);
font-weight: 600;
border: 0;
}
.mw-body h1,
#firstHeading {
border-bottom: 1px solid var(--steel-mid);
padding-bottom: .25em;
}
.mw-body h2 {
border-bottom: 1px solid var(--steel-dark);
padding-bottom: .2em;
}
hr {
border: 0;
border-top: 1px solid var(--steel-dark);
}
/*==================== links ====================*/
.mw-body a,
.mw-body a.external,
#mw-panel a,
#footer a {
color: var(--link);
}
.mw-body a:visited {
color: var(--link-visited);
}
.mw-body a:hover,
#mw-panel a:hover {
color: var(--accent-bright);
text-decoration: underline;
}
.mw-body a.new,
#mw-panel a.new,
a.new:visited {
color: var(--danger);
}
.mw-body a.external {
background-image: none;
padding-right: 0;
}
/*==================== personal bar ====================*/
#p-personal ul {
color: var(--muted);
}
#p-personal li a,
#p-personal li a:visited,
#pt-anontalk a,
#pt-anonuserpage {
color: #b6bcc2;
}
#p-personal li a:hover {
color: var(--accent-bright);
}
#p-personal li.new a,
#p-personal li a.new {
color: var(--danger);
}
/*==================== sidebar & tabs ====================*/
#mw-panel.vector-legacy-sidebar .vector-menu-heading {
color: var(--muted);
text-transform: uppercase;
letter-spacing: .08em;
font-size: .72rem;
border: 0;
background: none;
}
#mw-panel.vector-legacy-sidebar .vector-menu-content {
background: none;
}
.vector-menu-tabs,
.vector-menu-tabs ul,
.vector-menu-tabs li,
.vector-menu-tabs li a,
.vector-menu-dropdown .vector-menu-heading {
background-image: none;
}
.vector-menu-tabs li,
.vector-menu-dropdown .vector-menu-heading {
background: var(--steel-dark);
box-shadow:
inset 1px 0 0 var(--panel-border),
inset -1px 0 0 var(--panel-border),
inset 0 1px 0 var(--panel-border);
border-radius: 4px 4px 0 0;
}
.vector-menu-tabs li.selected {
background: linear-gradient(180deg, #737a83 0%, #5c636b 100%);
}
.vector-menu-tabs li a,
.vector-menu-tabs li a span,
.vector-menu-dropdown .vector-menu-heading {
color: var(--link);
}
.vector-menu-tabs li.selected a,
.vector-menu-tabs li.selected a span {
color: #0d1116;
font-weight: 600;
}
.vector-search-box-inner,
#searchform input,
.cdx-text-input__input {
background: var(--recess) !important;
border: 1px solid var(--panel-border) !important;
color: var(--text) !important;
border-radius: 4px;
}
.cdx-text-input__input::placeholder {
color: var(--muted);
}
/*==================== steel frame — the shared panel look ====================*/
.infobox,
#toc,
.toc,
.catlinks,
table.recipe-table {
background: var(--steel-gloss), var(--steel-texture), var(--steel-body) !important;
border: 1px solid rgba(255,255,255,.1) !important;
border-top-color: rgba(255,255,255,.28) !important;
border-bottom-color: rgba(0,0,0,.55) !important;
border-radius: 6px !important;
padding: 4px !important;
box-shadow:
inset 0 1px 0 rgba(255,255,255,.3),
inset 0 -1px 0 rgba(0,0,0,.6),
0 2px 8px rgba(0,0,0,.4) !important;
color: var(--text);
position: relative;
}
.infobox::after,
#toc::after,
table.recipe-table::after {
content: '';
position: absolute;
top: 1px;
left: 10px;
right: 10px;
height: 1px;
border-radius: 1px;
background: var(--metal-rim);
pointer-events: none;
}
.infobox caption a,
table.recipe-table caption a {
color: var(--steel-ink);
}
.infobox caption a:hover,
table.recipe-table caption a:hover {
color: #21506b;
}
/*==================== table of contents ====================*/
#toc,
.toc {
display: inline-block;
}
#toc .toctitle,
.toc .toctitle {
color: var(--steel-ink);
text-align: left;
padding: 2px 4px 6px;
}
#toc .toctitle a,
.toc .toctitle a,
#toc .toctogglelabel,
.toc .toctogglelabel {
color: var(--steel-ink);
opacity: .7;
}
#toc .toctitle a:hover,
.toc .toctitle a:hover,
#toc .toctogglelabel:hover {
color: #21506b;
opacity: 1;
}
#toc .tocnumber,
.toc .tocnumber {
color: var(--muted);
}
#toc a:hover .tocnumber,
.toc a:hover .tocnumber {
color: var(--text);
}
#toc ul,
.toc ul {
background: var(--recess);
border-radius: 5px;
padding: .6em 1.2em;
margin: 0;
box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);
}
/*==================== wikitables ====================*/
table.wikitable {
background: var(--recess);
color: var(--text);
border: 1px solid var(--panel-border);
border-collapse: collapse;
border-radius: 6px;
overflow: hidden;
}
table.wikitable > * > tr > th {
background: var(--steel-body);
background-image: var(--steel-gloss), var(--steel-texture), var(--steel-body);
color: var(--steel-ink);
border: 1px solid var(--steel-dark);
text-align: left;
}
table.wikitable > * > tr > td {
background: transparent;
border: 1px solid var(--steel-dark);
}
table.wikitable > * > tr:nth-child(even) > td {
background: rgba(255,255,255,.022);
}
/*==================== infobox ====================*/
.infobox {
float: right;
clear: right;
margin: 0 0 1em 1em;
width: 300px;
border-collapse: separate !important;
font-size: 90%;
overflow: hidden;
}
.infobox th,
.infobox td {
background: var(--recess) !important;
color: var(--text);
border: 0 !important;
padding: 6px !important;
}
.infobox th {
color: var(--muted);
font-weight: 600;
text-transform: uppercase;
letter-spacing: .06em;
font-size: .78em;
width: 40%;
}
.infobox tr {
border: 0;
}
.infobox .image-link {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
}
.infobox .image-link img {
max-width: 32px;
max-height: 32px;
display: inline-block;
margin: 0;
}
/*==================== recipe cards ====================*/
.recipe-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
gap: 9px;
align-items: stretch;
margin: 10px 0;
}
table.recipe-table {
display: flex !important;
flex-direction: column;
width: auto !important;
min-width: 0;
max-width: none;
height: 100%;
margin: 0;
font-size: 85%;
border-collapse: separate !important;
}
table.recipe-table caption,
.infobox caption {
color: var(--steel-ink);
font-weight: 600;
padding: 3px 7px;
margin-bottom: 4px;
text-align: left;
background: linear-gradient(180deg, #6c737c 0%, #575e66 100%);
border: 0;
border-radius: 4px;
display: flex;
align-items: center;
gap: 6px;
}
table.recipe-table tbody {
display: flex;
flex-direction: column;
flex: 1;
background: var(--recess);
border-radius: 5px;
padding: 4px;
box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);
}
table.recipe-table tr {
display: flex;
align-items: center;
gap: 6px;
border: 0;
}
table.recipe-table tr:last-child {
margin-top: auto;
}
table.recipe-table th {
display: block;
width: 100%;
background: none !important;
color: var(--muted) !important;
text-align: left !important;
text-transform: uppercase;
letter-spacing: .1em;
font-size: .68rem !important;
font-weight: 600 !important;
padding: 6px 2px 2px !important;
border: 0 !important;
}
table.recipe-table td {
background: none !important;
border: 0 !important;
padding: 2px !important;
color: var(--text);
}
table.recipe-table td:first-child {
flex: 0 0 34px;
width: 34px !important;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0,0,0,.35) !important;
border: 1px solid var(--steel-dark) !important;
border-radius: 4px;
}
table.recipe-table td:nth-child(2) {
flex: 1;
width: auto !important;
white-space: normal;
line-height: 1.25;
}
table.recipe-table td[colspan="2"] {
flex: 1;
text-align: center;
color: var(--muted);
font-variant-numeric: tabular-nums;
}
table.recipe-table img {
width: 28px !important;
height: 28px !important;
image-rendering: pixelated;
}
/*==================== translate language bar ====================*/
.mw-pt-languages {
background: var(--recess) !important;
border: 1px solid var(--steel-dark);
border-radius: 6px;
padding: 6px 10px;
margin-bottom: 1em;
color: var(--muted);
box-shadow: inset 2px 2px 6px rgba(0,0,0,.5);
}
.mw-pt-languages-label {
color: var(--muted);
font-weight: 600;
text-transform: uppercase;
letter-spacing: .06em;
font-size: .78em;
}
.mw-pt-languages-list a {
color: var(--link);
}
.mw-pt-languages-list a:hover {
color: var(--accent-bright);
}
.mw-pt-languages-ui,
.mw-pt-languages-selected {
color: var(--text);
font-weight: 600;
}
.mw-pt-progress::after {
background: var(--muted) !important;
opacity: .5;
}
.mw-pt-progress--complete::after {
background: var(--accent) !important;
opacity: 1;
}
.mw-pt-languages-list a:empty {
display: none;
}
.mw-pt-languages-list li:has(> a:empty) {
display: none;
}
/*==================== category bar ====================*/
.catlinks {
padding: 4px !important;
color: var(--muted);
}
.catlinks > div {
background: var(--recess);
border-radius: 5px;
padding: 7px 10px;
box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);
}
.catlinks a {
color: var(--accent);
}
.catlinks a:hover {
color: var(--accent-bright);
}
/*==================== footer ====================*/
#footer,
#footer li,
#footer-info li {
color: var(--muted);
}
#footer {
border-top: 1px solid var(--steel-dark);
}