Files
mokosh/.planning/intel/brand-decisions-v1-followup-display-font.md
Mark 2669ce38e7 docs(intel): designer follow-up #1 — Newsreader has no Cyrillic glyphs
D-05 picked Newsreader as display serif. Engineering research
(01-12-RESEARCH.md §1, commit 3df2750) verified Newsreader ships NO
Cyrillic glyphs via designer's own Brief embedded subset list +
Production Type's repo README ("Google Fonts Latin Plus glyph set").

Russian display text (welcome hero, tagline) under current D-05 picks
silently falls through to Iowan Old Style → Times New Roman → serif.
Mokosh's audience is Russian-primary, so this is the default rendering
path, not a corner case.

Routing back to designer per D-05 OWNER (Design team) with 4 options:
- R1 fallback chain (Newsreader + Cyrillic-capable secondary)
- R2 substitute display family entirely
- R3 other (designer proposes)
- R4 accept the Iowan/Times fallback

Candidate Cyrillic-capable OFL serifs: PT Serif, EB Garamond, Lora,
Source Serif. PT Serif highlighted (ParaType, RU-foundry, pairs with
IBM Plex Sans).

Blocks Plan 01-12 planner spawn + Plan 01-10 welcome hero.
Plan 01-11 (harness) unaffected — non-overlapping surface.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:25:35 +02:00

4.2 KiB
Raw Blame History

Brand Decisions v1 — Follow-up #1: Display Font Cyrillic Gap

Date: 2026-05-17 Open against: D-05 (Type pairing) Owner: Design team (per D-05 OWNER row) Blocker for: Plan 01-12 (Design Integration) planner spawn; Plan 01-10 welcome hero text rendering


What was picked (D-05)

A · Newsreader + IBM Plex Sans + IBM Plex Mono

What engineering research found

Engineering research (.planning/phases/01-stabilize-video-pipeline/01-12-RESEARCH.md, commit 3df2750, §1) verified Newsreader's glyph coverage via two independent sources:

  1. The Decision Brief's own embedded @font-face declarations — subsets shipped: latin / latin-ext / vietnamese
  2. Production Type's productiontype/Newsreader repo README — quote: "Google Fonts Latin Plus glyph set"

Newsreader ships NO Cyrillic glyphs. Under the current D-05 pick, Russian display text (welcome hero, tagline, any future display-register H1/H2) would silently fall through --mks-font-display to Iowan Old Style → Times New Roman → serif.

Mokosh's audience is Russian operators primary; display text in Russian is the default case, not the exception. This is therefore not a corner case — it affects the default rendering path.

Options for designer to pick

Option Approach Trade-off
R1 Keep Newsreader for Latin; add Cyrillic-capable OFL serif as fallback in --mks-font-display chain (e.g. 'Newsreader', 'PT Serif', serif) Preserves Newsreader aesthetic for Latin/English. Mixed-glyph paragraphs (Latin tagline + RU phrase together, or English wordmark + Russian subtitle) render in two different serifs — visually disharmonious
R2 Substitute Newsreader entirely with a Cyrillic-native OFL serif Unified rendering across all locales. Departs from designer's Newsreader pick — the aesthetic match for the Loom palette + 2×2 weave mark may or may not transfer
R3 Other — designer proposes alternative (different display family / drop display register in favor of unified Plex Sans / use unicode-range @font-face to scope Newsreader to Latin-only and load second face for Cyrillic without disharmony / etc.) Designer's call
R4 Keep Newsreader as-is, accept Cyrillic fallback to Iowan Old Style → Times New Roman If the operator-facing aesthetic for RU is intentional or acceptable

Candidate Cyrillic-capable OFL serifs (research §1 R1)

Family Provenance Aesthetic notes
PT Serif ParaType (Russian foundry) Designed specifically for Russian government use; excellent Cyrillic coverage; visually pairs well with IBM Plex Sans
EB Garamond OFL recreation of classic Garamond Classical, formal feel; full Cyrillic
Lora OFL contemporary serif Modern, slightly humanist; Cyrillic native
Source Serif Adobe OFL Clean, neutral; Cyrillic via subset

What we need back from designer

A one-line reply is enough:

  • "R1, fallback chain Newsreader → PT Serif" (or another fallback)
  • "R2, substitute with PT Serif" (or another family)
  • "R3: <your proposal>"
  • "R4, accept the Iowan/Times fallback for Cyrillic"

You can also reply on the Decision Brief HTML, send updated tokens.css, a Figma link, or just a Slack/Russian-voice-memo — anything readable.

What's paused until designer responds

  • Plan 01-12 (Design Integration) planner spawn — needs final --mks-font-display token value to write the WOFF2 bundling task spec
  • Plan 01-10 (welcome tab) execution — welcome hero uses display register, needs the resolved font
  • The 8 i18n copy strings work (Brief §02) — depends on whether display-register copy lands in the welcome hero (most candidates do)

Plan 01-11 (Puppeteer UAT harness) runs in parallel — non-overlapping surface; not affected.


  • .planning/intel/brand-decisions-v1.md — original 9 decisions
  • .planning/intel/design-incoming/system/bundle/mokosh-handoff/tokens.css — current tokens.css (with Newsreader pick at line 76)
  • .planning/phases/01-stabilize-video-pipeline/01-12-RESEARCH.md §1 — full engineering research
  • Open against D-05 in .planning/intel/design-incoming/mokosh/dist/Decision Brief (standalone).html