Skip to content

feat(website): unify all fonts onto the next/font variables - #876

Merged
blove merged 1 commit into
mainfrom
blove/docs-font-unification
Aug 30, 2026
Merged

feat(website): unify all fonts onto the next/font variables#876
blove merged 1 commit into
mainfrom
blove/docs-font-unification

Conversation

@blove

@blove blove commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Findings audit §10, executed as its own decision. layout.tsx loads Inter / JetBrains Mono / EB Garamond via next/font, which registers each family under a hashed name — reachable only through --font-inter / --font-mono / --font-garamond on <html>. Raw stacks like Inter, system-ui, sans-serif only matched a locally-installed Inter, so they silently fell back to system fonts; the site was a mix of real webfonts and system lookalikes (~2.5px measured width differences).

  • Replaces all 94 literal font-family sites across the six scope stylesheets with the vars.
  • Normalizes 12 var(--font-*, fallback) spellings to the bare var (theme.css still defines the same names underneath, so the var always resolves).
  • Retires the migration-era "fonts are verbatim literals" exception comment in ui.css with the new rule: every font-family in website CSS is one of the three vars.

Deliberate sitewide visual change: real self-hosted webfonts with size-adjusted fallbacks everywhere, no more mixed stacks. Design tokens (libs/design-tokens) untouched — Angular consumers keep the raw stacks.

Verification

  • Browser-measured: docs page and homepage — every element under main resolves to a next/font stack ("Inter Fallback" / "JetBrains Mono Fallback" / "EB Garamond Fallback"), zero stragglers.
  • nx test website green, lint 0 errors, production build green (exit codes verified).

🤖 Generated with Claude Code

Findings audit §10, executed as its own decision per the polish arc.

layout.tsx loads Inter, JetBrains Mono, and EB Garamond via next/font,
which registers each family under a hashed name and exposes it only
through --font-inter/--font-mono/--font-garamond on <html>. Raw stacks
like 'Inter, system-ui, sans-serif' therefore only matched a locally
installed Inter and silently fell back to system fonts — the site was
a mix of real webfonts and system lookalikes (measured ~2.5px width
shifts between the two).

This replaces all 94 literal font-family sites across the six scope
stylesheets with the vars, normalizes 12 var-with-fallback spellings,
and retires the migration-era 'fonts are verbatim literals' exception
comment in ui.css with the new rule. Deliberate sitewide visual change:
real self-hosted webfonts with size-adjusted fallbacks everywhere.

Verified in-browser: every element under main on the homepage and docs
resolves to a next/font stack (zero stragglers). nx test green, lint 0
errors, production build green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@blove
blove enabled auto-merge (squash) August 30, 2026 20:05
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview Aug 30, 2026 8:08pm

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

@github-actions

github-actions Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@blove
blove merged commit 5a4a81a into main Aug 30, 2026
24 checks passed
@blove
blove deleted the blove/docs-font-unification branch September 3, 2026 22:30
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.

1 participant