Context
The interactive theme wizard (shipped 2026-05-27) ships step 03 Typography as a sample placeholder — full font-family picking was explicitly deferred as its own design pass (font loading + system fallbacks). Steps 01 Style / 02 Skin / 04 Preview are fully interactive. See docs/design/12-priority.md (Demo App → Interactive theme wizard).
Scope
- Step 03 lets the user pick font families for the UI / display / mono roles.
- Handle web-font loading (with system fallbacks) so step 04's preview reflects the choice live.
- Persist the choice into the saved preset + exported
tokens.css, consistent with how skin/style choices are saved.
Acceptance criteria
- Selecting a font in step 03 updates the live preview and the exported tokens.
- Graceful system fallback; no FOUT/layout-shift regression in the wizard.
- Tests cover the font selection → preview + export path.
Context
The interactive theme wizard (shipped 2026-05-27) ships step 03 Typography as a sample placeholder — full font-family picking was explicitly deferred as its own design pass (font loading + system fallbacks). Steps 01 Style / 02 Skin / 04 Preview are fully interactive. See
docs/design/12-priority.md(Demo App → Interactive theme wizard).Scope
tokens.css, consistent with how skin/style choices are saved.Acceptance criteria