MediaWiki:Citizen.css: Difference between revisions
MediaWiki interface page
More actions
No edit summary Tags: Mobile edit Mobile web edit |
No edit summary Tags: Mobile edit Mobile web edit |
||
| Line 1: | Line 1: | ||
/* ============================================================ | /* ============================================================ | ||
SpiritVale Wiki — Citizen.css | SpiritVale Wiki — Citizen.css | ||
Blue System v0. | Blue System v0.4 (Citizen theme -> SV token bridge) | ||
- | - Anchors to site swatch: #1F2937 | ||
- | - Day: darker “light mode” (still readable, not washed out) | ||
- | - Night: deeper dark mode | ||
- Exports Citizen theme vars -> Common.css --sv-ui-* tokens | |||
- | |||
- Mobile (<=500): no frosted glass / no transparency | - Mobile (<=500): no frosted glass / no transparency | ||
============================================================ */ | ============================================================ */ | ||
| Line 18: | Line 17: | ||
/* ------------------------------------------------------------ | /* ------------------------------------------------------------ | ||
1) | 1) DARK MODE (Night) — deeper than site swatch | ||
------------------------------------------------------------ */ | ------------------------------------------------------------ */ | ||
:root.skin-theme-clientpref- | :root.skin-theme-clientpref-night{ | ||
--color-progressive-oklch__h:225 !important; | --color-progressive-oklch__h:225 !important; | ||
--color-progressive-oklch__c:0.170 !important; | --color-progressive-oklch__c:0.170 !important; | ||
--color-progressive-oklch__l: | --color-progressive-oklch__l:62% !important; | ||
/* | /* Citizen surfaces */ | ||
--color-surface-0:# | --color-surface-0:#0f172a !important; | ||
--color-surface-1:# | --color-surface-1:#1f2937 !important; /* site swatch */ | ||
--color-surface-2:# | --color-surface-2:#273449 !important; | ||
--color-surface-3:# | --color-surface-3:#2e3f59 !important; | ||
--color-surface-4:# | --color-surface-4:#364a69 !important; | ||
/* | /* Keep Citizen internal OKLCH aligned */ | ||
--color-surface-0-oklch__l: | --color-surface-0-oklch__l:10% !important; | ||
--color-surface-0-oklch__c:0.040 !important; | --color-surface-0-oklch__c:0.040 !important; | ||
/* Text */ | /* Text (bright, readable) */ | ||
--color-emphasized:# | --color-emphasized:#f5f9ff !important; | ||
--color-base:# | --color-base:#d7e2f4 !important; | ||
--color-subtle:# | --color-subtle:#b6c6e0 !important; | ||
/* Links (blue-only | /* Links (blue-only) */ | ||
--color-link:# | --color-link:#6aa6ff !important; | ||
--color-link--hover:# | --color-link--hover:#8cbcff !important; | ||
--color-link--active:# | --color-link--active:#4f98ff !important; | ||
--color-visited:# | --color-visited:#8cbcff !important; | ||
--color-visited--hover:# | --color-visited--hover:#b0d0ff !important; | ||
--color-visited--active:# | --color-visited--active:#6aa6ff !important; | ||
--background-color-base-fixed:var(--color-surface-0) !important; | --background-color-base-fixed:var(--color-surface-0) !important; | ||
/* Export -> SV tokens (Common.css uses these everywhere) */ | |||
--sv-ui-bg0:var(--color-surface-0); | |||
--sv-ui-bg1:var(--color-surface-1); | |||
--sv-ui-bg2:var(--color-surface-2); | |||
--sv-ui-bg3:var(--color-surface-3); | |||
--sv-ui-line1:#3b4b63; | |||
--sv-ui-line2:#4b6388; | |||
--sv-ui-text1:var(--color-emphasized); | |||
--sv-ui-text2:var(--color-base); | |||
--sv-ui-text3:var(--color-subtle); | |||
--sv-ui-accent:var(--color-link); | |||
--sv-ui-accent2:var(--color-visited); | |||
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.40); | |||
} | } | ||
/* ------------------------------------------------------------ | /* ------------------------------------------------------------ | ||
2) | 2) LIGHT MODE (Day) — the site swatch becomes the canvas | ||
(“25% lighter than dark mode” concept: Day uses #1F2937 as surface-0) | |||
------------------------------------------------------------ */ | ------------------------------------------------------------ */ | ||
:root.skin-theme-clientpref- | :root.skin-theme-clientpref-day{ | ||
--color-progressive-oklch__h:225 !important; | --color-progressive-oklch__h:225 !important; | ||
--color-progressive-oklch__c:0.170 !important; | --color-progressive-oklch__c:0.170 !important; | ||
--color-progressive-oklch__l: | --color-progressive-oklch__l:62% !important; | ||
/* | /* Citizen surfaces */ | ||
--color-surface-0:# | --color-surface-0:#1f2937 !important; /* site swatch */ | ||
--color-surface-1:# | --color-surface-1:#273449 !important; | ||
--color-surface-2:# | --color-surface-2:#2e3f59 !important; | ||
--color-surface-3:# | --color-surface-3:#364a69 !important; | ||
--color-surface-4:# | --color-surface-4:#3f5580 !important; | ||
/* | /* Align internal OKLCH */ | ||
--color-surface-0-oklch__l: | --color-surface-0-oklch__l:18% !important; | ||
--color-surface-0-oklch__c:0.040 !important; | --color-surface-0-oklch__c:0.040 !important; | ||
/* | /* IMPORTANT: keep text LIGHT in day mode since the canvas is still dark */ | ||
--color-emphasized:# | --color-emphasized:#f5f9ff !important; | ||
--color-base:# | --color-base:#d7e2f4 !important; | ||
--color-subtle:# | --color-subtle:#b6c6e0 !important; | ||
/* Links (blue-only) */ | /* Links (blue-only) */ | ||
--color-link:# | --color-link:#8cbcff !important; | ||
--color-link--hover:# | --color-link--hover:#b0d0ff !important; | ||
--color-link--active:# | --color-link--active:#6aa6ff !important; | ||
--color-visited:# | --color-visited:#b0d0ff !important; | ||
--color-visited--hover:# | --color-visited--hover:#d2e6ff !important; | ||
--color-visited--active:# | --color-visited--active:#8cbcff !important; | ||
--background-color-base-fixed:var(--color-surface-0) !important; | --background-color-base-fixed:var(--color-surface-0) !important; | ||
/* Export -> SV tokens */ | |||
--sv-ui-bg0:var(--color-surface-0); | |||
--sv-ui-bg1:var(--color-surface-1); | |||
--sv-ui-bg2:var(--color-surface-2); | |||
--sv-ui-bg3:var(--color-surface-3); | |||
--sv-ui-line1:#4b6388; | |||
--sv-ui-line2:#5f7fb4; | |||
--sv-ui-text1:var(--color-emphasized); | |||
--sv-ui-text2:var(--color-base); | |||
--sv-ui-text3:var(--color-subtle); | |||
--sv-ui-accent:var(--color-link); | |||
--sv-ui-accent2:var(--color-visited); | |||
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.35); | |||
} | } | ||
| Line 93: | Line 118: | ||
3) AUTOMATIC MODE (OS) | 3) AUTOMATIC MODE (OS) | ||
------------------------------------------------------------ */ | ------------------------------------------------------------ */ | ||
@media (prefers-color-scheme: | @media (prefers-color-scheme:dark){ | ||
:root.skin-theme-clientpref-os{ | :root.skin-theme-clientpref-os{ | ||
--color-progressive-oklch__h:225 !important; | --color-progressive-oklch__h:225 !important; | ||
--color-progressive-oklch__c:0.170 !important; | --color-progressive-oklch__c:0.170 !important; | ||
--color-progressive-oklch__l: | --color-progressive-oklch__l:62% !important; | ||
--color-surface-0:# | |||
--color-surface-1:# | --color-surface-0:#0f172a !important; | ||
--color-surface-2:# | --color-surface-1:#1f2937 !important; | ||
--color-surface-3:# | --color-surface-2:#273449 !important; | ||
--color-surface-4:# | --color-surface-3:#2e3f59 !important; | ||
--color-surface-0-oklch__l: | --color-surface-4:#364a69 !important; | ||
--color-surface-0-oklch__l:10% !important; | |||
--color-surface-0-oklch__c:0.040 !important; | --color-surface-0-oklch__c:0.040 !important; | ||
--color-emphasized:# | |||
--color-base:# | --color-emphasized:#f5f9ff !important; | ||
--color-subtle:# | --color-base:#d7e2f4 !important; | ||
--color-link:# | --color-subtle:#b6c6e0 !important; | ||
--color-visited:# | |||
--color-link:#6aa6ff !important; | |||
--color-visited:#8cbcff !important; | |||
--background-color-base-fixed:var(--color-surface-0) !important; | --background-color-base-fixed:var(--color-surface-0) !important; | ||
--sv-ui-bg0:var(--color-surface-0); | |||
--sv-ui-bg1:var(--color-surface-1); | |||
--sv-ui-bg2:var(--color-surface-2); | |||
--sv-ui-bg3:var(--color-surface-3); | |||
--sv-ui-line1:#3b4b63; | |||
--sv-ui-line2:#4b6388; | |||
--sv-ui-text1:var(--color-emphasized); | |||
--sv-ui-text2:var(--color-base); | |||
--sv-ui-text3:var(--color-subtle); | |||
--sv-ui-accent:var(--color-link); | |||
--sv-ui-accent2:var(--color-visited); | |||
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.40); | |||
} | } | ||
} | } | ||
@media (prefers-color-scheme: | |||
@media (prefers-color-scheme:light){ | |||
:root.skin-theme-clientpref-os{ | :root.skin-theme-clientpref-os{ | ||
--color-progressive-oklch__h:225 !important; | --color-progressive-oklch__h:225 !important; | ||
--color-progressive-oklch__c:0.170 !important; | --color-progressive-oklch__c:0.170 !important; | ||
--color-progressive-oklch__l: | --color-progressive-oklch__l:62% !important; | ||
--color-surface-0:# | |||
--color-surface-1:# | --color-surface-0:#1f2937 !important; | ||
--color-surface-2:# | --color-surface-1:#273449 !important; | ||
--color-surface-3:# | --color-surface-2:#2e3f59 !important; | ||
--color-surface-4:# | --color-surface-3:#364a69 !important; | ||
--color-surface-0-oklch__l: | --color-surface-4:#3f5580 !important; | ||
--color-surface-0-oklch__l:18% !important; | |||
--color-surface-0-oklch__c:0.040 !important; | --color-surface-0-oklch__c:0.040 !important; | ||
--color-emphasized:# | |||
--color-base:# | --color-emphasized:#f5f9ff !important; | ||
--color-subtle:# | --color-base:#d7e2f4 !important; | ||
--color-link:# | --color-subtle:#b6c6e0 !important; | ||
--color-visited:# | |||
--color-link:#8cbcff !important; | |||
--color-visited:#b0d0ff !important; | |||
--background-color-base-fixed:var(--color-surface-0) !important; | --background-color-base-fixed:var(--color-surface-0) !important; | ||
--sv-ui-bg0:var(--color-surface-0); | |||
--sv-ui-bg1:var(--color-surface-1); | |||
--sv-ui-bg2:var(--color-surface-2); | |||
--sv-ui-bg3:var(--color-surface-3); | |||
--sv-ui-line1:#4b6388; | |||
--sv-ui-line2:#5f7fb4; | |||
--sv-ui-text1:var(--color-emphasized); | |||
--sv-ui-text2:var(--color-base); | |||
--sv-ui-text3:var(--color-subtle); | |||
--sv-ui-accent:var(--color-link); | |||
--sv-ui-accent2:var(--color-visited); | |||
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.35); | |||
} | } | ||
} | } | ||
/* ------------------------------------------------------------ | /* ------------------------------------------------------------ | ||
4) FORCE PAGE CANVAS BACKGROUNDS | 4) FORCE PAGE CANVAS BACKGROUNDS | ||
------------------------------------------------------------ */ | ------------------------------------------------------------ */ | ||
body.skin-citizen{ | body.skin-citizen{ | ||
| Line 153: | Line 213: | ||
background-color:transparent !important; | background-color:transparent !important; | ||
background-image:none !important; | background-image:none !important; | ||
} | |||
body.skin-citizen .mw-parser-output{ | |||
color:var(--color-base); | |||
} | } | ||
Revision as of 06:33, 23 February 2026
/* ============================================================
SpiritVale Wiki — Citizen.css
Blue System v0.4 (Citizen theme -> SV token bridge)
- Anchors to site swatch: #1F2937
- Day: darker “light mode” (still readable, not washed out)
- Night: deeper dark mode
- Exports Citizen theme vars -> Common.css --sv-ui-* tokens
- Mobile (<=500): no frosted glass / no transparency
============================================================ */
/* ------------------------------------------------------------
0) Shared tweaks
------------------------------------------------------------ */
:root{
--transform-image-hover:none;
}
/* ------------------------------------------------------------
1) DARK MODE (Night) — deeper than site swatch
------------------------------------------------------------ */
:root.skin-theme-clientpref-night{
--color-progressive-oklch__h:225 !important;
--color-progressive-oklch__c:0.170 !important;
--color-progressive-oklch__l:62% !important;
/* Citizen surfaces */
--color-surface-0:#0f172a !important;
--color-surface-1:#1f2937 !important; /* site swatch */
--color-surface-2:#273449 !important;
--color-surface-3:#2e3f59 !important;
--color-surface-4:#364a69 !important;
/* Keep Citizen internal OKLCH aligned */
--color-surface-0-oklch__l:10% !important;
--color-surface-0-oklch__c:0.040 !important;
/* Text (bright, readable) */
--color-emphasized:#f5f9ff !important;
--color-base:#d7e2f4 !important;
--color-subtle:#b6c6e0 !important;
/* Links (blue-only) */
--color-link:#6aa6ff !important;
--color-link--hover:#8cbcff !important;
--color-link--active:#4f98ff !important;
--color-visited:#8cbcff !important;
--color-visited--hover:#b0d0ff !important;
--color-visited--active:#6aa6ff !important;
--background-color-base-fixed:var(--color-surface-0) !important;
/* Export -> SV tokens (Common.css uses these everywhere) */
--sv-ui-bg0:var(--color-surface-0);
--sv-ui-bg1:var(--color-surface-1);
--sv-ui-bg2:var(--color-surface-2);
--sv-ui-bg3:var(--color-surface-3);
--sv-ui-line1:#3b4b63;
--sv-ui-line2:#4b6388;
--sv-ui-text1:var(--color-emphasized);
--sv-ui-text2:var(--color-base);
--sv-ui-text3:var(--color-subtle);
--sv-ui-accent:var(--color-link);
--sv-ui-accent2:var(--color-visited);
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.40);
}
/* ------------------------------------------------------------
2) LIGHT MODE (Day) — the site swatch becomes the canvas
(“25% lighter than dark mode” concept: Day uses #1F2937 as surface-0)
------------------------------------------------------------ */
:root.skin-theme-clientpref-day{
--color-progressive-oklch__h:225 !important;
--color-progressive-oklch__c:0.170 !important;
--color-progressive-oklch__l:62% !important;
/* Citizen surfaces */
--color-surface-0:#1f2937 !important; /* site swatch */
--color-surface-1:#273449 !important;
--color-surface-2:#2e3f59 !important;
--color-surface-3:#364a69 !important;
--color-surface-4:#3f5580 !important;
/* Align internal OKLCH */
--color-surface-0-oklch__l:18% !important;
--color-surface-0-oklch__c:0.040 !important;
/* IMPORTANT: keep text LIGHT in day mode since the canvas is still dark */
--color-emphasized:#f5f9ff !important;
--color-base:#d7e2f4 !important;
--color-subtle:#b6c6e0 !important;
/* Links (blue-only) */
--color-link:#8cbcff !important;
--color-link--hover:#b0d0ff !important;
--color-link--active:#6aa6ff !important;
--color-visited:#b0d0ff !important;
--color-visited--hover:#d2e6ff !important;
--color-visited--active:#8cbcff !important;
--background-color-base-fixed:var(--color-surface-0) !important;
/* Export -> SV tokens */
--sv-ui-bg0:var(--color-surface-0);
--sv-ui-bg1:var(--color-surface-1);
--sv-ui-bg2:var(--color-surface-2);
--sv-ui-bg3:var(--color-surface-3);
--sv-ui-line1:#4b6388;
--sv-ui-line2:#5f7fb4;
--sv-ui-text1:var(--color-emphasized);
--sv-ui-text2:var(--color-base);
--sv-ui-text3:var(--color-subtle);
--sv-ui-accent:var(--color-link);
--sv-ui-accent2:var(--color-visited);
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.35);
}
/* ------------------------------------------------------------
3) AUTOMATIC MODE (OS)
------------------------------------------------------------ */
@media (prefers-color-scheme:dark){
:root.skin-theme-clientpref-os{
--color-progressive-oklch__h:225 !important;
--color-progressive-oklch__c:0.170 !important;
--color-progressive-oklch__l:62% !important;
--color-surface-0:#0f172a !important;
--color-surface-1:#1f2937 !important;
--color-surface-2:#273449 !important;
--color-surface-3:#2e3f59 !important;
--color-surface-4:#364a69 !important;
--color-surface-0-oklch__l:10% !important;
--color-surface-0-oklch__c:0.040 !important;
--color-emphasized:#f5f9ff !important;
--color-base:#d7e2f4 !important;
--color-subtle:#b6c6e0 !important;
--color-link:#6aa6ff !important;
--color-visited:#8cbcff !important;
--background-color-base-fixed:var(--color-surface-0) !important;
--sv-ui-bg0:var(--color-surface-0);
--sv-ui-bg1:var(--color-surface-1);
--sv-ui-bg2:var(--color-surface-2);
--sv-ui-bg3:var(--color-surface-3);
--sv-ui-line1:#3b4b63;
--sv-ui-line2:#4b6388;
--sv-ui-text1:var(--color-emphasized);
--sv-ui-text2:var(--color-base);
--sv-ui-text3:var(--color-subtle);
--sv-ui-accent:var(--color-link);
--sv-ui-accent2:var(--color-visited);
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.40);
}
}
@media (prefers-color-scheme:light){
:root.skin-theme-clientpref-os{
--color-progressive-oklch__h:225 !important;
--color-progressive-oklch__c:0.170 !important;
--color-progressive-oklch__l:62% !important;
--color-surface-0:#1f2937 !important;
--color-surface-1:#273449 !important;
--color-surface-2:#2e3f59 !important;
--color-surface-3:#364a69 !important;
--color-surface-4:#3f5580 !important;
--color-surface-0-oklch__l:18% !important;
--color-surface-0-oklch__c:0.040 !important;
--color-emphasized:#f5f9ff !important;
--color-base:#d7e2f4 !important;
--color-subtle:#b6c6e0 !important;
--color-link:#8cbcff !important;
--color-visited:#b0d0ff !important;
--background-color-base-fixed:var(--color-surface-0) !important;
--sv-ui-bg0:var(--color-surface-0);
--sv-ui-bg1:var(--color-surface-1);
--sv-ui-bg2:var(--color-surface-2);
--sv-ui-bg3:var(--color-surface-3);
--sv-ui-line1:#4b6388;
--sv-ui-line2:#5f7fb4;
--sv-ui-text1:var(--color-emphasized);
--sv-ui-text2:var(--color-base);
--sv-ui-text3:var(--color-subtle);
--sv-ui-accent:var(--color-link);
--sv-ui-accent2:var(--color-visited);
--sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.35);
}
}
/* ------------------------------------------------------------
4) FORCE PAGE CANVAS BACKGROUNDS
------------------------------------------------------------ */
body.skin-citizen{
background-color:var(--color-surface-0) !important;
background-image:none !important;
color:var(--color-base) !important;
}
body.skin-citizen .citizen-body-container,
body.skin-citizen .citizen-page-container{
background-color:var(--color-surface-0) !important;
background-image:none !important;
}
body.skin-citizen .mw-body,
body.skin-citizen .mw-content-container{
background-color:transparent !important;
background-image:none !important;
}
body.skin-citizen .mw-parser-output{
color:var(--color-base);
}
/* ------------------------------------------------------------
5) Link visibility (keep obvious)
------------------------------------------------------------ */
body.skin-citizen .mw-parser-output a{
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:2px;
}
body.skin-citizen .mw-parser-output a:hover{
text-decoration-thickness:3px;
}
/* ------------------------------------------------------------
6) Citizen search trigger micro-interaction
------------------------------------------------------------ */
.citizen-search-trigger{
transition:transform 0.15s ease-in-out;
}
.citizen-search-trigger:hover{
transform:translateY(-2px);
}
/* ------------------------------------------------------------
7) Mobile hard rule: no frosted glass / no transparency (<=500)
------------------------------------------------------------ */
@media (max-width:500px){
:root{
--backdrop-filter-frosted-glass:none !important;
--opacity-glass:1 !important;
}
body.skin-citizen .citizen-menu__card,
body.skin-citizen .citizen-drawer__card,
body.skin-citizen .citizen-search__form,
body.skin-citizen .citizen-search__footer{
background:var(--color-surface-1) !important;
-webkit-backdrop-filter:none !important;
backdrop-filter:none !important;
}
}