STAT table missing (familyAxes unset)
Audit code: stat-missing
Definition
Variable font has axes but no familyAxes set — Patens needs the family-position to generate the STAT (Style Attributes) table at export time. Without STAT, OS font menus may display style names incorrectly (Windows in particular). Set the family-position on the Family tab.
How Patens surfaces this
The Patens audit module checks for stat-missing across five teaching surfaces: the edit-panel inline issue list, the
project-wide audit page, the release pre-flight check, the family hub,
and the home-page project tile. Every surface shows the same plain-English
explanation and links back to this page. This rule is detection-only — there's no automatic fix because the
correction is design-dependent (it requires a judgment call about the
glyph's intended shape or the font's intended behaviour). The audit
message links to the specific glyph or field that needs attention.
Run this check yourself
Patens runs every audit rule live as you draw — including this one.
The editor (in private alpha) shows stat-missing firing on real
glyphs, or check your own work from the CLI:
npx patens audit your-project.font.jsonCanonical references
Primary literature where this rule is established or explained. Drawn from the open-licensed corpus — browse the full 38-source canonical library or read the research artifact.
- OpenType Specification 1.9.1 ↗
Microsoft Typography · 1997 · Microsoft Corporation· § STAT — Style Attributes Table
STAT records the canonical axis-value names, default values, and italic-linkage needed for proper variable-font display in OS font-pickers. Without STAT, Windows in particular can display style names incorrectly (e.g. "Regular Bold Italic" instead of "Bold Italic").
- A Variable Fonts Primer ↗
variablefonts.io contributors · 2018 · variablefonts.io· Implementing variable fonts
STAT is a per-axis label registry that the OS uses to compose instance names; the practitioner guidance covers why it matters and what to put in it.
Related rules in Variable-font compatibility
master-axis-missingMaster missing axis valuemaster-axis-out-of-rangeMaster axis value out of rangemaster-axis-unknownMaster references unknown axismaster-contour-countMaster contour count mismatchmaster-point-countMaster point count mismatchopsz-without-cap-x-divergenceopsz axis vacuous (no distinct opsz masters)stat-format-mismatchSTAT italic axis uses wrong formatstat-instance-name-mismatchSTAT composed name does not match fvar instance