Skip to content

Fix Geist variable font: drop phantom ital axis from STAT - #242

Closed
christopherkindl wants to merge 1 commit into
mainfrom
fix/geist-variable-stat-ital-axis
Closed

christopherkindl wants to merge 1 commit into
mainfrom
fix/geist-variable-stat-ital-axis

Conversation

@christopherkindl

@christopherkindl christopherkindl commented Jul 14, 2026 •

Copy link
Copy Markdown
Member

The upright Geist[wght].ttf STAT table declares an ital design axis that doesn't exist in fvar, which makes Figma reject the variable font and hide the weight axis. This removes the ital block from the Geist[wght].ttf entry in sources/config-Geist.yaml (root cause) and patches the committed variable artifacts (ttf + woff2, plus the npm copies) so STAT lists only wght. All nine weights and the Regular→Bold linked value are preserved, glyph outlines are untouched, and the Italic sibling still ships as a separate file.

fvar axes STAT design axes
Before wght wght, ital ← phantom
After wght wght

The upright Geist[wght].ttf declared an `ital` design axis (with a Roman
axis value) in its STAT table, but fvar only contains `wght`. This
STAT/fvar mismatch causes some consumers (notably Figma) to reject the
variable font and hide the weight axis entirely.

Remove the ital block from the upright's STAT config and patch the
committed variable artifacts (ttf + woff2, plus the npm package copies)
so STAT lists only `wght`, matching fvar. All nine weight instances and
the Regular->Bold linked value are preserved; the Italic sibling still
ships as a separate file.
@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
v0-vercel-geist-font Ready Ready Preview, Comment, Open in v0 Jul 14, 2026 10:13pm

@christopherkindl
christopherkindl marked this pull request as draft July 15, 2026 09:09
@christopherkindl

Copy link
Copy Markdown
Member Author

Closing — a controlled test disproved the premise of this PR.

I built three variants from the current shipping Geist[wght].ttf, each changing exactly one thing, and tested them in Figma:

Variant ital in STAT nameID 16/17 Renamed Figma shows weight axis?
Control kept absent yes ✅
ital removed removed absent yes ✅
nameID 16/17 added kept added yes ✅

The control is identical to the shipping font except for the family name, and it already exposes the weight axis. The only differentiator is the name, so the original failure was a Figma family-name collision: the workspace already had a "Geist" family (static/installed), and Figma merged the variable upload into it, hiding the axis. Removing the ital STAT axis is unnecessary and would drop legitimate Roman↔Italic family linking, so no font change is warranted.

This branch was successfully deployed

1 active deployment
Preview — 31b5e76c Deployed Jul 14, 2026 by vercel[bot]
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