MediaWiki:Common.css: Difference between revisions
MediaWiki interface page
More actions
Created page with "→CSS placed here will be applied to all skins: /* ============================================================ MISCONDUCT IN PUBLIC OFFICE — Citizen CSS overrides Paste into MediaWiki:Common.css inside the wiki, as sysop. ============================================================ Note for the editor: Citizen uses its own CSS variables for typography and colour. The strategy here is to override those variables rather than fight the skin. Adjust..." |
No edit summary |
||
| Line 189: | Line 189: | ||
font-size: 4.2em; | font-size: 4.2em; | ||
float: left; | float: left; | ||
line-height: 0. | line-height: 0.75; | ||
margin: 0.08em 0. | margin: -0.05em 0.08em -0.05em 0; | ||
font-weight: 700; | font-weight: 700; | ||
color: var(--c-accent); | color: var(--c-accent); | ||
Revision as of 23:08, 22 September 2026
/* CSS placed here will be applied to all skins */
/* ============================================================
MISCONDUCT IN PUBLIC OFFICE — Citizen CSS overrides
Paste into MediaWiki:Common.css inside the wiki, as sysop.
============================================================
Note for the editor: Citizen uses its own CSS variables for
typography and colour. The strategy here is to override those
variables rather than fight the skin. Adjust the values in the
:root block at the top; everything else cascades.
============================================================ */
/* ------ FONT LOADING ------------------------------------------ */
/* Crimson Pro for body/headings, Inter Tight for UI, JetBrains
Mono for dates and metadata. Loaded from Google Fonts. If you
self-host fonts (recommended for production), replace the
@import with @font-face declarations pointing to /resources/fonts/. */
@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;500;600;700&family=Inter+Tight:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
/* ------ DESIGN TOKENS ----------------------------------------- */
/* Override Citizen's CSS custom properties. These cascade through
the entire skin. */
:root,
html.skin-citizen {
/* Typography */
--citizen-font-family-base: 'Crimson Pro', 'Charter', 'Georgia', serif;
--citizen-font-family-header: 'Crimson Pro', 'Charter', 'Georgia', serif;
--citizen-font-family-sans: 'Inter Tight', -apple-system, system-ui, sans-serif;
--citizen-font-family-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', monospace;
/* Aliases for our own rules */
--font-serif: var(--citizen-font-family-base);
--font-sans: var(--citizen-font-family-sans);
--font-mono: var(--citizen-font-family-mono);
/* Body-text scale */
--t-body-lead: 1.3125rem; /* 21px — feature decks, hero deck */
--t-body: 1.1875rem; /* 19px — primary body text */
--t-body-sm: 1.0625rem; /* 17px — secondary body */
--t-meta: 0.875rem; /* 14px — captions, fine print */
--t-micro: 0.75rem; /* 12px — UI labels, badges */
/* Display scale */
--t-display: clamp(2.5rem, 5.5vw, 4.5rem);
--t-h1: clamp(1.875rem, 3vw, 2.5rem);
--t-h2: 1.625rem;
--t-h3: 1.25rem;
/* Sober editorial palette */
--c-ink: #0e0e10;
--c-ink-soft: #2a2a2d;
--c-ink-mute: #56565b;
--c-ink-faint: #8a8a90;
--c-rule: #d8d4cc;
--c-rule-soft: #ebe7df;
--c-paper: #fbf8f1;
--c-paper-pure: #ffffff;
--c-paper-sunk: #f4efe5;
--c-accent: #8b1a1a;
--c-accent-soft: #f3e4e4;
--c-accent-ink: #5a0c0c;
/* Flag colours — for {{Allegation}}, {{Opinion}}, etc. */
--c-flag-fact: #1f4a3a;
--c-flag-fact-soft: #e0ebe5;
--c-flag-alleg: #7a4a06;
--c-flag-alleg-soft: #f4e9d4;
--c-flag-opin: #3b3a6e;
--c-flag-opin-soft: #e3e2f0;
--c-flag-subj: #56565b;
--c-flag-subj-soft: #ece9e1;
/* Citizen overrides — colours and accents */
--color-base: var(--c-ink);
--color-emphasized: var(--c-ink);
--color-base--subtle:var(--c-ink-soft);
--color-link: var(--c-accent);
--color-link--visited: var(--c-accent-ink);
--color-link--hover: var(--c-accent-ink);
--color-surface-0: var(--c-paper);
--color-surface-1: var(--c-paper-pure);
--color-surface-2: var(--c-paper-sunk);
--color-surface-3: var(--c-paper-sunk);
--color-primary: var(--c-accent);
--color-primary--hover: var(--c-accent-ink);
}
/* ------ GLOBAL BODY ------------------------------------------- */
body {
font-family: var(--font-serif);
font-size: var(--t-body);
line-height: 1.6;
background: var(--c-paper);
color: var(--c-ink);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
a { color: var(--c-accent); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
a:visited { color: var(--c-accent-ink); }
/* ------ HEADINGS ---------------------------------------------- */
/* Unified system: display-scale at weight 500, smaller headings
at 600. Letter-spacing tight at large sizes, eased at small. */
.mw-body h1,
.mw-parser-output h1,
.firstHeading {
font-family: var(--font-serif);
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 500;
letter-spacing: -0.02em;
line-height: 1.05;
color: var(--c-ink);
margin-bottom: 1rem;
border-bottom: none;
}
.mw-body h2,
.mw-parser-output h2 {
font-family: var(--font-serif);
font-size: var(--t-h2);
font-weight: 600;
letter-spacing: -0.015em;
margin: 2.5rem 0 1rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid var(--c-rule);
color: var(--c-ink);
}
.mw-body h3,
.mw-parser-output h3 {
font-family: var(--font-serif);
font-size: var(--t-h3);
font-weight: 600;
letter-spacing: -0.01em;
margin: 1.75rem 0 0.75rem;
color: var(--c-ink);
}
.mw-body h4,
.mw-parser-output h4 {
font-family: var(--font-serif);
font-size: 1.0625rem;
font-weight: 600;
margin: 1.5rem 0 0.5rem;
color: var(--c-ink-soft);
}
/* Italic in display headings — balanced kerning, accent colour */
.firstHeading em,
.mw-body h1 em,
.mw-parser-output h1 em {
font-style: italic;
font-weight: 500;
color: var(--c-accent);
margin-left: -0.08em;
margin-right: 0.05em;
}
/* Italic in body — slight side-bearing fix */
.mw-parser-output p em,
.mw-parser-output li em {
margin-right: 0.04em;
}
/* ------ BODY PROSE -------------------------------------------- */
.mw-parser-output p {
font-family: var(--font-serif);
font-size: var(--t-body);
line-height: 1.65;
color: var(--c-ink-soft);
margin-bottom: 1.25rem;
}
/* Drop cap on the first paragraph of articles */
.mw-parser-output > p:first-of-type:first-letter {
font-family: var(--font-serif);
font-size: 4.2em;
float: left;
line-height: 0.75;
margin: -0.05em 0.08em -0.05em 0;
font-weight: 700;
color: var(--c-accent);
}
.mw-parser-output ul,
.mw-parser-output ol {
font-family: var(--font-serif);
font-size: var(--t-body);
line-height: 1.6;
color: var(--c-ink-soft);
margin-bottom: 1.25rem;
padding-left: 1.5rem;
}
.mw-parser-output li { margin-bottom: 0.4rem; }
.mw-parser-output blockquote {
border-left: 3px solid var(--c-accent);
padding: 0.5rem 0 0.5rem 1.5rem;
margin: 1.5rem 0;
font-family: var(--font-serif);
font-size: var(--t-body);
font-style: italic;
color: var(--c-ink-soft);
line-height: 1.5;
}
/* ------ MASTHEAD ---------------------------------------------- */
/* Citizen header customisation — bigger logo, breathing room */
.citizen-header {
border-bottom: 1px solid var(--c-rule);
background: rgba(251, 248, 241, 0.94);
backdrop-filter: blur(8px);
}
.citizen-header__logo img {
width: 48px;
height: 48px;
}
.citizen-header__siteTitle {
font-family: var(--font-serif) !important;
font-weight: 600;
font-size: 1.375rem;
letter-spacing: -0.015em;
line-height: 1.05;
color: var(--c-ink);
}
/* Navigation links */
.citizen-header nav a {
font-family: var(--font-sans);
font-size: 0.875rem;
font-weight: 500;
color: var(--c-ink-soft);
padding: 0.25rem 0;
border-bottom: 2px solid transparent;
}
.citizen-header nav a:hover {
color: var(--c-accent);
text-decoration: none;
}
.citizen-header nav a.is-active {
color: var(--c-ink);
border-bottom-color: var(--c-accent);
}
/* ------ FLAG TEMPLATES (Allegation, Opinion, etc.) ----------- */
/* These classes are emitted by Template:Allegation etc. */
.flag {
border-left: 3px solid;
padding: 1.25rem 1.5rem;
margin: 2rem 0;
border-radius: 0 4px 4px 0;
background: var(--c-paper-sunk);
font-family: var(--font-serif);
}
.flag__head {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 0.85rem;
}
.flag__type {
font-family: var(--font-sans);
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.14em;
font-weight: 700;
padding: 3px 9px;
border-radius: 3px;
white-space: nowrap;
}
.flag__title {
font-family: var(--font-serif);
font-size: 1rem;
font-weight: 600;
color: var(--c-ink);
}
.flag__body {
font-size: var(--t-body);
line-height: 1.55;
color: var(--c-ink-soft);
}
.flag__body p:last-child { margin-bottom: 0; }
.flag__foot {
margin-top: 0.85rem;
padding-top: 0.85rem;
border-top: 1px dotted var(--c-rule);
font-family: var(--font-sans);
font-size: 0.75rem;
color: var(--c-ink-mute);
display: flex;
flex-wrap: wrap;
gap: 1.25rem;
}
.flag__foot strong { color: var(--c-ink-soft); font-weight: 600; }
/* Per-type styling */
.flag--subj { border-color: var(--c-flag-subj); background: var(--c-flag-subj-soft); }
.flag--subj .flag__type { background: var(--c-flag-subj); color: var(--c-paper); }
.flag--allegation { border-color: var(--c-flag-alleg); background: var(--c-flag-alleg-soft); }
.flag--allegation .flag__type { background: var(--c-flag-alleg); color: var(--c-paper); }
.flag--opinion { border-color: var(--c-flag-opin); background: var(--c-flag-opin-soft); }
.flag--opinion .flag__type { background: var(--c-flag-opin); color: var(--c-paper); }
.flag--fact { border-color: var(--c-flag-fact); background: var(--c-flag-fact-soft); }
.flag--fact .flag__type { background: var(--c-flag-fact); color: var(--c-paper); }
.flag--reply { border-color: var(--c-ink-soft); background: var(--c-paper-pure); border: 1px solid var(--c-rule); border-left: 3px solid var(--c-ink-soft); }
.flag--reply .flag__type { background: var(--c-ink-soft); color: var(--c-paper); }
.flag--contact { border-color: var(--c-flag-fact); background: var(--c-flag-fact-soft); }
.flag--contact .flag__type { background: var(--c-flag-fact); color: var(--c-paper); }
/* ------ INFOBOXES (defendant, case, law) ---------------------- */
.infobox {
font-family: var(--font-sans);
font-size: 0.8125rem;
border: 1px solid var(--c-rule);
border-radius: 4px;
margin: 0 0 1.5rem 1.5rem;
background: var(--c-paper-pure);
overflow: hidden;
float: right;
width: 280px;
max-width: 40%;
}
.infobox__header {
padding: 0.85rem 1rem;
border-bottom: 1px solid var(--c-rule);
background: var(--c-paper-sunk);
}
.infobox__kind {
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--c-ink-mute);
font-weight: 600;
margin-bottom: 0.25rem;
}
.infobox__title {
font-family: var(--font-serif);
font-size: 1.0625rem;
font-weight: 600;
color: var(--c-ink);
line-height: 1.25;
letter-spacing: -0.01em;
}
.infobox__body { padding: 0.5rem 0; }
.infobox__row {
display: grid;
grid-template-columns: 90px 1fr;
gap: 0.75rem;
padding: 0.5rem 1rem;
border-bottom: 1px solid var(--c-rule-soft);
font-size: 0.8125rem;
}
.infobox__row:last-child { border-bottom: none; }
.infobox__label {
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--c-ink-mute);
font-weight: 600;
padding-top: 2px;
}
.infobox__value {
font-family: var(--font-serif);
color: var(--c-ink-soft);
font-size: 0.875rem;
line-height: 1.4;
}
.infobox__value strong { color: var(--c-ink); font-weight: 500; }
.infobox__status {
display: inline-block;
font-size: 0.6875rem;
font-family: var(--font-sans);
font-weight: 600;
padding: 1px 7px;
border-radius: 3px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.infobox__status--active { background: var(--c-flag-alleg-soft); color: var(--c-flag-alleg); }
.infobox__status--concluded { background: var(--c-flag-fact-soft); color: var(--c-flag-fact); }
.infobox__status--pending { background: var(--c-paper-sunk); color: var(--c-ink-soft); }
/* ------ REFERENCES / CITE EXTENSION --------------------------- */
.references,
.mw-references-wrap {
margin-top: 3rem;
padding-top: 1.5rem;
border-top: 1px solid var(--c-rule);
font-family: var(--font-serif);
font-size: 0.9375rem;
line-height: 1.55;
color: var(--c-ink-soft);
}
.references li {
font-size: 0.9375rem !important;
margin-bottom: 0.5rem !important;
}
sup.reference {
font-family: var(--font-sans);
font-size: 0.625rem;
font-weight: 600;
}
sup.reference a {
color: var(--c-accent);
text-decoration: none;
}
/* ------ NAMED-PERSON BADGES (inline) ------------------------- */
.named-person {
display: inline;
border-bottom: 1px dotted var(--c-ink-mute);
cursor: help;
}
.named-person a {
color: inherit;
}
.named-person::after {
content: "*";
font-size: 0.75em;
color: var(--c-accent);
margin-left: 1px;
vertical-align: super;
}
/* ------ TABLES OF AUTHORITIES & SMW QUERY TABLES ------------- */
.wikitable,
.smwtable {
background: var(--c-paper-pure);
border: 1px solid var(--c-rule);
border-collapse: collapse;
font-family: var(--font-sans);
font-size: 0.875rem;
margin: 1.5rem 0;
}
.wikitable th,
.smwtable th {
background: var(--c-paper-sunk);
border-bottom: 1px solid var(--c-rule);
padding: 0.7rem 0.85rem;
text-align: left;
font-family: var(--font-sans);
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: 600;
color: var(--c-ink-mute);
}
.wikitable td,
.smwtable td {
padding: 0.85rem;
border-bottom: 1px solid var(--c-rule-soft);
font-size: 0.9375rem;
color: var(--c-ink-soft);
font-family: var(--font-serif);
}
.wikitable tr:hover td { background: rgba(244, 239, 229, 0.4); }
/* ------ SIDEBAR (left navigation) ---------------------------- */
.citizen-pageSidebar,
.citizen-toc {
font-family: var(--font-sans);
font-size: 0.8125rem;
}
.citizen-pageSidebar a {
color: var(--c-ink-soft);
padding: 0.35rem 0;
text-decoration: none;
font-size: 0.8125rem;
line-height: 1.4;
border-left: 2px solid transparent;
padding-left: 0.6rem;
margin-left: -0.6rem;
}
.citizen-pageSidebar a:hover {
color: var(--c-accent);
border-left-color: var(--c-accent);
}
.citizen-pageSidebar a.is-active {
color: var(--c-ink);
border-left-color: var(--c-accent);
font-weight: 500;
}
/* ------ EDITORIAL NOTE BANNER -------------------------------- */
/* Used at the top of the main page and similar contexts */
.editorial-note {
background: var(--c-paper-sunk);
border-left: 3px solid var(--c-accent);
padding: 1.75rem 2rem;
margin: 2rem 0;
font-family: var(--font-serif);
font-size: var(--t-body);
line-height: 1.55;
border-radius: 0 4px 4px 0;
}
.editorial-note__label {
font-family: var(--font-sans);
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.12em;
font-weight: 600;
color: var(--c-accent);
margin-bottom: 0.6rem;
}
/* ------ FOOTER ----------------------------------------------- */
.citizen-footer {
background: var(--c-paper-sunk);
border-top: 1px solid var(--c-rule);
padding: 3rem var(--pad-x, 1.5rem) 2rem;
font-family: var(--font-sans);
}
.citizen-footer h4 {
font-family: var(--font-sans);
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.12em;
font-weight: 600;
color: var(--c-ink-mute);
margin-bottom: 0.85rem;
border: none;
}
.citizen-footer a {
display: block;
font-family: var(--font-sans);
font-size: 0.8125rem;
color: var(--c-ink-soft);
padding: 0.3rem 0;
text-decoration: none;
}
.citizen-footer a:hover { color: var(--c-accent); }
/* ------ TOC --------------------------------------------------- */
.toc, #toc {
background: var(--c-paper-sunk);
border: 1px solid var(--c-rule);
border-radius: 4px;
padding: 1rem 1.25rem;
font-family: var(--font-sans);
font-size: 0.8125rem;
}
.toc .toctitle h2 {
font-family: var(--font-sans);
font-size: 0.6875rem;
text-transform: uppercase;
letter-spacing: 0.12em;
font-weight: 600;
color: var(--c-ink-mute);
border: none;
padding: 0;
margin: 0 0 0.5rem;
}
.toc ul {
padding-left: 1rem;
margin: 0;
}
.toc li {
font-size: 0.8125rem;
margin: 0.25rem 0;
}
/* ------ DARK MODE (Citizen respects prefers-color-scheme) ----- */
/* Re-tune the palette for dark mode */
html.skin-citizen-dark,
@media (prefers-color-scheme: dark) {
:root {
--c-paper: #16161a;
--c-paper-pure: #1c1c20;
--c-paper-sunk: #232328;
--c-ink: #f0eee5;
--c-ink-soft: #d6d3c8;
--c-ink-mute: #97948b;
--c-ink-faint: #6b6962;
--c-rule: #3a3a40;
--c-rule-soft: #2c2c32;
--c-accent: #d96f6f;
--c-accent-soft: #3d2424;
--c-accent-ink: #f0a5a5;
}
}
/* ------ PRINT STYLES ----------------------------------------- */
/* Important for legal documents that may be printed */
@media print {
body { background: white; color: black; font-size: 11pt; }
.citizen-header, .citizen-footer, .citizen-pageSidebar,
.citizen-toc, .editsection, #footer { display: none; }
a { color: black; text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; font-size: 9pt; }
.flag { border: 1pt solid black; background: white; }
.flag__type { background: black; color: white; }
}