Skip to content

Phase 4.4: bundled interface typeface - #35

Merged
danielmrdev merged 4 commits into
mainfrom
feat/phase-4.4-interface-typeface
Aug 6, 2026
Merged

Phase 4.4: bundled interface typeface#35
danielmrdev merged 4 commits into
mainfrom
feat/phase-4.4-interface-typeface

Conversation

@danielmrdev

Copy link
Copy Markdown
Owner

Closes #30

Bundles iA Writer Quattro as the Interface typeface for non-editor chrome (Document selector, feedback, search).

Deviation from spec

The spec said static Regular+Bold; both static S faces ship OS/2 usWeightClass 608 → fontdb normalizes to weight 400 for both, so NORMAL and BOLD queries resolve to the same face and interface bold would not render. Verified empirically. Bundle instead the variable font iAWriterQuattroV.ttf (family iA Writer Quattro V, wght 400–700): shaping test proves bold ≠ normal metrics. OFL license bundled at assets/fonts/iA-Writer-Quattro-LICENSE.md.

Changes

  • src/fonts.rs: INTERFACE_TYPEFACE_FAMILY, register_bundled_interface_typeface() (include_bytes, non-fatal), 2 tests
  • src/main.rs: register at startup (normal + smoke paths)
  • src/editor.rs + src/shell.rs: interface_label helper applies family to selector/feedback/search surfaces
  • assets/fonts/: iAWriterQuattroV.ttf + license
  • Docs: research note deviation section, phase-4 spec line, CHANGELOG

Note

Branch carries #29 FontDelivery commits (d2994b2, 968ff7c) ahead of main; they land with this PR (merge commit keeps history, as with #28 via #34).

Verification

  • 197 tests pass, clippy -D warnings clean, fmt clean
  • Linux shaping evidence in research note

@danielmrdev
danielmrdev merged commit 86e69f8 into main Aug 6, 2026
8 checks passed
@danielmrdev
danielmrdev deleted the feat/phase-4.4-interface-typeface branch August 6, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Phase 4.4: Bundled interface typeface

1 participant