MediaWiki:Citizen.css: Difference between revisions
MediaWiki interface page
More actions
No edit summary |
No edit summary |
||
| (14 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* ── Google Fonts ─────────────────────────────────────────── */ | /* ── Google Fonts ─────────────────────────────────────────── */ | ||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap'); | @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap'); | ||
/* ════════════════════════════════════════════════════════════ | /* ════════════════════════════════════════════════════════════ | ||
TOKENS — NEVER CHANGE (fonts, radius, etc.) | |||
════════════════════════════════════════════════════════════ */ | ════════════════════════════════════════════════════════════ */ | ||
/* | :root { | ||
--font-family-base: 'IBM Plex Mono', monospace; | |||
--font-family-heading: 'IBM Plex Mono', monospace; | |||
--font-family-mono: 'IBM Plex Mono', monospace; | |||
--border-radius--small: 0; | |||
--border-radius--medium: 0; | |||
--border-radius--large: 0; | |||
--border-radius--pill: 0; | |||
--border-radius-sharp: 0; | |||
} | |||
/* ════════════════════════════════════════════════════════════ | |||
TOKENS — LIGHT MODE (default) | |||
════════════════════════════════════════════════════════════ */ | |||
:root, | :root, | ||
.skin- | html.skin-theme-clientpref-day { | ||
--color-surface-0: #f4f3f0; | |||
--color-surface-1: #edecea; | |||
--color-surface-2: #e5e4e0; | |||
--color-surface-0: #f4f3f0; | --color-surface-3: #edecea; | ||
--color-surface-1: #edecea; | --color-surface-4: #e5e4e0; | ||
--color-surface-2: #e5e4e0; | |||
--color-surface-3: #edecea; | |||
--color-surface-4: #e5e4e0; | |||
--color-base: #1a1917; | --color-base: #1a1917; | ||
--color-base--emphasized: #1a1917; | --color-base--emphasized: #1a1917; | ||
--color-base--subtle: #4a4845; | --color-base--subtle: #4a4845; | ||
--color-base--disabled: #7a7875; | --color-base--disabled: #7a7875; | ||
--color-progressive: #1a3a6b; | --color-progressive: #1a3a6b; | ||
--color-progressive--hover: #0f2548; | --color-progressive--hover: #0f2548; | ||
--color-progressive--active: #0a1a30; | --color-progressive--active: #0a1a30; | ||
--color-progressive--focus: #1a3a6b; | --color-progressive--focus: #1a3a6b; | ||
--border-color-base: #c8c5bf; | --border-color-base: #c8c5bf; | ||
--border-color-interactive: #9a9690; | --border-color-interactive: #9a9690; | ||
--color-destructive: #9b1c1c; | --color-destructive: #9b1c1c; | ||
--color-destructive--hover: #7a1515; | --color-destructive--hover: #7a1515; | ||
| Line 59: | Line 42: | ||
--color-warning: #7c5000; | --color-warning: #7c5000; | ||
--color-notice: #1a3a6b; | --color-notice: #1a3a6b; | ||
--color-icon: #4a4845; | --color-icon: #4a4845; | ||
--color-icon--subtle: #7a7875; | --color-icon--subtle: #7a7875; | ||
--color-icon--emphasized: #1a1917; | --color-icon--emphasized: #1a1917; | ||
--color-icon-interactive: #1a3a6b; | --color-icon-interactive: #1a3a6b; | ||
--box-shadow-card: 0 1px 3px rgba(0,0,0,.10); | --box-shadow-card: 0 1px 3px rgba(0,0,0,.10); | ||
--box-shadow-menu: 0 4px 12px rgba(0,0,0,.12); | --box-shadow-menu: 0 4px 12px rgba(0,0,0,.12); | ||
--box-shadow-drop: 0 2px 8px rgba(0,0,0,.10); | --box-shadow-drop: 0 2px 8px rgba(0,0,0,.10); | ||
--background-color-base: #f4f3f0; | |||
--background-color-base--hover: #edecea; | |||
--background-color-base: | --background-color-neutral: #edecea; | ||
--background-color-base--hover: | --background-color-neutral-subtle: #f4f3f0; | ||
--background-color-neutral: | --background-color-interactive: #e5e4e0; | ||
--background-color-neutral-subtle: | |||
--background-color-interactive: | |||
--background-color-interactive-subtle: #edecea; | --background-color-interactive-subtle: #edecea; | ||
--background-color-progressive-subtle: #eaf0fa; | --background-color-progressive-subtle: #eaf0fa; | ||
--background-color-disabled: | --background-color-disabled: #e5e4e0; | ||
--background-color-disabled-subtle: | --background-color-disabled-subtle: #edecea; | ||
--background-color-destructive-subtle: #fbe8ea; | --background-color-destructive-subtle: #fbe8ea; | ||
--background-color-success-subtle: | --background-color-success-subtle: #e8f4ec; | ||
--background-color-warning-subtle: | --background-color-warning-subtle: #fdf0e6; | ||
--background-color-notice-subtle: # | --background-color-notice-subtle: #eaf0fa; | ||
--color-placeholder: #7a7875; | |||
--color-surface-btn: #e5e4e0; | |||
--color-surface-btn--hover-bg: #1a1917; | |||
--color-surface-btn--hover-text: #f4f3f0; | |||
--color-diff-added: #e8f4ec; | |||
--color-diff-deleted: #fbe8ea; | |||
--color-selection-bg: #1a1917; | |||
--color-selection-text: #f4f3f0; | |||
--color-role-pilot-bg: #f5f0e0; | |||
--color-role-pilot-text: #5c4a00; | |||
--color-role-control-bg: #e0eaf5; | |||
--color-role-control-text: #0a2a4a; | |||
--color-role-note-bg: var(--color-surface-1); | |||
--color-role-note-text: var(--color-base--disabled); | |||
--color-role-header-bg: #d6ead6; | |||
--color-role-header-text: #1a3a1a; | |||
--color-role-header-accent: #4a8c4a; | |||
} | |||
/* ════════════════════════════════════════════════════════════ | |||
TOKENS — DARK MODE | |||
════════════════════════════════════════════════════════════ */ | |||
html.skin-theme-clientpref-night { | |||
--color-surface-0: #1a1917; | |||
--color-surface-1: #242220; | |||
--color-surface-2: #2e2c2a; | |||
--color-surface-3: #242220; | |||
--color-surface-4: #363330; | |||
--color-base: #f0eeea; | |||
--color-base--emphasized: #f4f3f0; | |||
--color-base--subtle: #c8c5bf; | |||
--color-base--disabled: #7a7875; | |||
--color-progressive: #7ba7e0; | |||
--color-progressive--hover: #a0c0f0; | |||
--color-progressive--active: #c0d8f8; | |||
--color-progressive--focus: #7ba7e0; | |||
--border-color-base: #3d3a36; | |||
--color-progressive: | --border-color-interactive: #5a5650; | ||
--color-destructive: #e07070; | |||
--color-destructive--hover: #f09090; | |||
--color-success: #6abf7a; | |||
--color-warning: #d4a040; | |||
--color-notice: #7ba7e0; | |||
--background-color- | --color-icon: #c8c5bf; | ||
--color-icon--subtle: #7a7875; | |||
-- | --color-icon--emphasized: #f4f3f0; | ||
-- | --color-icon-interactive: #7ba7e0; | ||
--box-shadow-card: 0 1px 3px rgba(0,0,0,.40); | |||
--box-shadow-menu: 0 4px 12px rgba(0,0,0,.50); | |||
--box-shadow-drop: 0 2px 8px rgba(0,0,0,.40); | |||
--background-color-base: #1a1917; | |||
--background-color-base--hover: #242220; | |||
--background-color-neutral: #242220; | |||
--background-color-neutral-subtle: #1a1917; | |||
--background-color-interactive: #2e2c2a; | |||
--background-color-interactive-subtle: #242220; | |||
--background-color-progressive-subtle: #1a2540; | |||
--background-color-disabled: #2e2c2a; | |||
--background-color-disabled-subtle: #242220; | |||
--background-color-destructive-subtle: #3a1a1a; | |||
--background-color-success-subtle: #1a3020; | |||
--background-color-warning-subtle: #302010; | |||
--background-color-notice-subtle: #1a2540; | |||
--color-placeholder: #7a7875; | |||
--color-surface-btn: #2e2c2a; | |||
--color-surface-btn--hover-bg: #f4f3f0; | |||
--color-surface-btn--hover-text: #1a1917; | |||
--color-diff-added: #1a3020; | |||
--color-diff-deleted: #3a1a1a; | |||
--color-selection-bg: #f4f3f0; | |||
--color-selection-text: #1a1917; | |||
--color-role-pilot-bg: #2e2600; | |||
--color-role-pilot-text: #e0c96a; | |||
--color-role-control-bg: #0d1e30; | |||
--color-role-control-text: #7ba7e0; | |||
--color-role-note-bg: var(--color-surface-1); | |||
--color-role-note-text: var(--color-base--disabled); | |||
--color-role-header-bg: #0d2010; | |||
--color-role-header-text: #6abf7a; | |||
--color-role-header-accent: #3a7a4a; | |||
} | } | ||
| Line 138: | Line 151: | ||
body, | body, | ||
.skin-citizen { | .skin-citizen { | ||
font-family: | font-family: var(--font-family-base); | ||
background-color: | background-color: var(--color-surface-0); | ||
color: | color: var(--color-base); | ||
} | } | ||
| Line 146: | Line 159: | ||
#firstHeading, | #firstHeading, | ||
.page-heading h1 { | .page-heading h1 { | ||
font-family: | font-family: var(--font-family-heading); | ||
font-weight: 600; | font-weight: 600; | ||
font-size: 1.3rem; | font-size: 1.3rem; | ||
letter-spacing: 3px; | letter-spacing: 3px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base); | ||
border-bottom: 1px solid | border-bottom: 1px solid var(--border-color-base); | ||
padding-bottom: 0.5rem; | padding-bottom: 0.5rem; | ||
margin-bottom: 1rem; | margin-bottom: 1rem; | ||
| Line 161: | Line 174: | ||
#p-logo a, | #p-logo a, | ||
.mw-logo-wordmark { | .mw-logo-wordmark { | ||
font-family: | font-family: var(--font-family-heading); | ||
font-weight: 600; | font-weight: 600; | ||
letter-spacing: 4px; | letter-spacing: 4px; | ||
| Line 169: | Line 182: | ||
/* ════════════════════════════════════════════════════════════ | /* ════════════════════════════════════════════════════════════ | ||
CARD / SURFACE BACKGROUNDS | CARD / SURFACE BACKGROUNDS | ||
════════════════════════════════════════════════════════════ */ | ════════════════════════════════════════════════════════════ */ | ||
| Line 179: | Line 189: | ||
.citizen-card__header, | .citizen-card__header, | ||
.citizen-card__body { | .citizen-card__body { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
color: | color: var(--color-base); | ||
} | } | ||
| Line 187: | Line 197: | ||
.citizen-page-info, | .citizen-page-info, | ||
.citizen-page-info__item { | .citizen-page-info__item { | ||
background-color: | background-color: var(--color-surface-1); | ||
border-color: | border-color: var(--border-color-base); | ||
color: | color: var(--color-base--subtle); | ||
} | } | ||
| Line 196: | Line 206: | ||
.citizen-header, | .citizen-header, | ||
header.citizen-header { | header.citizen-header { | ||
background-color: | background-color: var(--color-surface-1); | ||
border-bottom: 1px solid | border-bottom: 1px solid var(--border-color-interactive); | ||
} | } | ||
/* Sticky header */ | /* Sticky header */ | ||
.citizen-sticky-header { | .citizen-sticky-header { | ||
background-color: | background-color: var(--color-surface-1); | ||
border-bottom: 1px solid | border-bottom: 1px solid var(--border-color-interactive); | ||
} | } | ||
| Line 209: | Line 219: | ||
#citizen-sidebar, | #citizen-sidebar, | ||
.citizen-sidebar { | .citizen-sidebar { | ||
background-color: | background-color: var(--color-surface-1); | ||
border-right: 1px solid | border-right: 1px solid var(--border-color-base); | ||
} | } | ||
| Line 219: | Line 229: | ||
letter-spacing: 2.5px; | letter-spacing: 2.5px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base--disabled); | ||
font-weight: 600; | font-weight: 600; | ||
} | } | ||
| Line 226: | Line 236: | ||
.citizen-nav__item a, | .citizen-nav__item a, | ||
.citizen-sidebar a { | .citizen-sidebar a { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||
color: | color: var(--color-base); | ||
background-color: transparent; | background-color: transparent; | ||
} | } | ||
.citizen-nav__item a:hover, | .citizen-nav__item a:hover, | ||
.citizen-sidebar a:hover { | .citizen-sidebar a:hover { | ||
color: | color: var(--color-progressive); | ||
background-color: | background-color: var(--color-surface-2); | ||
} | } | ||
| Line 241: | Line 251: | ||
.citizen-toc, | .citizen-toc, | ||
#toc { | #toc { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
} | } | ||
| Line 251: | Line 261: | ||
letter-spacing: 2px; | letter-spacing: 2px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base--disabled); | ||
font-weight: 600; | font-weight: 600; | ||
} | } | ||
.citizen-toc__item a, | .citizen-toc__item a, | ||
#toc a { | #toc a { | ||
color: | color: var(--color-base--subtle); | ||
} | } | ||
.citizen-toc__item a:hover, | .citizen-toc__item a:hover, | ||
#toc a:hover { | #toc a:hover { | ||
color: | color: var(--color-progressive); | ||
} | } | ||
| Line 266: | Line 276: | ||
.citizen-search-results, | .citizen-search-results, | ||
.citizen-typeahead { | .citizen-typeahead { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
box-shadow: | box-shadow: var(--box-shadow-menu); | ||
} | } | ||
.citizen-search-results__item, | .citizen-search-results__item, | ||
.citizen-typeahead__item { | .citizen-typeahead__item { | ||
background-color: transparent; | background-color: transparent; | ||
color: | color: var(--color-base); | ||
} | } | ||
.citizen-search-results__item:hover, | .citizen-search-results__item:hover, | ||
.citizen-typeahead__item:hover { | .citizen-typeahead__item:hover { | ||
background-color: | background-color: var(--color-surface-2); | ||
} | } | ||
| Line 284: | Line 294: | ||
.citizen-drawer__inner, | .citizen-drawer__inner, | ||
.citizen-panel { | .citizen-panel { | ||
background-color: | background-color: var(--color-surface-1); | ||
border-color: | border-color: var(--border-color-base); | ||
} | } | ||
| Line 293: | Line 303: | ||
.citizen-menu, | .citizen-menu, | ||
.citizen-menu__item { | .citizen-menu__item { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
box-shadow: | box-shadow: var(--box-shadow-menu); | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
color: | color: var(--color-base); | ||
} | } | ||
.citizen-dropdown__menu a, | .citizen-dropdown__menu a, | ||
.citizen-menu a, | .citizen-menu a, | ||
.citizen-menu__item a { | .citizen-menu__item a { | ||
color: | color: var(--color-base); | ||
padding: 6px 14px; | padding: 6px 14px; | ||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||
| Line 311: | Line 321: | ||
.citizen-menu a:hover, | .citizen-menu a:hover, | ||
.citizen-menu__item:hover { | .citizen-menu__item:hover { | ||
background-color: | background-color: var(--color-surface-2); | ||
color: | color: var(--color-base); | ||
} | } | ||
| Line 318: | Line 328: | ||
.citizen-page-tools, | .citizen-page-tools, | ||
.citizen-page-tools__card { | .citizen-page-tools__card { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
} | } | ||
| Line 328: | Line 338: | ||
#mw-content-text, | #mw-content-text, | ||
.mw-parser-output { | .mw-parser-output { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.82rem; | font-size: 0.82rem; | ||
line-height: 1.8; | line-height: 1.8; | ||
color: | color: var(--color-base); | ||
} | } | ||
| Line 341: | Line 351: | ||
.mw-parser-output h5, | .mw-parser-output h5, | ||
.mw-parser-output h6 { | .mw-parser-output h6 { | ||
font-family: | font-family: var(--font-family-heading); | ||
font-weight: 600; | font-weight: 600; | ||
letter-spacing: 2px; | letter-spacing: 2px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base); | ||
} | } | ||
.mw-parser-output h2 { | .mw-parser-output h2 { | ||
font-size: 0.95rem; | font-size: 0.95rem; | ||
letter-spacing: 3px; | letter-spacing: 3px; | ||
border-bottom: 1px solid | border-bottom: 1px solid var(--border-color-base); | ||
padding-bottom: 0.35rem; | padding-bottom: 0.35rem; | ||
margin-top: 2rem; | margin-top: 2rem; | ||
| Line 357: | Line 367: | ||
font-size: 0.85rem; | font-size: 0.85rem; | ||
letter-spacing: 2.5px; | letter-spacing: 2.5px; | ||
color: | color: var(--color-base--subtle); | ||
} | } | ||
.mw-parser-output h4, | .mw-parser-output h4, | ||
| Line 364: | Line 374: | ||
font-size: 0.78rem; | font-size: 0.78rem; | ||
letter-spacing: 2px; | letter-spacing: 2px; | ||
color: | color: var(--color-base--disabled); | ||
} | } | ||
| Line 370: | Line 380: | ||
.mw-parser-output a, | .mw-parser-output a, | ||
#mw-content-text a { | #mw-content-text a { | ||
color: | color: var(--color-progressive); | ||
text-decoration: none; | text-decoration: none; | ||
border-bottom: 1px solid transparent; | border-bottom: 1px solid transparent; | ||
| Line 377: | Line 387: | ||
.mw-parser-output a:hover, | .mw-parser-output a:hover, | ||
#mw-content-text a:hover { | #mw-content-text a:hover { | ||
color: | color: var(--color-progressive--hover); | ||
border-bottom-color: | border-bottom-color: var(--color-progressive); | ||
} | } | ||
.mw-parser-output a.new, | .mw-parser-output a.new, | ||
#mw-content-text a.new { | #mw-content-text a.new { | ||
color: | color: var(--color-destructive); | ||
} | } | ||
.mw-parser-output a.new:hover { | .mw-parser-output a.new:hover { | ||
color: | color: var(--color-destructive--hover); | ||
border-bottom-color: | border-bottom-color: var(--color-destructive); | ||
} | } | ||
| Line 392: | Line 402: | ||
.mw-parser-output table, | .mw-parser-output table, | ||
.mw-parser-output .wikitable { | .mw-parser-output .wikitable { | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
border-collapse: collapse; | border-collapse: collapse; | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
background: var(--color-surface-0); | background: var(--color-surface-0); | ||
box-shadow: | box-shadow: var(--box-shadow-card); | ||
} | } | ||
.mw-parser-output .wikitable th, | .mw-parser-output .wikitable th, | ||
.mw-parser-output table th { | .mw-parser-output table th { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
padding: 6px 12px; | padding: 6px 12px; | ||
font-size: 0.7rem; | font-size: 0.7rem; | ||
letter-spacing: 1.5px; | letter-spacing: 1.5px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base); | ||
font-weight: 600; | font-weight: 600; | ||
} | } | ||
.mw-parser-output .wikitable td, | .mw-parser-output .wikitable td, | ||
.mw-parser-output table td { | .mw-parser-output table td { | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
padding: 5px 12px; | padding: 5px 12px; | ||
color: | color: var(--color-base); | ||
vertical-align: top; | vertical-align: top; | ||
background-color: var(--color-surface-0); | background-color: var(--color-surface-0); | ||
| Line 427: | Line 437: | ||
.mw-parser-output pre, | .mw-parser-output pre, | ||
.mw-parser-output .mw-code { | .mw-parser-output .mw-code { | ||
font-family: | font-family: var(--font-family-mono); | ||
font-size: 0.78rem; | font-size: 0.78rem; | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
color: | color: var(--color-base); | ||
} | } | ||
.mw-parser-output pre, | .mw-parser-output pre, | ||
| Line 445: | Line 455: | ||
/* Blockquote */ | /* Blockquote */ | ||
.mw-parser-output blockquote { | .mw-parser-output blockquote { | ||
border-left: 2px solid | border-left: 2px solid var(--border-color-interactive); | ||
padding-left: 16px; | padding-left: 16px; | ||
color: | color: var(--color-base--subtle); | ||
margin: 1rem 0; | margin: 1rem 0; | ||
font-style: normal; | font-style: normal; | ||
| Line 455: | Line 465: | ||
.mw-parser-output hr { | .mw-parser-output hr { | ||
border: none; | border: none; | ||
border-top: 1px solid | border-top: 1px solid var(--border-color-base); | ||
margin: 1.5rem 0; | margin: 1.5rem 0; | ||
} | } | ||
| Line 467: | Line 477: | ||
#searchInput, | #searchInput, | ||
input[type="search"] { | input[type="search"] { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.78rem; | font-size: 0.78rem; | ||
background: | background: var(--color-surface-0); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
color: | color: var(--color-base); | ||
outline: none; | outline: none; | ||
} | } | ||
| Line 477: | Line 487: | ||
#searchInput:focus, | #searchInput:focus, | ||
input[type="search"]:focus { | input[type="search"]:focus { | ||
border-color: | border-color: var(--color-base); | ||
box-shadow: none; | box-shadow: none; | ||
} | } | ||
| Line 487: | Line 497: | ||
input[type="submit"], | input[type="submit"], | ||
button { | button { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.72rem; | font-size: 0.72rem; | ||
letter-spacing: 1.5px; | letter-spacing: 1.5px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
background: | background: var(--color-surface-btn); | ||
color: | color: var(--color-base); | ||
transition: background 0.15s, color 0.15s; | transition: background 0.15s, color 0.15s; | ||
} | } | ||
| Line 501: | Line 511: | ||
input[type="submit"]:hover, | input[type="submit"]:hover, | ||
button:hover { | button:hover { | ||
background: | background: var(--color-surface-btn--hover-bg); | ||
color: | color: var(--color-surface-btn--hover-text); | ||
border-color: | border-color: var(--color-surface-btn--hover-bg); | ||
} | } | ||
.mw-ui-button.mw-ui-progressive { | .mw-ui-button.mw-ui-progressive { | ||
background: | background: var(--color-progressive); | ||
border-color: | border-color: var(--color-progressive); | ||
color: | color: var(--background-color-base); | ||
} | } | ||
.mw-ui-button.mw-ui-progressive:hover { | .mw-ui-button.mw-ui-progressive:hover { | ||
background: | background: var(--color-progressive--hover); | ||
border-color: | border-color: var(--color-progressive--hover); | ||
} | } | ||
| Line 518: | Line 528: | ||
.citizen-page-actions, | .citizen-page-actions, | ||
.page-actions { | .page-actions { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.72rem; | font-size: 0.72rem; | ||
letter-spacing: 1px; | letter-spacing: 1px; | ||
| Line 526: | Line 536: | ||
letter-spacing: 1.5px; | letter-spacing: 1.5px; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
color: | color: var(--color-base--subtle); | ||
border: 1px solid transparent; | border: 1px solid transparent; | ||
padding: 4px 10px; | padding: 4px 10px; | ||
| Line 532: | Line 542: | ||
} | } | ||
.citizen-page-actions__item a:hover { | .citizen-page-actions__item a:hover { | ||
color: | color: var(--color-base); | ||
border-color: | border-color: var(--border-color-interactive); | ||
background: | background: var(--color-surface-2); | ||
text-decoration: none; | text-decoration: none; | ||
} | } | ||
/* User menu */ | /* User menu */ | ||
.citizen-userInfo-title { | .citizen-userInfo-title, | ||
.citizen-userInfo-title nav, | |||
.citizen-userInfo-title ul, | |||
.citizen-userInfo-title li, | |||
.citizen-userInfo-title a { | |||
text-align: center; | |||
display: block; | |||
width: 100%; | |||
} | } | ||
.citizen-user-info, | .citizen-user-info, | ||
.citizen-user-menu__card, | .citizen-user-menu__card, | ||
.citizen-menu__card { | .citizen-menu__card { | ||
border-radius: 0; | |||
box-shadow: var(--box-shadow-card); | |||
border: 1px solid var(--border-color-base); | |||
background: var(--color-surface-1); | |||
} | } | ||
| Line 554: | Line 570: | ||
#pt-logout a, | #pt-logout a, | ||
.citizen-user-menu #pt-logout a { | .citizen-user-menu #pt-logout a { | ||
background: var(--color-surface-2); | |||
color: var(--color-base); | |||
border: 1px solid var(--border-color-base); | |||
border-radius: 0; | |||
} | } | ||
#pt-logout a:hover, | #pt-logout a:hover, | ||
.citizen-user-menu #pt-logout a:hover { | .citizen-user-menu #pt-logout a:hover { | ||
background: var(--color-surface-btn--hover-bg); | |||
color: var(--color-surface-btn--hover-text); | |||
} | } | ||
/* User info block at top */ | /* User info block at top */ | ||
.citizen-user-info__name { | .citizen-user-info__name { | ||
color: var(--color-base); | |||
font-weight: 600; | |||
letter-spacing: 1px; | |||
} | } | ||
.citizen-user-info__groups { | .citizen-user-info__groups { | ||
color: var(--color-base--disabled); | |||
font-size: 0.68rem; | |||
letter-spacing: 1px; | |||
} | } | ||
| Line 580: | Line 596: | ||
.citizen-notification, | .citizen-notification, | ||
.mw-notification { | .mw-notification { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
background: | background: var(--color-surface-1); | ||
color: | color: var(--color-base); | ||
} | } | ||
| Line 592: | Line 608: | ||
.mw-message-box-warning, | .mw-message-box-warning, | ||
.mw-message-box-error { | .mw-message-box-error { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
border-width: 1px; | border-width: 1px; | ||
| Line 598: | Line 614: | ||
} | } | ||
.mw-message-box-notice { | .mw-message-box-notice { | ||
background: | background: var(--background-color-notice-subtle); | ||
border-color: | border-color: var(--color-notice); | ||
color: | color: var(--color-notice); | ||
} | } | ||
.mw-message-box-warning { | .mw-message-box-warning { | ||
background: | background: var(--background-color-warning-subtle); | ||
border-color: | border-color: var(--color-warning); | ||
color: | color: var(--color-warning); | ||
} | } | ||
.mw-message-box-error { | .mw-message-box-error { | ||
background: | background: var(--background-color-destructive-subtle); | ||
border-color: | border-color: var(--color-destructive); | ||
color: | color: var(--color-destructive); | ||
} | } | ||
| Line 617: | Line 633: | ||
.oo-ui-dialog-content, | .oo-ui-dialog-content, | ||
.oo-ui-messageDialog-content { | .oo-ui-messageDialog-content { | ||
background-color: | background-color: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
color: | color: var(--color-base); | ||
font-family: | font-family: var(--font-family-base); | ||
} | } | ||
| Line 628: | Line 644: | ||
::-webkit-scrollbar { width: 5px; height: 5px; } | ::-webkit-scrollbar { width: 5px; height: 5px; } | ||
::-webkit-scrollbar-track { background: | ::-webkit-scrollbar-track { background: var(--color-surface-1); } | ||
::-webkit-scrollbar-thumb { background: | ::-webkit-scrollbar-thumb { background: var(--border-color-interactive); } | ||
::-webkit-scrollbar-thumb:hover { background: | ::-webkit-scrollbar-thumb:hover { background: var(--color-base); } | ||
#catlinks { | #catlinks { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.72rem; | font-size: 0.72rem; | ||
background: | background: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
padding: 6px 12px; | padding: 6px 12px; | ||
} | } | ||
#catlinks a { | #catlinks a { | ||
color: | color: var(--color-progressive); | ||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||
} | } | ||
| Line 646: | Line 662: | ||
#footer, | #footer, | ||
.citizen-footer { | .citizen-footer { | ||
background: | background: var(--color-surface-1); | ||
border-top: 1px solid | border-top: 1px solid var(--border-color-base); | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.7rem; | font-size: 0.7rem; | ||
letter-spacing: 1px; | letter-spacing: 1px; | ||
color: | color: var(--color-base--disabled); | ||
} | } | ||
#footer a, | #footer a, | ||
.citizen-footer a { | .citizen-footer a { | ||
color: | color: var(--color-base--disabled); | ||
border-bottom: 1px solid transparent; | border-bottom: 1px solid transparent; | ||
transition: color 0.15s, border-color 0.15s; | transition: color 0.15s, border-color 0.15s; | ||
| Line 661: | Line 677: | ||
#footer a:hover, | #footer a:hover, | ||
.citizen-footer a:hover { | .citizen-footer a:hover { | ||
color: | color: var(--color-base); | ||
border-bottom-color: | border-bottom-color: var(--color-base); | ||
} | } | ||
.wikiEditor-toolbar, | .wikiEditor-toolbar, | ||
#toolbar { | #toolbar { | ||
background: | background: var(--color-surface-1); | ||
border: 1px solid | border: 1px solid var(--border-color-base); | ||
border-bottom: none; | border-bottom: none; | ||
font-family: | font-family: var(--font-family-base); | ||
} | } | ||
#wpTextbox1, | #wpTextbox1, | ||
textarea { | textarea { | ||
font-family: | font-family: var(--font-family-mono); | ||
font-size: 0.78rem; | font-size: 0.78rem; | ||
background: | background: var(--color-surface-0); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
color: | color: var(--color-base); | ||
} | } | ||
#wpTextbox1:focus, | #wpTextbox1:focus, | ||
textarea:focus { | textarea:focus { | ||
border-color: | border-color: var(--color-base); | ||
outline: none; | outline: none; | ||
box-shadow: none; | box-shadow: none; | ||
| Line 692: | Line 708: | ||
input[type="email"], | input[type="email"], | ||
select { | select { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.78rem; | font-size: 0.78rem; | ||
background: | background: var(--color-surface-0); | ||
border: 1px solid | border: 1px solid var(--border-color-interactive); | ||
color: | color: var(--color-base); | ||
} | } | ||
input[type="text"]:focus, | input[type="text"]:focus, | ||
| Line 702: | Line 718: | ||
input[type="email"]:focus, | input[type="email"]:focus, | ||
select:focus { | select:focus { | ||
border-color: | border-color: var(--color-base); | ||
outline: none; | outline: none; | ||
box-shadow: none; | box-shadow: none; | ||
} | } | ||
.diff-context { background: | .diff-context { background: var(--color-surface-0); } | ||
.diff-addedline { background: | .diff-addedline { background: var(--color-diff-added); } | ||
.diff-deletedline { background: | .diff-deletedline { background: var(--color-diff-deleted); } | ||
.diff-marker { color: | .diff-marker { color: var(--border-color-interactive); } | ||
table.diff td { | table.diff td { | ||
font-family: | font-family: var(--font-family-mono); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
} | } | ||
| Line 718: | Line 734: | ||
.mw-changeslist, | .mw-changeslist, | ||
.mw-changeslist-line { | .mw-changeslist-line { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.75rem; | font-size: 0.75rem; | ||
} | } | ||
| Line 724: | Line 740: | ||
.thumbcaption, | .thumbcaption, | ||
.mw-parser-output .thumbcaption { | .mw-parser-output .thumbcaption { | ||
font-family: | font-family: var(--font-family-base); | ||
font-size: 0.7rem; | font-size: 0.7rem; | ||
color: | color: var(--color-base--disabled); | ||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||
} | } | ||
::selection { | ::selection { | ||
background: | background: var(--color-selection-bg); | ||
color: | color: var(--color-selection-text); | ||
} | } | ||
Latest revision as of 16:01, 5 March 2026
/* ── Google Fonts ─────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap');
/* ════════════════════════════════════════════════════════════
TOKENS — NEVER CHANGE (fonts, radius, etc.)
════════════════════════════════════════════════════════════ */
:root {
--font-family-base: 'IBM Plex Mono', monospace;
--font-family-heading: 'IBM Plex Mono', monospace;
--font-family-mono: 'IBM Plex Mono', monospace;
--border-radius--small: 0;
--border-radius--medium: 0;
--border-radius--large: 0;
--border-radius--pill: 0;
--border-radius-sharp: 0;
}
/* ════════════════════════════════════════════════════════════
TOKENS — LIGHT MODE (default)
════════════════════════════════════════════════════════════ */
:root,
html.skin-theme-clientpref-day {
--color-surface-0: #f4f3f0;
--color-surface-1: #edecea;
--color-surface-2: #e5e4e0;
--color-surface-3: #edecea;
--color-surface-4: #e5e4e0;
--color-base: #1a1917;
--color-base--emphasized: #1a1917;
--color-base--subtle: #4a4845;
--color-base--disabled: #7a7875;
--color-progressive: #1a3a6b;
--color-progressive--hover: #0f2548;
--color-progressive--active: #0a1a30;
--color-progressive--focus: #1a3a6b;
--border-color-base: #c8c5bf;
--border-color-interactive: #9a9690;
--color-destructive: #9b1c1c;
--color-destructive--hover: #7a1515;
--color-success: #1a5c2e;
--color-warning: #7c5000;
--color-notice: #1a3a6b;
--color-icon: #4a4845;
--color-icon--subtle: #7a7875;
--color-icon--emphasized: #1a1917;
--color-icon-interactive: #1a3a6b;
--box-shadow-card: 0 1px 3px rgba(0,0,0,.10);
--box-shadow-menu: 0 4px 12px rgba(0,0,0,.12);
--box-shadow-drop: 0 2px 8px rgba(0,0,0,.10);
--background-color-base: #f4f3f0;
--background-color-base--hover: #edecea;
--background-color-neutral: #edecea;
--background-color-neutral-subtle: #f4f3f0;
--background-color-interactive: #e5e4e0;
--background-color-interactive-subtle: #edecea;
--background-color-progressive-subtle: #eaf0fa;
--background-color-disabled: #e5e4e0;
--background-color-disabled-subtle: #edecea;
--background-color-destructive-subtle: #fbe8ea;
--background-color-success-subtle: #e8f4ec;
--background-color-warning-subtle: #fdf0e6;
--background-color-notice-subtle: #eaf0fa;
--color-placeholder: #7a7875;
--color-surface-btn: #e5e4e0;
--color-surface-btn--hover-bg: #1a1917;
--color-surface-btn--hover-text: #f4f3f0;
--color-diff-added: #e8f4ec;
--color-diff-deleted: #fbe8ea;
--color-selection-bg: #1a1917;
--color-selection-text: #f4f3f0;
--color-role-pilot-bg: #f5f0e0;
--color-role-pilot-text: #5c4a00;
--color-role-control-bg: #e0eaf5;
--color-role-control-text: #0a2a4a;
--color-role-note-bg: var(--color-surface-1);
--color-role-note-text: var(--color-base--disabled);
--color-role-header-bg: #d6ead6;
--color-role-header-text: #1a3a1a;
--color-role-header-accent: #4a8c4a;
}
/* ════════════════════════════════════════════════════════════
TOKENS — DARK MODE
════════════════════════════════════════════════════════════ */
html.skin-theme-clientpref-night {
--color-surface-0: #1a1917;
--color-surface-1: #242220;
--color-surface-2: #2e2c2a;
--color-surface-3: #242220;
--color-surface-4: #363330;
--color-base: #f0eeea;
--color-base--emphasized: #f4f3f0;
--color-base--subtle: #c8c5bf;
--color-base--disabled: #7a7875;
--color-progressive: #7ba7e0;
--color-progressive--hover: #a0c0f0;
--color-progressive--active: #c0d8f8;
--color-progressive--focus: #7ba7e0;
--border-color-base: #3d3a36;
--border-color-interactive: #5a5650;
--color-destructive: #e07070;
--color-destructive--hover: #f09090;
--color-success: #6abf7a;
--color-warning: #d4a040;
--color-notice: #7ba7e0;
--color-icon: #c8c5bf;
--color-icon--subtle: #7a7875;
--color-icon--emphasized: #f4f3f0;
--color-icon-interactive: #7ba7e0;
--box-shadow-card: 0 1px 3px rgba(0,0,0,.40);
--box-shadow-menu: 0 4px 12px rgba(0,0,0,.50);
--box-shadow-drop: 0 2px 8px rgba(0,0,0,.40);
--background-color-base: #1a1917;
--background-color-base--hover: #242220;
--background-color-neutral: #242220;
--background-color-neutral-subtle: #1a1917;
--background-color-interactive: #2e2c2a;
--background-color-interactive-subtle: #242220;
--background-color-progressive-subtle: #1a2540;
--background-color-disabled: #2e2c2a;
--background-color-disabled-subtle: #242220;
--background-color-destructive-subtle: #3a1a1a;
--background-color-success-subtle: #1a3020;
--background-color-warning-subtle: #302010;
--background-color-notice-subtle: #1a2540;
--color-placeholder: #7a7875;
--color-surface-btn: #2e2c2a;
--color-surface-btn--hover-bg: #f4f3f0;
--color-surface-btn--hover-text: #1a1917;
--color-diff-added: #1a3020;
--color-diff-deleted: #3a1a1a;
--color-selection-bg: #f4f3f0;
--color-selection-text: #1a1917;
--color-role-pilot-bg: #2e2600;
--color-role-pilot-text: #e0c96a;
--color-role-control-bg: #0d1e30;
--color-role-control-text: #7ba7e0;
--color-role-note-bg: var(--color-surface-1);
--color-role-note-text: var(--color-base--disabled);
--color-role-header-bg: #0d2010;
--color-role-header-text: #6abf7a;
--color-role-header-accent: #3a7a4a;
}
/* ════════════════════════════════════════════════════════════
BASE
════════════════════════════════════════════════════════════ */
body,
.skin-citizen {
font-family: var(--font-family-base);
background-color: var(--color-surface-0);
color: var(--color-base);
}
/* ── Page heading ────────────────────────────────────────── */
#firstHeading,
.page-heading h1 {
font-family: var(--font-family-heading);
font-weight: 600;
font-size: 1.3rem;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--color-base);
border-bottom: 1px solid var(--border-color-base);
padding-bottom: 0.5rem;
margin-bottom: 1rem;
}
/* ── Site wordmark / logo text ───────────────────────────── */
.citizen-logo__wordmark,
#p-logo a,
.mw-logo-wordmark {
font-family: var(--font-family-heading);
font-weight: 600;
letter-spacing: 4px;
text-transform: uppercase;
}
/* ════════════════════════════════════════════════════════════
CARD / SURFACE BACKGROUNDS
════════════════════════════════════════════════════════════ */
/* Citizen generic card */
.citizen-card,
.citizen-card-list__item,
.citizen-card__header,
.citizen-card__body {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-base);
color: var(--color-base);
}
/* Page-info block (appears beneath article title) */
.citizen-page-info,
.citizen-page-info__item {
background-color: var(--color-surface-1);
border-color: var(--border-color-base);
color: var(--color-base--subtle);
}
/* Citizen header */
#citizen-page-header,
.citizen-header,
header.citizen-header {
background-color: var(--color-surface-1);
border-bottom: 1px solid var(--border-color-interactive);
}
/* Sticky header */
.citizen-sticky-header {
background-color: var(--color-surface-1);
border-bottom: 1px solid var(--border-color-interactive);
}
/* Sidebar */
#citizen-sidebar,
.citizen-sidebar {
background-color: var(--color-surface-1);
border-right: 1px solid var(--border-color-base);
}
/* Sidebar navigation labels */
.citizen-nav__heading,
.citizen-sidebar .citizen-nav__heading {
font-size: 0.65rem;
letter-spacing: 2.5px;
text-transform: uppercase;
color: var(--color-base--disabled);
font-weight: 600;
}
/* Sidebar links */
.citizen-nav__item a,
.citizen-sidebar a {
font-family: var(--font-family-base);
font-size: 0.75rem;
letter-spacing: 0.5px;
color: var(--color-base);
background-color: transparent;
}
.citizen-nav__item a:hover,
.citizen-sidebar a:hover {
color: var(--color-progressive);
background-color: var(--color-surface-2);
}
/* TOC */
.citizen-toc,
#toc {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-base);
font-family: var(--font-family-base);
font-size: 0.75rem;
}
.citizen-toc__title,
#toc .toctitle {
font-size: 0.7rem;
letter-spacing: 2px;
text-transform: uppercase;
color: var(--color-base--disabled);
font-weight: 600;
}
.citizen-toc__item a,
#toc a {
color: var(--color-base--subtle);
}
.citizen-toc__item a:hover,
#toc a:hover {
color: var(--color-progressive);
}
/* Citizen search suggestion / typeahead panel */
.citizen-search-results,
.citizen-typeahead {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-interactive);
box-shadow: var(--box-shadow-menu);
}
.citizen-search-results__item,
.citizen-typeahead__item {
background-color: transparent;
color: var(--color-base);
}
.citizen-search-results__item:hover,
.citizen-typeahead__item:hover {
background-color: var(--color-surface-2);
}
/* Citizen drawer / panel */
.citizen-drawer,
.citizen-drawer__inner,
.citizen-panel {
background-color: var(--color-surface-1);
border-color: var(--border-color-base);
}
/* Citizen overflow menu */
.citizen-overflow-menu,
.citizen-dropdown__menu,
.citizen-menu,
.citizen-menu__item {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-interactive);
box-shadow: var(--box-shadow-menu);
font-family: var(--font-family-base);
font-size: 0.75rem;
color: var(--color-base);
}
.citizen-dropdown__menu a,
.citizen-menu a,
.citizen-menu__item a {
color: var(--color-base);
padding: 6px 14px;
letter-spacing: 0.5px;
background-color: transparent;
}
.citizen-dropdown__menu a:hover,
.citizen-menu a:hover,
.citizen-menu__item:hover {
background-color: var(--color-surface-2);
color: var(--color-base);
}
/* Page tools / toolbox (right-side panel in Citizen) */
.citizen-page-tools,
.citizen-page-tools__card {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-base);
}
/* ════════════════════════════════════════════════════════════
CONTENT AREA
════════════════════════════════════════════════════════════ */
#mw-content-text,
.mw-parser-output {
font-family: var(--font-family-base);
font-size: 0.82rem;
line-height: 1.8;
color: var(--color-base);
}
/* Headings */
.mw-parser-output h1,
.mw-parser-output h2,
.mw-parser-output h3,
.mw-parser-output h4,
.mw-parser-output h5,
.mw-parser-output h6 {
font-family: var(--font-family-heading);
font-weight: 600;
letter-spacing: 2px;
text-transform: uppercase;
color: var(--color-base);
}
.mw-parser-output h2 {
font-size: 0.95rem;
letter-spacing: 3px;
border-bottom: 1px solid var(--border-color-base);
padding-bottom: 0.35rem;
margin-top: 2rem;
}
.mw-parser-output h3 {
font-size: 0.85rem;
letter-spacing: 2.5px;
color: var(--color-base--subtle);
}
.mw-parser-output h4,
.mw-parser-output h5,
.mw-parser-output h6 {
font-size: 0.78rem;
letter-spacing: 2px;
color: var(--color-base--disabled);
}
/* Links */
.mw-parser-output a,
#mw-content-text a {
color: var(--color-progressive);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color 0.15s, color 0.15s;
}
.mw-parser-output a:hover,
#mw-content-text a:hover {
color: var(--color-progressive--hover);
border-bottom-color: var(--color-progressive);
}
.mw-parser-output a.new,
#mw-content-text a.new {
color: var(--color-destructive);
}
.mw-parser-output a.new:hover {
color: var(--color-destructive--hover);
border-bottom-color: var(--color-destructive);
}
/* Tables */
.mw-parser-output table,
.mw-parser-output .wikitable {
border: 1px solid var(--border-color-interactive);
border-collapse: collapse;
font-family: var(--font-family-base);
font-size: 0.75rem;
background: var(--color-surface-0);
box-shadow: var(--box-shadow-card);
}
.mw-parser-output .wikitable th,
.mw-parser-output table th {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-interactive);
padding: 6px 12px;
font-size: 0.7rem;
letter-spacing: 1.5px;
text-transform: uppercase;
color: var(--color-base);
font-weight: 600;
}
.mw-parser-output .wikitable td,
.mw-parser-output table td {
border: 1px solid var(--border-color-base);
padding: 5px 12px;
color: var(--color-base);
vertical-align: top;
background-color: var(--color-surface-0);
}
.mw-parser-output .wikitable tr:nth-child(even) td {
background-color: var(--color-surface-1);
}
/* Code / pre */
.mw-parser-output code,
.mw-parser-output kbd,
.mw-parser-output pre,
.mw-parser-output .mw-code {
font-family: var(--font-family-mono);
font-size: 0.78rem;
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-base);
color: var(--color-base);
}
.mw-parser-output pre,
.mw-parser-output .mw-code {
padding: 12px 16px;
overflow-x: auto;
line-height: 1.6;
}
.mw-parser-output code {
padding: 1px 5px;
}
/* Blockquote */
.mw-parser-output blockquote {
border-left: 2px solid var(--border-color-interactive);
padding-left: 16px;
color: var(--color-base--subtle);
margin: 1rem 0;
font-style: normal;
}
/* Horizontal rule */
.mw-parser-output hr {
border: none;
border-top: 1px solid var(--border-color-base);
margin: 1.5rem 0;
}
/* ════════════════════════════════════════════════════════════
MEDIAWIKI UI ELEMENTS
════════════════════════════════════════════════════════════ */
/* Search bar */
.citizen-search__input,
#searchInput,
input[type="search"] {
font-family: var(--font-family-base);
font-size: 0.78rem;
background: var(--color-surface-0);
border: 1px solid var(--border-color-interactive);
color: var(--color-base);
outline: none;
}
.citizen-search__input:focus,
#searchInput:focus,
input[type="search"]:focus {
border-color: var(--color-base);
box-shadow: none;
}
/* Buttons */
.citizen-btn,
.mw-ui-button,
input[type="button"],
input[type="submit"],
button {
font-family: var(--font-family-base);
font-size: 0.72rem;
letter-spacing: 1.5px;
text-transform: uppercase;
border: 1px solid var(--border-color-interactive);
background: var(--color-surface-btn);
color: var(--color-base);
transition: background 0.15s, color 0.15s;
}
.citizen-btn:hover,
.mw-ui-button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
button:hover {
background: var(--color-surface-btn--hover-bg);
color: var(--color-surface-btn--hover-text);
border-color: var(--color-surface-btn--hover-bg);
}
.mw-ui-button.mw-ui-progressive {
background: var(--color-progressive);
border-color: var(--color-progressive);
color: var(--background-color-base);
}
.mw-ui-button.mw-ui-progressive:hover {
background: var(--color-progressive--hover);
border-color: var(--color-progressive--hover);
}
/* Page actions (edit, history, talk…) */
.citizen-page-actions,
.page-actions {
font-family: var(--font-family-base);
font-size: 0.72rem;
letter-spacing: 1px;
}
.citizen-page-actions__item a {
font-size: 0.72rem;
letter-spacing: 1.5px;
text-transform: uppercase;
color: var(--color-base--subtle);
border: 1px solid transparent;
padding: 4px 10px;
transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.citizen-page-actions__item a:hover {
color: var(--color-base);
border-color: var(--border-color-interactive);
background: var(--color-surface-2);
text-decoration: none;
}
/* User menu */
.citizen-userInfo-title,
.citizen-userInfo-title nav,
.citizen-userInfo-title ul,
.citizen-userInfo-title li,
.citizen-userInfo-title a {
text-align: center;
display: block;
width: 100%;
}
.citizen-user-info,
.citizen-user-menu__card,
.citizen-menu__card {
border-radius: 0;
box-shadow: var(--box-shadow-card);
border: 1px solid var(--border-color-base);
background: var(--color-surface-1);
}
/* Remove red logout button */
#pt-logout a,
.citizen-user-menu #pt-logout a {
background: var(--color-surface-2);
color: var(--color-base);
border: 1px solid var(--border-color-base);
border-radius: 0;
}
#pt-logout a:hover,
.citizen-user-menu #pt-logout a:hover {
background: var(--color-surface-btn--hover-bg);
color: var(--color-surface-btn--hover-text);
}
/* User info block at top */
.citizen-user-info__name {
color: var(--color-base);
font-weight: 600;
letter-spacing: 1px;
}
.citizen-user-info__groups {
color: var(--color-base--disabled);
font-size: 0.68rem;
letter-spacing: 1px;
}
/* Notification / alerts */
.citizen-notification,
.mw-notification {
font-family: var(--font-family-base);
font-size: 0.75rem;
border: 1px solid var(--border-color-interactive);
background: var(--color-surface-1);
color: var(--color-base);
}
/* Info / warning / error message boxes */
.mw-message-box,
.mw-message-box-notice,
.mw-message-box-warning,
.mw-message-box-error {
font-family: var(--font-family-base);
font-size: 0.75rem;
border-width: 1px;
border-style: solid;
}
.mw-message-box-notice {
background: var(--background-color-notice-subtle);
border-color: var(--color-notice);
color: var(--color-notice);
}
.mw-message-box-warning {
background: var(--background-color-warning-subtle);
border-color: var(--color-warning);
color: var(--color-warning);
}
.mw-message-box-error {
background: var(--background-color-destructive-subtle);
border-color: var(--color-destructive);
color: var(--color-destructive);
}
/* OOUI popup / dialog */
.oo-ui-popupWidget-popup,
.oo-ui-dialog-content,
.oo-ui-messageDialog-content {
background-color: var(--color-surface-1);
border: 1px solid var(--border-color-interactive);
color: var(--color-base);
font-family: var(--font-family-base);
}
/* ════════════════════════════════════════════════════════════
SCROLLBAR, FOOTER, CATEGORY, DIFF, EDIT
════════════════════════════════════════════════════════════ */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--color-surface-1); }
::-webkit-scrollbar-thumb { background: var(--border-color-interactive); }
::-webkit-scrollbar-thumb:hover { background: var(--color-base); }
#catlinks {
font-family: var(--font-family-base);
font-size: 0.72rem;
background: var(--color-surface-1);
border: 1px solid var(--border-color-base);
padding: 6px 12px;
}
#catlinks a {
color: var(--color-progressive);
letter-spacing: 0.5px;
}
#footer,
.citizen-footer {
background: var(--color-surface-1);
border-top: 1px solid var(--border-color-base);
font-family: var(--font-family-base);
font-size: 0.7rem;
letter-spacing: 1px;
color: var(--color-base--disabled);
}
#footer a,
.citizen-footer a {
color: var(--color-base--disabled);
border-bottom: 1px solid transparent;
transition: color 0.15s, border-color 0.15s;
}
#footer a:hover,
.citizen-footer a:hover {
color: var(--color-base);
border-bottom-color: var(--color-base);
}
.wikiEditor-toolbar,
#toolbar {
background: var(--color-surface-1);
border: 1px solid var(--border-color-base);
border-bottom: none;
font-family: var(--font-family-base);
}
#wpTextbox1,
textarea {
font-family: var(--font-family-mono);
font-size: 0.78rem;
background: var(--color-surface-0);
border: 1px solid var(--border-color-interactive);
color: var(--color-base);
}
#wpTextbox1:focus,
textarea:focus {
border-color: var(--color-base);
outline: none;
box-shadow: none;
}
input[type="text"],
input[type="password"],
input[type="email"],
select {
font-family: var(--font-family-base);
font-size: 0.78rem;
background: var(--color-surface-0);
border: 1px solid var(--border-color-interactive);
color: var(--color-base);
}
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
select:focus {
border-color: var(--color-base);
outline: none;
box-shadow: none;
}
.diff-context { background: var(--color-surface-0); }
.diff-addedline { background: var(--color-diff-added); }
.diff-deletedline { background: var(--color-diff-deleted); }
.diff-marker { color: var(--border-color-interactive); }
table.diff td {
font-family: var(--font-family-mono);
font-size: 0.75rem;
}
.mw-changeslist,
.mw-changeslist-line {
font-family: var(--font-family-base);
font-size: 0.75rem;
}
.thumbcaption,
.mw-parser-output .thumbcaption {
font-family: var(--font-family-base);
font-size: 0.7rem;
color: var(--color-base--disabled);
letter-spacing: 0.5px;
}
::selection {
background: var(--color-selection-bg);
color: var(--color-selection-text);
}