morphit/apps/web/static/fonts
2026-08-05 18:02:22 -07:00
..
comfortaa-latin-400.woff2 cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00
comfortaa-latin-600.woff2 cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00
comfortaa-latin-700.woff2 cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00
comfortaa-latin-800.woff2 cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00
OFL.txt cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00
README.md cp653-659: offline install through all roles (docker images, mcp user, ipfs deferral) + Step-N-of-N wizard + password step + upgrade mirror rotation + wizard net-loss guard 2026-08-05 18:02:22 -07:00

Fonts — Comfortaa (SIL OFL)

This folder ships the 4 Comfortaa woff2 subsets the app uses, plus the SIL Open Font License they're distributed under:

comfortaa-latin-400.woff2
comfortaa-latin-600.woff2
comfortaa-latin-700.woff2
comfortaa-latin-800.woff2
OFL.txt

apps/web/src/app.css (the @font-face blocks) and the preload in app.html reference these filenames directly, so a normal build/deploy just works — no manual font step. OFL note: because we redistribute the font binaries, OFL.txt is the license they ship under and must stay alongside them (don't delete it; keep it in any mirror).

Weight note: Comfortaa's design axis tops out at 700 (unlike Nunito, which went to 900). The app's heaviest tier is font-extrabold (800), so comfortaa-latin-800.woff2 is Comfortaa 700 (its heaviest) — the 800 @font-face block points at it so extrabold text renders as the boldest Comfortaa rather than a synthesized faux-bold. 400/600/700 are the real Comfortaa weights of the same name.

How they were generated (to regenerate or update)

The 4 woff2 were taken from the Fontsource distribution (the same SIL-OFL Comfortaa Google publishes, pre-subset to latin), which is the simplest reproducible source — no local subsetting toolchain required:

# from a scratch dir (npmjs is the only network dependency):
npm pack @fontsource/comfortaa
tar -xzf fontsource-comfortaa-*.tgz
cp package/files/comfortaa-latin-400-normal.woff2 comfortaa-latin-400.woff2
cp package/files/comfortaa-latin-600-normal.woff2 comfortaa-latin-600.woff2
cp package/files/comfortaa-latin-700-normal.woff2 comfortaa-latin-700.woff2
cp package/files/comfortaa-latin-700-normal.woff2 comfortaa-latin-800.woff2   # 800 slot = Comfortaa 700 (heaviest)
cp package/LICENSE OFL.txt

The output filenames must stay exactly as listed at the top (the @font-face blocks + the app.html preload reference them literally). Fontsource ships the SIL-OFL Comfortaa binaries + the license verbatim, so OFL.txt above is the license they travel under — no separate attribution required beyond keeping it.

Alternative (widen the character set): download Comfortaa from https://fonts.google.com/specimen/Comfortaa (the "Get font" → "Download all" button), then pyftsubset each static-weight TTF (from the zip's static/ subfolder — NOT the top-level *-VariableFont_wght.ttf) with your desired --unicodes range and --flavor=woff2. Comfortaa is a variable font (wght 300 700); a future switch to the single variable file would be one @font-face with font-weight: 400 700 — a deliberate change, not the current discrete-weight setup.