# Recommended fonts — Terminal Every family flows through the admin typography picker via CSS variables. Templates never hardcode a `font-family`; they read `var(--font-heading, ...)`, `var(--font-body, ...)`, and `var(--font-mono, ...)`, each with a bundled fallback so the intended look survives before the admin assigns a slot. ## Bundled (ship as-is) The theme bundles two OFL monospace families (latin subset, ~69 KB total) as `source=template` rows, already selectable in the picker. They back the fallbacks: | Slot | Fallback family | File | |---|---|---| | Heading | JetBrains Mono | `assets/fonts/jetbrains-mono-latin.woff2` | | Mono | JetBrains Mono | `assets/fonts/jetbrains-mono-latin.woff2` | | Body | IBM Plex Mono | `assets/fonts/ibm-plex-mono-400.woff2`, `ibm-plex-mono-500.woff2` | A terminal theme is monospace top to bottom, so all three slots default to a mono family. License record: `assets/fonts/LICENSES.md`. ## Recommended admin assignments (Google Fonts tab) Assign these from Admin -> Appearance -> Typography if you want the full family (extended glyph coverage) or the display accent the bundled subset omits: | Slot | Assign | Why | |---|---|---| | Heading | JetBrains Mono or IBM Plex Mono | Sharp, even monospace headings that read as terminal chrome. | | Body | IBM Plex Mono | Slightly wider, highly readable for long docs and man pages. | | Mono | JetBrains Mono | Code blocks, prompts, keybind tables. | | Display accent (optional) | VT323 | Chunky bitmap-CRT face for big phosphor hero display type. Not bundled; assign from the Google Fonts tab if you want the retro-CRT accent. | All four are SIL Open Font License 1.1. Nothing here hardcodes a family, so any admin assignment overrides the bundled fallback cleanly. ## Fallback chain (already in theme CSS) Before any admin selection the theme degrades through: ``` "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace ```