themes-noir/RECOMMENDED_FONTS.md
Alex Dunmow 1451f06d9f feat(noir): WO-TF-022 Wave A — detective/true-crime dossier rebuild
Re-persona noir from photography to the locked detective/true-crime
direction: case-file panels, typewriter type, redaction bars, evidence
board, film grain. High-key gallery (light) / darkroom black + amber
safelight (dark).

- 49 mandatory builtin overrides (chrome, marketing, primitives,
  commerce, blog family, auth, page-suggestions), re-skinned from the
  frozen builtin defaults with every field/provider/tag/JS preserved;
  legacy button/card field reads reconciled to the new contract.
- 7 page templates (default, full-width, landing, article, blog-index,
  contact, auth) + themed email wrapper.
- 4 persona blocks (case_file, evidence_board, redacted_quote,
  case_dossier); old photography blocks deleted (now overrides).
- 5 dual-mode presets (19 tokens, light+dark tuned).
- Bundled OFL fonts (Source Serif 4, IBM Plex Mono) + licenses;
  RECOMMENDED_FONTS/ICONS updated; required_icon_packs=lucide.
- Master pages + seed demo ("The Cold File": home/about/blog x3/contact
  with case_tips data table + row_inserted email-admins workflow/login).
- noir CSS vocabulary via manifest css.input_css_append; MID motion
  (scroll-reveal + gallery lightbox, reduced-motion honored, no canvas).

Verified: make build exit 0; check-safety 32 checks 19 ok 13 skip -> OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 12:48:44 +08:00

2.1 KiB

Noir — Recommended Fonts

Noir is a detective / true-crime dossier. The typographic voice is a typewriter for the file itself and a quiet reading serif for the case write-up. The theme bundles two OFL faces so it renders on its intended stack with no admin setup (fonts.json, woff2 in assets/fonts/, licenses in assets/fonts/LICENSES.md):

  • IBM Plex Mono (400, 500) — the shipped typewriter face. Serves both the heading (typed case-file headers) and mono (evidence labels, case numbers, stamps) slots by default.
  • Source Serif 4 (400, 400 italic) — the shipped reading body for case prose.

Every family flows through var(--font-heading|body|mono, <fallback>); nothing is hardcoded, so an admin can override any slot from the picker. The fallback stacks name the ideal typewriter faces first, so assigning them lifts the look further:

Heading — typed case-file display

  • Ideal: google:Special Elite (Apache 2.0) — worn typewriter, the classic true-crime header face.
  • Shipped default: IBM Plex Mono 500 (bundled, OFL).
  • How: Site Settings → Typography → Heading → Google Fonts → search "Special Elite" → Add → assign to the Heading slot.

Body — case write-up

  • Ideal & shipped: Source Serif 4 (bundled, OFL) — a calm high-legibility serif for long-form reading.
  • Alternative: google:Source Serif 4 for the full weight range, or google:Lora.
  • How: it is already assigned via the bundled manifest; to change, Site Settings → Typography → Body → pick a serif → assign to the Body slot.

Mono — evidence labels, case numbers, stamps

  • Ideal: google:Courier Prime (OFL) — clean courier, the report-typewriter face.
  • Shipped default: IBM Plex Mono 400 (bundled, OFL).
  • How: Site Settings → Typography → Mono → Google Fonts → search "Courier Prime" → Add → assign to the Mono slot.

Licensing

All bundled woff2 files are SIL OFL 1.1 latin subsets. See assets/fonts/LICENSES.md. Special Elite is Apache 2.0 and is not bundled — it is only named as an admin-assignable first choice in the fallback stack.