themes-cyberpunk/RECOMMENDED_FONTS.md
Alex Dunmow 313ebaf296 initial: theme plugin cyberpunk
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/cyberpunk.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-06 14:11:25 +08:00

34 lines
1.7 KiB
Markdown

# Recommended fonts — Cyberpunk
This theme ships `fonts.json = []` per the wave-1 fonts policy
(`themes/docs/FONTS.md`). No `.woff2` files are bundled inside the `.so`.
To get the intended aesthetic from spec §5, the site admin should add the
three families below from the Google Fonts picker in the typography panel.
| Slot | Recommended | Source | One-line how-to |
|---|---|---|---|
| Heading (`--font-heading`) | Space Grotesk | `google:Space Grotesk` | Open the typography panel, pick **Space Grotesk** from the Google Fonts tab, assign to **Heading**. |
| Body (`--font-body`) | Inter | `google:Inter` | Open the typography panel, pick **Inter** from the Google Fonts tab, assign to **Body**. |
| Mono (`--font-mono`) | JetBrains Mono | `google:JetBrains Mono` | Open the typography panel, pick **JetBrains Mono** from the Google Fonts tab, assign to **Mono**. |
## Fallback stacks
Before the admin picks anything, the theme falls back to the following stacks
(declared via the CSS variables in `assets/css/cyberpunk.css`):
- `--font-heading``"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif`
- `--font-body``"Inter", system-ui, -apple-system, "Segoe UI", sans-serif`
- `--font-mono``"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace`
These fallbacks intentionally lead with the same family the picker would
deliver, so the page already looks close to the intended aesthetic on systems
that happen to have the font installed.
## Why not bundle them?
All three are OFL-clean and could be bundled in a future pass. For wave 1 we
ship no `.woff2` to keep the `.so` small and to keep font management in the
hands of the site admin (overrides + uploads stay routed through the picker,
not the theme).