typography

Custom Axis

A custom axis is a four-letter uppercase tag defined by the type designer that opens a new dimension of continuous variation in a variable font beyond the five registered axes. The standard axes handle weight, width, slant, optical size, and italic. Custom axes handle everything the designer decides matters for that specific typeface. They can shift a font from proportional to monospaced, from rigid to casual, from high contrast to low contrast, or from sharp serifs to soft rounded forms. The OpenType 1.8 spec released in 2016 made this possible. The type designer draws separate masters at each extreme of the axis. The font file stores delta values for every outline point. The browser interpolates to any value you feed it at runtime through CSS. One file ends up doing work that once required an entire superfamily of static cuts.

This is not a slider that just makes letters bolder or wider. It is not a replacement for choosing the right typeface in the first place. It is not decorative fluff for experimental landing pages. It is not something you bolt on after the font ships. It is not free. Every additional axis increases file size and complexity. Treat custom axes like power tools. In the right hands they solve real production problems. In the wrong hands they bloat payloads and confuse teams.

Recursive by Stephen Nixon at Arrow Type remains the clearest production example. It carries three custom axes: MONO, CASL, and XPRN. The MONO axis runs from 0 to 1. At 0 you get comfortable proportional spacing suited for marketing prose. At 1 every character locks to identical width for code blocks and data tables. There is no cut between them. The letters continuously adjust their individual widths while preserving stroke contrast and x-height. The CASL axis moves the same skeletons from a tight formal construction at 0 to a loose expressive brushy form at 1 with rounded terminals and organic flow. XPRN adds another layer of headline energy. The single 580 KB file powers the entire Recursive site. Marketing headlines, body text, and embedded code samples all share the same DNA. Teams at Supabase, HashiCorp, and Vercel have adopted similar strategies so their documentation never feels like it was typeset in a different universe from their marketing. One request. Coherent brand. No extra static files.

Amstelvar by David Berlow pushes the idea even harder. It includes custom axes that control parametric optical sizing, grade, and serif behavior far beyond what the registered opsz axis can do. Set the values low and the font tightens into crisp newspaper text at 9 px. Push them high and it opens up for billboard sizes with adjusted contrast and proportions that static masters could never match automatically. The New York Times has run experiments with similar custom-axis editorial fonts so interactive graphics adapt their letterforms to viewport size without extra network requests. Google took the same thinking into Roboto Flex which ships custom axes like XTRA, YTLC, and YTFI. Android developers dial these values to make the system font feel native at any scale across phones, tablets, and foldables. These are not toys. They are production infrastructure that collapses what used to be separate font families into one responsive file.

Use custom axes when your brand lives across contexts that normally demand multiple unrelated typefaces. Long-lived design systems benefit most. IBM proved the point with Plex even though they kept axes simple. A fintech company like Stripe can set MONO to 1.0 across every code example in their developer docs while the marketing pages sit at MONO 0.0 and the two contexts feel like blood relatives instead of distant cousins. Reach for them in 2026 when your font audit shows six static files for one brand voice. Subset ruthlessly with fonttools. Limit each axis to the exact range your designs actually use. Test with real user devices and real network conditions. The payoff is fewer HTTP requests, tighter brand coherence, and design range that static fonts cannot touch at any file size.

Leave custom axes alone when your needs are boring and correct. A SaaS dashboard running Inter only needs the standard wght axis from 400 to 700. Linear, Notion, and Figma prove this daily. Do not add custom axis overhead if your entire site uses the typeface in two sizes and three weights. The file size penalty will outweigh any coherence gain. Skip them on one-off campaign microsites, logo lockups, or anything where predictability matters more than flexibility. Export static instances at the exact axis values you need and call it done. Maintenance cost and team ramp-up time must justify the investment.

Custom axes turn one font file into a living design space that adapts its soul not just its weight to every context you throw at it.

Related terms

Keep exploring