Throwaway. Tokenises the theme's literal colours so candidate palettes can be swapped in the browser, adds three candidates (Plum Noir one-metal, two-metal pewter, two-metal plus a champagne inset), a WCAG checker, a seeder and the screenshots they are judged on. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
170 lines
5.6 KiB
SCSS
170 lines
5.6 KiB
SCSS
@font-face {
|
|
font-family: "Cinzel";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/cinzel/cinzel-latin-400-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Cinzel";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/cinzel/cinzel-latin-500-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Cinzel";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/cinzel/cinzel-latin-600-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Cinzel";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/cinzel/cinzel-latin-700-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Jost";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/jost/jost-latin-400-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Jost";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/jost/jost-latin-600-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Jost";
|
|
font-style: italic;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/jost/jost-latin-400-italic.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "IBM Plex Mono";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/ibm-plex-mono/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "IBM Plex Mono";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./plugins/nodebb-theme-westgate/fonts/ibm-plex-mono/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
|
|
}
|
|
|
|
:root {
|
|
--wg-space-2xs: 0.25rem;
|
|
--wg-space-xs: 0.5rem;
|
|
--wg-space-sm: 0.75rem;
|
|
--wg-space-md: 1rem;
|
|
--wg-space-lg: 1.5rem;
|
|
--wg-space-xl: 2rem;
|
|
--wg-ledger-line: 1.78rem;
|
|
--wg-page-width: 1420px;
|
|
--wg-font-display: "Cinzel", Georgia, "Times New Roman", serif;
|
|
--wg-font-text: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
|
|
--wg-font-ui: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
|
|
--wg-font-code: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
|
|
--wg-bg: #0f0d12;
|
|
--wg-bg-deep: #09080b;
|
|
--wg-panel: #18141d;
|
|
--wg-panel-2: #110f15;
|
|
--wg-panel-3: #201924;
|
|
--wg-plum: #2a1222;
|
|
--wg-plum-soft: #3a1830;
|
|
--wg-gold: #c2a35a;
|
|
--wg-gold-soft: #a8893f;
|
|
--wg-gold-lit: #e0c878;
|
|
--wg-gold-hi: #fff4dd;
|
|
--wg-gold-plate: #5a4a1a;
|
|
--wg-gold-plate-hover: #6a5720;
|
|
--wg-gold-plate-mid: #53431a;
|
|
--wg-gold-plate-deep: #473914;
|
|
--wg-red: #8e3438;
|
|
/* prototype (#53): rgb triples so alpha uses swap with the palette candidate */
|
|
--wg-gold-rgb: 194, 163, 90;
|
|
--wg-ledger-ink-rgb: 216, 194, 138;
|
|
--wg-bg-deep-rgb: 9, 8, 11;
|
|
--wg-bg-deepest-rgb: 8, 7, 10;
|
|
--wg-plum-rgb: 42, 18, 34;
|
|
--wg-red-rgb: 142, 52, 56;
|
|
--wg-stamp-rgb: 168, 74, 78;
|
|
--wg-status-online: #7fb86a;
|
|
--wg-status-away: #d9b44a;
|
|
--wg-status-dnd: #c55a5f;
|
|
--wg-status-offline: #b7b0a6;
|
|
--wg-status-ring: rgba(var(--wg-bg-deep-rgb), 0.9);
|
|
--wg-text: #e6e0d6;
|
|
--wg-text-soft: #b9b2a6;
|
|
--wg-text-muted: #9a9086;
|
|
--wg-border: rgba(var(--wg-gold-rgb), 0.14);
|
|
--wg-border-soft: rgba(var(--wg-gold-rgb), 0.08);
|
|
--wg-focus: rgba(var(--wg-gold-rgb), 0.28);
|
|
--wg-focus-ring: #c2a35a;
|
|
--wg-ledger-panel: rgba(21, 17, 26, 0.97);
|
|
--wg-ledger-ruling: rgba(var(--wg-gold-rgb), 0.055);
|
|
--wg-ledger-rule-strong: rgba(var(--wg-gold-rgb), 0.16);
|
|
--wg-ledger-border: rgba(var(--wg-gold-rgb), 0.18);
|
|
--wg-ledger-ink: #d8c28a;
|
|
--wg-ledger-ink-muted: #a99d8f;
|
|
--wg-ledger-stamp: #a84a4e;
|
|
--wg-ledger-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.024), inset 0 -1px 0 rgba(0, 0, 0, 0.42), 0 8px 18px rgba(0, 0, 0, 0.2);
|
|
--wg-etched-highlight: rgba(246, 223, 163, 0.34);
|
|
--wg-etched-shadow: rgba(23, 12, 16, 0.82);
|
|
--wg-velvet-panel: rgba(24, 20, 29, 0.97);
|
|
--wg-velvet-panel-hover: rgba(31, 26, 38, 0.98);
|
|
--wg-velvet-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025), inset 0 0 34px rgba(96, 32, 68, 0.11), 0 10px 26px rgba(0, 0, 0, 0.24);
|
|
--wg-control-bg: linear-gradient(to bottom, rgba(var(--wg-gold-rgb), 0.15), rgba(var(--wg-gold-rgb), 0.05));
|
|
}
|
|
|
|
::selection {
|
|
background: rgba(var(--wg-gold-rgb), 0.32);
|
|
color: #fff4dd;
|
|
}
|
|
|
|
/* Harmony base-theme font correction.
|
|
Harmony generates @font-face for Inter/Poppins at our asset path and points
|
|
$font-family-sans-serif -> "Inter" and $font-family-secondary -> "Poppins"
|
|
in its own overrides.scss. We ship Jost + Cinzel, not those families, and do
|
|
not declare @fontsource/inter|poppins as deps -- so any element that resolves
|
|
to Inter/Poppins 404s in production on /assets/plugins/nodebb-theme-westgate/
|
|
inter/... (it only happens to resolve in dev via npm hoisting). Our BS-variable
|
|
override already keeps the current cascade on Jost, but that hinges on subtle
|
|
import order; pin the handful of Harmony rules that read those SCSS variables
|
|
directly (.ff-sans, .ff-secondary, the breadcrumb divider) to our own fonts so
|
|
nothing can request Inter/Poppins even if a Harmony bump flips the order. The
|
|
now-pointless inter/poppins staticDirs are removed from plugin.json alongside. */
|
|
.ff-sans {
|
|
font-family: var(--wg-font-ui) !important;
|
|
}
|
|
|
|
.ff-secondary {
|
|
font-family: var(--wg-font-display);
|
|
}
|
|
|
|
.breadcrumb .breadcrumb-item {
|
|
font-family: var(--wg-font-display);
|
|
}
|
|
|
|
.breadcrumb .breadcrumb-item::before {
|
|
font-family: var(--wg-font-ui);
|
|
}
|