Problem
As an organizer designing page layouts I only have two fonts to choose from, Inter and Source Serif 4, so every book ends up looking the same. The picker also lists the names in the app's own UI font, so I cannot tell what a font will look like without applying it and checking the page.
Solution
Add six more families to the font picker (Montserrat, Nunito, Lora, EB Garamond, Playfair Display, Caveat), grouped by Sans, Serif and Handwriting, and render each name in the font it names. All fonts are bundled with the app; nothing is fetched from Google at runtime.
In-scope
- Six additional families, available for every text element and used by the PDF export
- Font names in the picker rendered in their own typeface
- Locally derived print cuts (TTF) and web cuts (woff2), self-hosted
Out-of-scope
- Per-element font size presets or other typography settings
- Uploading custom fonts
Acceptance criteria
- The picker lists eight families grouped by category, each name shown in its own typeface
- Choosing a new family changes the editor canvas, the book preview, and the exported PDF consistently
- Caveat has no italic cut upstream: italic is unavailable for it rather than silently rendering upright
- No network request to Google Fonts at runtime
- Exported PDFs embed only the cuts the book actually uses
Problem
As an organizer designing page layouts I only have two fonts to choose from, Inter and Source Serif 4, so every book ends up looking the same. The picker also lists the names in the app's own UI font, so I cannot tell what a font will look like without applying it and checking the page.
Solution
Add six more families to the font picker (Montserrat, Nunito, Lora, EB Garamond, Playfair Display, Caveat), grouped by Sans, Serif and Handwriting, and render each name in the font it names. All fonts are bundled with the app; nothing is fetched from Google at runtime.
In-scope
Out-of-scope
Acceptance criteria