1. Home
  2. Design tools
  3. Variable Font Axis Playground

Variable Font Axis Playground

See what a variable font can do and get the CSS to reproduce it.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Variable Font Axis Playground

  1. Drop a variable font.
  2. Move the axis sliders or pick a named instance.
  3. Copy the CSS.

Features

  • One slider per axis, with names and ranges
  • Named instances as buttons
  • Live preview of your text and size
  • Registered axes written as font-weight, font-stretch and font-style
  • Custom axes as font-variation-settings
  • Works with WOFF2, WOFF, TTF and OTF

Supported formats

Input

  • TTF
  • OTF
  • WOFF
  • WOFF2

You get

  • CSS

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Variable Font Axis Playground is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Only fonts with an fvar table show sliders.
  • Previews depend on the browser’s font rendering.

Guide

Exploring variable fonts: axes, named instances and CSS

A conventional font family is a set of files: regular, bold, light, italic. A variable font replaces them with one file in which weight, width, slant and other qualities are continuous sliders. A designer can pick any weight from thin to black, including those between the named ones, and animation between them is smooth. This tester loads a variable font in your browser, builds a slider for every axis it contains and shows the CSS that reproduces the result.

What the file contains

Variable fonts add tables to an ordinary font. fvar lists the axes and the named instances, gvar stores how outlines change along each axis, and tables such as HVAR and MVAR adjust spacing and metrics. Five axes are registered in the OpenType specification: wght for weight, wdth for width, slnt for slant, ital for italic forms and opsz for optical size. Designers can also add their own axes with uppercase tags, such as GRAD for grade or CASL for casual.

A worked example

Press Sample to load Geist. The page reports Family Geist, Axes wght and Named instances 9. The slider “Weight (wght)” runs from 100 to 900 and starts at 400, and the chips read Thin, ExtraLight, Light, Regular, Medium, SemiBold, Bold, ExtraBold and Black. The CSS box shows font-family: "Geist", sans-serif; and font-weight: 400;. Drag the slider to the maximum, or choose Black, and the preview text “Variable fonts flex between weights” becomes the heaviest weight, with the CSS changing to font-weight: 900;. The Reset button returns to the defaults.

Using the CSS

For registered axes, use the matching CSS property: font-weight for wght, font-stretch for wdth, font-style: oblique with an angle for slnt, font-style: italic for ital and font-optical-sizing for opsz. Use font-variation-settings only for custom axes, because it overrides the other properties and every setting must be repeated each time you change one. To use the font on a page, load it with an @font-face rule that declares a range, such as font-weight: 100 900, so the weights between are valid.

Choosing values

Named instances are the designer’s recommended points, so start with those, then adjust. Optical size matters for text at small sizes: a font with an opsz axis can add thicker strokes and looser spacing automatically, and browsers apply it when font-optical-sizing is auto. Slider steps are whole numbers for wide ranges and tenths for small ones such as slant. Make sure that the extremes of weight still read well at the sizes you use.

Edge cases

A static font has no axes; the page says so and suggests the inspector. Fonts with an avar table change the mapping of slider positions to design coordinates, so equal steps may not look equal. Performance can suffer when very large variable fonts are animated, so test on slower devices.

Limits

The tester previews the font using the browser’s own rendering, so results depend on the browser. It does not edit fonts, create instances or export a static font at a chosen weight. The font is read locally and never uploaded.

Checked against the current version of the Variable Font Axis Playground on .

Troubleshooting

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

Are variable fonts smaller than a family of static files?

Often, when you use three or more weights, because one file replaces several. A variable file for a single weight can be larger than its static equivalent, so compare for your own case. Subsetting both is the fair test.

What is the difference between wght and font-weight?

wght is the name of the axis inside the font. font-weight is the CSS property that sets it. For registered axes the CSS property is preferred, and font-variation-settings is for custom axes that CSS has no property for.

What is a variable font?

A single font file that contains a continuous range of designs along one or more axes, such as weight from thin to black, instead of a separate file for each style.

When should I use font-variation-settings?

Only for custom axes. For weight, width, slant and optical size, use font-weight, font-stretch, font-style and font-optical-sizing, which cascade and inherit properly.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.