Offer the three proposed font groups in Themes
The theme menu now carries a fourth choice beside light/dark and the accent: the font pairing. All three pairings are free for commercial use (SIL OFL), have a Vietnamese subset, and are self-hosted — the landing still makes no CDN request. - styles/fonts.css: 22 @font-face blocks for Plus Jakarta Sans, Inter, JetBrains Mono, Fraunces, Be Vietnam Pro, Courier Prime and Space Mono, vietnamese/latin-ext/latin subsets only, under public/assets/fonts. - styles/tokens.css: [data-fonts="studio|editorial|native"] sets --font, --font-heading and --mono. Studio (Plus Jakarta Sans + Inter + JetBrains Mono) is the default. - theme/: FontSetId + FONT_SETS, persisted as rc.fonts, applied as <html data-fonts> next to data-theme and data-accent. - TopBar and the landing nav both get the picker; on the landing the theme tool now opens a small popover (light/dark + font group) instead of toggling on click. - landing.css: --lp-display/--lp-mono now resolve to the chosen group, so the picker retypes the whole page. Syne.woff2 goes with its @font-face.
This commit is contained in:
@@ -1,14 +1,8 @@
|
||||
/* Landing page — dark cinematic theme per the landing blueprint. Self-contained:
|
||||
its own palette, its own class prefix (.lp-*), no dependency on the workspace
|
||||
theme, so the marketing page looks the same in light or dark mode. */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Syne';
|
||||
font-style: normal;
|
||||
font-weight: 700 800;
|
||||
font-display: swap;
|
||||
src: url('/assets/Syne.woff2') format('woff2');
|
||||
}
|
||||
theme, so the marketing page looks the same in light or dark mode. The two
|
||||
faces it does borrow — heading + mono — come from the Themes font group
|
||||
(styles/tokens.css), so the nav picker retypes the whole page. */
|
||||
|
||||
.lp {
|
||||
--lp-bg: #090a0f;
|
||||
@@ -25,8 +19,8 @@
|
||||
/* Amber for text sitting on the page background — darker in light mode,
|
||||
where plain #fbbf24 would fail contrast on white. */
|
||||
--lp-ink-amber: var(--lp-amber);
|
||||
--lp-mono: 'Cousine', ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
--lp-display: 'Syne', ui-sans-serif, system-ui, sans-serif;
|
||||
--lp-mono: var(--mono);
|
||||
--lp-display: var(--font-heading);
|
||||
|
||||
background: var(--lp-bg);
|
||||
color: var(--lp-text);
|
||||
@@ -137,6 +131,12 @@ html { scroll-behavior: smooth; scroll-padding-top: 78px; }
|
||||
cursor: pointer;
|
||||
}
|
||||
.lp-tool:hover { color: var(--lp-text); border-color: rgba(251, 191, 36, 0.5); }
|
||||
/* The theme popover borrows the workspace's .popover/.chip shell, re-skinned for
|
||||
the landing palette. */
|
||||
.lp-theme-pop { background: var(--lp-card); border-color: var(--lp-line); }
|
||||
.lp-theme-pop .chip { background: transparent; border-color: var(--lp-line); color: var(--lp-muted); }
|
||||
.lp-theme-pop .chip:hover { color: var(--lp-text); }
|
||||
.lp-theme-pop .chip.on { color: var(--lp-ink-amber); border-color: var(--lp-ink-amber); background: rgba(251, 191, 36, 0.12); }
|
||||
.lp-burger { display: none; }
|
||||
|
||||
@media (max-width: 1160px) {
|
||||
|
||||
Reference in New Issue
Block a user