Files
camoufox/bundle
Jake WriterandClaude Opus 5 312ec689bf feat(fonts): per-OS font model and fontconfig parity
fonts.json is now generated from the bundle by scripts/gen-fonts-json.py
(fc-scan + aliases + scan-time families, intersected with the per-OS manifest in
scripts/data/font-manifests.json) so every reportable family is renderable;
scripts/verify-fonts.py checks that invariant, the generics and the reject
globs. font-groups.json lets the draw keep co-shipped families together.

Linux fontconfig: stock metric aliases (Arial -> Liberation Sans, ...),
49-sansserif, urw-base35 and the non-Latin rule files in stock conf.d order,
generics resolving like a stock Ubuntu (Noto Sans / Noto Serif / DejaVu Sans
Mono / Z003), hintslight so advances are not pinned to whole pixels, and weak
<prefer> lists instead of strongly-bound generic pins so lang can promote a
script face. Windows fontconfig: GDI substitution aliases, MS Shell Dlg 2,
cursive/fantasy generics, duplicate-face rejects and Sitka / Segoe UI Variable
optical-size families.

NOTE: generated against a ~3.9 GB target font bundle that is not part of this
change (one file is over GitHub's 100 MB limit); see docs/FONTS.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 22:08:33 -06:00
..