bundle Josefin Sans as the default UI face at weight 300

Vendor the JosefinSans variable font (upright + italic, weight range
100-700), OFL licensed. _AppRoot installs it as the ambient
DefaultTextStyle at weight w300 (Light); ClideText inherits rather
than re-specifying the family, so Alchemist's Ahem injection keeps
goldens deterministic per D-024 while production renders the
intended face.

typography.dart gains clideUiFamily + clideUiFamilyFallback
alongside the existing mono constants; .gitignore learns about
Alchemist's failures/ diff output dir so local re-runs don't leak
into `git status`.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-04-22 08:18:15 +02:00
co-authored by Claude
parent 7bdeb9ab24
commit c1ad33f1b0
8 changed files with 172 additions and 21 deletions
+14 -4
View File
@@ -54,11 +54,21 @@ flutter:
- lib/kernel/src/theme/themes/
- lib/kernel/src/i18n/catalog/
# JetBrains Mono — bundled so terminal panes render consistently
# regardless of what the user has system-installed. OFL-licensed;
# see assets/fonts/jetbrains_mono/OFL.txt. Thin/Light/Medium/
# ExtraBold weights can be added later if a theme needs them.
# Bundled fonts. OFL-licensed; license files live alongside each.
#
# JosefinSans — UI default. Variable font covers weights 100-700
# plus an italic axis companion; we default to Light (300) per the
# project's aesthetic direction.
#
# JetBrainsMono — terminal / code surfaces. Static weights keep
# rendering predictable across xterm.dart, goldens, and CI.
fonts:
- family: JosefinSans
fonts:
- asset: assets/fonts/josefin_sans/JosefinSans-VariableFont.ttf
- asset: assets/fonts/josefin_sans/JosefinSans-Italic-VariableFont.ttf
style: italic
- family: JetBrainsMono
fonts:
- asset: assets/fonts/jetbrains_mono/JetBrainsMono-Regular.ttf