MediaWiki:Common.css: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/* | /* EJ Fox MediaWiki Theme - Consistent with main site */ | ||
/* | /* ==================== IMPORTS ==================== */ | ||
/* | @import url('https://fonts.googleapis.com/css2?family=Signika+Negative:wght@200;300;400;500;600;700;800&family=Red+Hat+Mono:wght@300;400&family=Fjalla+One:wght@400&display=swap'); | ||
/* ==================== ROOT VARIABLES ==================== */ | |||
. | :root { | ||
/* Typography */ | |||
--font-primary: 'Signika Negative', sans-serif; | |||
--font-mono: 'Red Hat Mono', monospace; | |||
--font-heading: 'Fjalla One', sans-serif; | |||
/* Font Sizes */ | |||
. | --text-base: 1.125rem; /* 18px */ | ||
--text-lg: 1.25rem; /* 20px */ | |||
--text-sm: 0.875rem; /* 14px */ | |||
--text-xs: 0.75rem; /* 12px */ | |||
--text-3xl: 1.875rem; /* 30px */ | |||
--text-4xl: 2.25rem; /* 36px */ | |||
--text-5xl: 3rem; /* 48px */ | |||
/* Spacing */ | |||
--space-1: 0.25rem; /* 4px */ | |||
--space-2: 0.5rem; /* 8px */ | |||
--space-4: 1rem; /* 16px */ | |||
--space-6: 1.5rem; /* 24px */ | |||
--space-8: 2rem; /* 32px */ | |||
--space-12: 3rem; /* 48px */ | |||
/* Layout */ | |||
--max-width-3xl: 48rem; /* 768px */ | |||
--max-width-4xl: 56rem; /* 896px */ | |||
/* Transitions */ | |||
--transition-fast: 200ms ease-out; | |||
--transition-normal: 300ms ease-out; | |||
} | } | ||
/* Light mode colors */ | |||
:root { | |||
--bg-primary: rgb(250, 250, 250); /* zinc-50 */ | |||
--bg-secondary: rgb(244, 244, 245); /* zinc-100 */ | |||
--bg-tertiary: rgb(228, 228, 231); /* zinc-200 */ | |||
--border-light: rgb(228, 228, 231); /* zinc-200 */ | |||
--border-medium: rgb(212, 212, 216); /* zinc-300 */ | |||
--border-dark: rgb(161, 161, 170); /* zinc-400 */ | |||
--text-primary: rgb(39, 39, 42); /* zinc-800 */ | |||
--text-secondary: rgb(82, 82, 91); /* zinc-600 */ | |||
--text-tertiary: rgb(113, 113, 122); /* zinc-500 */ | |||
--text-muted: rgb(161, 161, 170); /* zinc-400 */ | |||
--accent-primary: rgb(22, 163, 74); /* green-600 */ | |||
--accent-error: rgb(220, 38, 38); /* red-600 */ | |||
--hover-bg: rgb(228, 228, 231, 0.3); /* zinc-200/30 */ | |||
--focus-ring: rgb(161, 161, 170); /* zinc-400 */ | |||
} | } | ||
/* Dark mode colors */ | |||
@media (prefers-color-scheme: dark) { | |||
:root { | |||
--bg-primary: rgb(24, 24, 27); /* zinc-900 */ | |||
--bg-secondary: rgb(39, 39, 42); /* zinc-800 */ | |||
--bg-tertiary: rgb(63, 63, 70); /* zinc-700 */ | |||
--border-light: rgb(63, 63, 70); /* zinc-700 */ | |||
--border-medium: rgb(82, 82, 91); /* zinc-600 */ | |||
--border-dark: rgb(113, 113, 122); /* zinc-500 */ | |||
--text-primary: rgb(244, 244, 245); /* zinc-100 */ | |||
--text-secondary: rgb(212, 212, 216); /* zinc-300 */ | |||
--text-tertiary: rgb(161, 161, 170); /* zinc-400 */ | |||
--text-muted: rgb(113, 113, 122); /* zinc-500 */ | |||
--accent-primary: rgb(74, 222, 128); /* green-400 */ | |||
--accent-error: rgb(248, 113, 113); /* red-400 */ | |||
--hover-bg: rgb(63, 63, 70, 0.3); /* zinc-700/30 */ | |||
--focus-ring: rgb(82, 82, 91); /* zinc-600 */ | |||
} | |||
} | |||
/* ==================== RESET & BASE ==================== */ | |||
body { | |||
background: var(--bg-primary) !important; | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-primary) !important; | |||
font-size: var(--text-base) !important; | |||
line-height: 2rem !important; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
transition: background-color var(--transition-normal), color var(--transition-normal) !important; | |||
} | |||
/* | /* ==================== CLEANUP (your existing code enhanced) ==================== */ | ||
#p-search, | |||
#p-logo, | |||
.mw-wiki-logo, | |||
#footer, | #footer, | ||
.printfooter, | .printfooter, | ||
#catlinks, | #catlinks, | ||
#f-poweredbyico, | #f-poweredbyico, | ||
#f-copyrightico { | #f-copyrightico, | ||
#p-views, | |||
#p-cactions, | |||
.mw-editsection { | |||
display: none !important; | display: none !important; | ||
} | } | ||
/* | /* ==================== LAYOUT ==================== */ | ||
.mw-body { | .mw-body { | ||
margin: 0 !important; | margin: 0 !important; | ||
border: none !important; | border: none !important; | ||
padding: | padding: var(--space-8) !important; | ||
background: transparent !important; | background: transparent !important; | ||
max-width: var(--max-width-3xl) !important; | |||
margin: 0 auto !important; | |||
} | } | ||
| Line 48: | Line 126: | ||
} | } | ||
/* ==================== TYPOGRAPHY ==================== */ | |||
.mw-body h1 { | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-heading) !important; | |||
font-size: var(--text-4xl) !important; | |||
font-weight: 400 !important; | |||
line-height: 1.2 !important; | |||
margin: 0 0 var(--space-6) 0 !important; | |||
border-bottom: none !important; | |||
} | |||
.mw-body h2 { | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-heading) !important; | |||
font-size: var(--text-3xl) !important; | |||
font-weight: 400 !important; | |||
line-height: 1.3 !important; | |||
margin: var(--space-8) 0 var(--space-4) 0 !important; | |||
border-bottom: 1px dotted var(--border-medium) !important; | |||
padding-bottom: var(--space-2) !important; | |||
} | |||
.mw-body h3 { | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-primary) !important; | |||
font-size: var(--text-lg) !important; | |||
font-weight: 600 !important; | |||
margin: var(--space-6) 0 var(--space-4) 0 !important; | |||
} | |||
/* Geometric symbols (your signature style) */ | |||
.mw-body h1::before { | .mw-body h1::before { | ||
content: "◆ "; | content: "◆ "; | ||
margin-right: var(--space-2) !important; | |||
} | } | ||
.mw-body h2::before { | .mw-body h2::before { | ||
content: "○ "; | content: "○ "; | ||
margin-right: var(--space-2) !important; | |||
} | |||
.mw-body h3::before { | |||
content: "▪ "; | |||
margin-right: var(--space-2) !important; | |||
} | |||
/* Body text */ | |||
.mw-body p { | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-primary) !important; | |||
font-size: var(--text-base) !important; | |||
line-height: 2rem !important; | |||
margin-bottom: var(--space-6) !important; | |||
} | |||
/* ==================== LINKS ==================== */ | |||
.mw-body a:not(.external) { | |||
color: var(--text-primary) !important; | |||
padding: 1px 2px !important; | |||
transition: all var(--transition-fast) !important; | |||
} | |||
.mw-body a:not(.external):hover { | |||
border-bottom-color: var(--text-primary) !important; | |||
background: var(--hover-bg) !important; | |||
} | |||
/* External links */ | |||
.mw-body a.external { | |||
color: var(--accent-primary) !important; | |||
text-decoration: none !important; | |||
border-bottom: 1px solid var(--accent-primary) !important; | |||
padding: 1px 2px !important; | |||
transition: all var(--transition-fast) !important; | |||
} | |||
.mw-body a.external:hover { | |||
background: var(--hover-bg) !important; | |||
} | |||
/* ==================== TABLES ==================== */ | |||
.wikitable { | |||
background: var(--bg-secondary) !important; | |||
border: 1px solid var(--border-light) !important; | |||
border-collapse: collapse !important; | |||
font-family: var(--font-mono) !important; | |||
font-size: var(--text-sm) !important; | |||
margin: var(--space-6) 0 !important; | |||
width: 100% !important; | |||
border-radius: 4px !important; | |||
overflow: hidden !important; | |||
} | |||
.wikitable th { | |||
background: var(--bg-tertiary) !important; | |||
border: 1px solid var(--border-medium) !important; | |||
color: var(--text-primary) !important; | |||
padding: var(--space-4) !important; | |||
font-weight: 600 !important; | |||
text-align: left !important; | |||
} | |||
.wikitable td { | |||
border: 1px solid var(--border-light) !important; | |||
color: var(--text-primary) !important; | |||
padding: var(--space-4) !important; | |||
} | |||
.wikitable tr:nth-child(even) td { | |||
background: rgba(0, 0, 0, 0.02) !important; | |||
} | |||
@media (prefers-color-scheme: dark) { | |||
.wikitable tr:nth-child(even) td { | |||
background: rgba(255, 255, 255, 0.02) !important; | |||
} | |||
} | |||
/* ==================== CODE ==================== */ | |||
code, pre { | |||
font-family: var(--font-mono) !important; | |||
font-feature-settings: "tnum", "zero" !important; | |||
background: var(--bg-secondary) !important; | |||
border: 1px solid var(--border-light) !important; | |||
border-radius: 4px !important; | |||
color: var(--text-primary) !important; | |||
} | |||
code { | |||
padding: 2px 4px !important; | |||
font-size: var(--text-sm) !important; | |||
} | |||
pre { | |||
padding: var(--space-4) !important; | |||
margin: var(--space-6) 0 !important; | |||
overflow-x: auto !important; | |||
line-height: 1.5 !important; | |||
} | |||
/* ==================== LISTS ==================== */ | |||
.mw-body ul, .mw-body ol { | |||
margin: var(--space-4) 0 !important; | |||
padding-left: var(--space-6) !important; | |||
} | |||
.mw-body li { | |||
margin-bottom: var(--space-2) !important; | |||
color: var(--text-primary) !important; | |||
} | |||
/* ==================== RESPONSIVE ==================== */ | |||
@media (max-width: 768px) { | |||
:root { | |||
--text-base: 1rem; /* 16px on mobile */ | |||
} | |||
.mw-body { | |||
padding: var(--space-4) !important; | |||
margin-left: 0 !important; | |||
} | |||
#mw-panel { | |||
position: relative !important; | |||
width: 100% !important; | |||
margin: 0 0 var(--space-6) 0 !important; | |||
backdrop-filter: blur(16px) !important; | |||
background: rgba(var(--bg-secondary), 0.8) !important; | |||
} | |||
.mw-body h1 { | |||
font-size: var(--text-3xl) !important; | |||
} | |||
.mw-body h2 { | |||
font-size: var(--text-lg) !important; | |||
} | |||
} | |||
/* ==================== SEARCH (if you want to show it) ==================== */ | |||
#searchform { | |||
background: var(--bg-secondary) !important; | |||
border: 1px solid var(--border-light) !important; | |||
border-radius: 4px !important; | |||
margin: var(--space-4) 0 !important; | |||
overflow: hidden !important; | |||
} | |||
#searchInput { | |||
background: transparent !important; | |||
border: none !important; | |||
color: var(--text-primary) !important; | |||
font-family: var(--font-mono) !important; | |||
font-size: var(--text-sm) !important; | |||
padding: var(--space-2) var(--space-4) !important; | |||
width: calc(100% - var(--space-8)) !important; | |||
} | |||
#searchInput::placeholder { | |||
color: var(--text-muted) !important; | |||
} | |||
#searchInput:focus { | |||
outline: none !important; | |||
box-shadow: 0 0 0 1px var(--focus-ring) !important; | |||
} | |||
/* ==================== GEOMETRIC ACCENTS ==================== */ | |||
.mw-body::before { | |||
content: ""; | |||
position: fixed; | |||
top: var(--space-4); | |||
right: var(--space-4); | |||
width: 8px; | |||
height: 8px; | |||
background: var(--accent-primary); | |||
border-radius: 50%; | |||
z-index: 1000; | |||
} | } | ||
Revision as of 18:26, 31 May 2025
/* EJ Fox MediaWiki Theme - Consistent with main site */
/* ==================== IMPORTS ==================== */
@import url('https://fonts.googleapis.com/css2?family=Signika+Negative:wght@200;300;400;500;600;700;800&family=Red+Hat+Mono:wght@300;400&family=Fjalla+One:wght@400&display=swap');
/* ==================== ROOT VARIABLES ==================== */
:root {
/* Typography */
--font-primary: 'Signika Negative', sans-serif;
--font-mono: 'Red Hat Mono', monospace;
--font-heading: 'Fjalla One', sans-serif;
/* Font Sizes */
--text-base: 1.125rem; /* 18px */
--text-lg: 1.25rem; /* 20px */
--text-sm: 0.875rem; /* 14px */
--text-xs: 0.75rem; /* 12px */
--text-3xl: 1.875rem; /* 30px */
--text-4xl: 2.25rem; /* 36px */
--text-5xl: 3rem; /* 48px */
/* Spacing */
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-4: 1rem; /* 16px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-12: 3rem; /* 48px */
/* Layout */
--max-width-3xl: 48rem; /* 768px */
--max-width-4xl: 56rem; /* 896px */
/* Transitions */
--transition-fast: 200ms ease-out;
--transition-normal: 300ms ease-out;
}
/* Light mode colors */
:root {
--bg-primary: rgb(250, 250, 250); /* zinc-50 */
--bg-secondary: rgb(244, 244, 245); /* zinc-100 */
--bg-tertiary: rgb(228, 228, 231); /* zinc-200 */
--border-light: rgb(228, 228, 231); /* zinc-200 */
--border-medium: rgb(212, 212, 216); /* zinc-300 */
--border-dark: rgb(161, 161, 170); /* zinc-400 */
--text-primary: rgb(39, 39, 42); /* zinc-800 */
--text-secondary: rgb(82, 82, 91); /* zinc-600 */
--text-tertiary: rgb(113, 113, 122); /* zinc-500 */
--text-muted: rgb(161, 161, 170); /* zinc-400 */
--accent-primary: rgb(22, 163, 74); /* green-600 */
--accent-error: rgb(220, 38, 38); /* red-600 */
--hover-bg: rgb(228, 228, 231, 0.3); /* zinc-200/30 */
--focus-ring: rgb(161, 161, 170); /* zinc-400 */
}
/* Dark mode colors */
@media (prefers-color-scheme: dark) {
:root {
--bg-primary: rgb(24, 24, 27); /* zinc-900 */
--bg-secondary: rgb(39, 39, 42); /* zinc-800 */
--bg-tertiary: rgb(63, 63, 70); /* zinc-700 */
--border-light: rgb(63, 63, 70); /* zinc-700 */
--border-medium: rgb(82, 82, 91); /* zinc-600 */
--border-dark: rgb(113, 113, 122); /* zinc-500 */
--text-primary: rgb(244, 244, 245); /* zinc-100 */
--text-secondary: rgb(212, 212, 216); /* zinc-300 */
--text-tertiary: rgb(161, 161, 170); /* zinc-400 */
--text-muted: rgb(113, 113, 122); /* zinc-500 */
--accent-primary: rgb(74, 222, 128); /* green-400 */
--accent-error: rgb(248, 113, 113); /* red-400 */
--hover-bg: rgb(63, 63, 70, 0.3); /* zinc-700/30 */
--focus-ring: rgb(82, 82, 91); /* zinc-600 */
}
}
/* ==================== RESET & BASE ==================== */
body {
background: var(--bg-primary) !important;
color: var(--text-primary) !important;
font-family: var(--font-primary) !important;
font-size: var(--text-base) !important;
line-height: 2rem !important;
margin: 0 !important;
padding: 0 !important;
transition: background-color var(--transition-normal), color var(--transition-normal) !important;
}
/* ==================== CLEANUP (your existing code enhanced) ==================== */
#p-search,
#p-logo,
.mw-wiki-logo,
#footer,
.printfooter,
#catlinks,
#f-poweredbyico,
#f-copyrightico,
#p-views,
#p-cactions,
.mw-editsection {
display: none !important;
}
/* ==================== LAYOUT ==================== */
.mw-body {
margin: 0 !important;
border: none !important;
padding: var(--space-8) !important;
background: transparent !important;
max-width: var(--max-width-3xl) !important;
margin: 0 auto !important;
}
#content {
margin-left: 0 !important;
background: transparent !important;
border: none !important;
}
/* ==================== TYPOGRAPHY ==================== */
.mw-body h1 {
color: var(--text-primary) !important;
font-family: var(--font-heading) !important;
font-size: var(--text-4xl) !important;
font-weight: 400 !important;
line-height: 1.2 !important;
margin: 0 0 var(--space-6) 0 !important;
border-bottom: none !important;
}
.mw-body h2 {
color: var(--text-primary) !important;
font-family: var(--font-heading) !important;
font-size: var(--text-3xl) !important;
font-weight: 400 !important;
line-height: 1.3 !important;
margin: var(--space-8) 0 var(--space-4) 0 !important;
border-bottom: 1px dotted var(--border-medium) !important;
padding-bottom: var(--space-2) !important;
}
.mw-body h3 {
color: var(--text-primary) !important;
font-family: var(--font-primary) !important;
font-size: var(--text-lg) !important;
font-weight: 600 !important;
margin: var(--space-6) 0 var(--space-4) 0 !important;
}
/* Geometric symbols (your signature style) */
.mw-body h1::before {
content: "◆ ";
margin-right: var(--space-2) !important;
}
.mw-body h2::before {
content: "○ ";
margin-right: var(--space-2) !important;
}
.mw-body h3::before {
content: "▪ ";
margin-right: var(--space-2) !important;
}
/* Body text */
.mw-body p {
color: var(--text-primary) !important;
font-family: var(--font-primary) !important;
font-size: var(--text-base) !important;
line-height: 2rem !important;
margin-bottom: var(--space-6) !important;
}
/* ==================== LINKS ==================== */
.mw-body a:not(.external) {
color: var(--text-primary) !important;
padding: 1px 2px !important;
transition: all var(--transition-fast) !important;
}
.mw-body a:not(.external):hover {
border-bottom-color: var(--text-primary) !important;
background: var(--hover-bg) !important;
}
/* External links */
.mw-body a.external {
color: var(--accent-primary) !important;
text-decoration: none !important;
border-bottom: 1px solid var(--accent-primary) !important;
padding: 1px 2px !important;
transition: all var(--transition-fast) !important;
}
.mw-body a.external:hover {
background: var(--hover-bg) !important;
}
/* ==================== TABLES ==================== */
.wikitable {
background: var(--bg-secondary) !important;
border: 1px solid var(--border-light) !important;
border-collapse: collapse !important;
font-family: var(--font-mono) !important;
font-size: var(--text-sm) !important;
margin: var(--space-6) 0 !important;
width: 100% !important;
border-radius: 4px !important;
overflow: hidden !important;
}
.wikitable th {
background: var(--bg-tertiary) !important;
border: 1px solid var(--border-medium) !important;
color: var(--text-primary) !important;
padding: var(--space-4) !important;
font-weight: 600 !important;
text-align: left !important;
}
.wikitable td {
border: 1px solid var(--border-light) !important;
color: var(--text-primary) !important;
padding: var(--space-4) !important;
}
.wikitable tr:nth-child(even) td {
background: rgba(0, 0, 0, 0.02) !important;
}
@media (prefers-color-scheme: dark) {
.wikitable tr:nth-child(even) td {
background: rgba(255, 255, 255, 0.02) !important;
}
}
/* ==================== CODE ==================== */
code, pre {
font-family: var(--font-mono) !important;
font-feature-settings: "tnum", "zero" !important;
background: var(--bg-secondary) !important;
border: 1px solid var(--border-light) !important;
border-radius: 4px !important;
color: var(--text-primary) !important;
}
code {
padding: 2px 4px !important;
font-size: var(--text-sm) !important;
}
pre {
padding: var(--space-4) !important;
margin: var(--space-6) 0 !important;
overflow-x: auto !important;
line-height: 1.5 !important;
}
/* ==================== LISTS ==================== */
.mw-body ul, .mw-body ol {
margin: var(--space-4) 0 !important;
padding-left: var(--space-6) !important;
}
.mw-body li {
margin-bottom: var(--space-2) !important;
color: var(--text-primary) !important;
}
/* ==================== RESPONSIVE ==================== */
@media (max-width: 768px) {
:root {
--text-base: 1rem; /* 16px on mobile */
}
.mw-body {
padding: var(--space-4) !important;
margin-left: 0 !important;
}
#mw-panel {
position: relative !important;
width: 100% !important;
margin: 0 0 var(--space-6) 0 !important;
backdrop-filter: blur(16px) !important;
background: rgba(var(--bg-secondary), 0.8) !important;
}
.mw-body h1 {
font-size: var(--text-3xl) !important;
}
.mw-body h2 {
font-size: var(--text-lg) !important;
}
}
/* ==================== SEARCH (if you want to show it) ==================== */
#searchform {
background: var(--bg-secondary) !important;
border: 1px solid var(--border-light) !important;
border-radius: 4px !important;
margin: var(--space-4) 0 !important;
overflow: hidden !important;
}
#searchInput {
background: transparent !important;
border: none !important;
color: var(--text-primary) !important;
font-family: var(--font-mono) !important;
font-size: var(--text-sm) !important;
padding: var(--space-2) var(--space-4) !important;
width: calc(100% - var(--space-8)) !important;
}
#searchInput::placeholder {
color: var(--text-muted) !important;
}
#searchInput:focus {
outline: none !important;
box-shadow: 0 0 0 1px var(--focus-ring) !important;
}
/* ==================== GEOMETRIC ACCENTS ==================== */
.mw-body::before {
content: "";
position: fixed;
top: var(--space-4);
right: var(--space-4);
width: 8px;
height: 8px;
background: var(--accent-primary);
border-radius: 50%;
z-index: 1000;
}