π§© Summary
interDisplay (next/font, src/lib/fonts.ts) is imported only in _document.tsx. The pages router emits next/font CSS only for fonts reachable from _app, and _app.tsx imports only inter β so --font-inter-display resolves empty in prod builds. globals.css points .bluedot-h1 / .bluedot-h2 at that empty var, so every website heading renders Inter on prod/staging while local dev renders true InterDisplay.
Other monorepo apps are unaffected: the library's .bluedot-h1 uses font-family: InterDisplay from the bluedot.org/fonts @font-face.
Found during #2790.
β
Definition of done
interDisplay reachable from _app so its CSS ships
- Verified on staging (not local dev) that
.bluedot-h1 / .bluedot-h2 compute to InterDisplay
- Design sign-off β this flips every heading on prod, so it's a sitewide visual change
- Homepage hero stays pinned to Inter (deliberate inline
style override)
π Notes / References
Blocks closing #2735 (parent DoD: "typeface across all apps"). Don't compare dev vs prod typography until this lands.
π§© Summary
interDisplay(next/font,src/lib/fonts.ts) is imported only in_document.tsx. The pages router emitsnext/fontCSS only for fonts reachable from_app, and_app.tsximports onlyinterβ so--font-inter-displayresolves empty in prod builds.globals.csspoints.bluedot-h1/.bluedot-h2at that empty var, so every website heading renders Inter on prod/staging while local dev renders true InterDisplay.Other monorepo apps are unaffected: the library's
.bluedot-h1usesfont-family: InterDisplayfrom thebluedot.org/fonts@font-face.Found during #2790.
β Definition of done
interDisplayreachable from_appso its CSS ships.bluedot-h1/.bluedot-h2compute to InterDisplaystyleoverride)π Notes / References
Blocks closing #2735 (parent DoD: "typeface across all apps"). Don't compare dev vs prod typography until this lands.