Prompts
EN

Variable fonts with an optical size axis

Variable families that redraw themselves for the size they are set at: sturdier and looser when small, finer and tighter when large.

16 open-license familiesUpdated

Small print, big type

Set in Inter. Select “Show it here” on any font below to set this line in it.

In metal type every size was cut separately, and punchcutters adjusted the design as they went. Small sizes were made wider and sturdier with looser spacing so they would survive on the page; large sizes were refined, with thinner hairlines and tighter fit. Digital fonts lost this when one outline began to be scaled to every size. The optical size axis, tag opsz, brings it back.

In a font with this axis, the value normally corresponds to the size in points. At a low value the letters have a larger x-height, thicker thin strokes and more space between them. At a high value contrast sharpens and details become delicate. The practical result is that one family can serve as both text face and display face, and a caption stays readable without looking heavy.

Browsers apply the axis automatically: font-optical-sizing is set to auto by default, so a font that has the axis adapts to the font size with no extra code. You can also set it by hand to deliberately use the display design small or the text design large. Ranges differ widely between families, from a text-only adjustment of a few points to a span of over a thousand, and the notes give each one as recorded.

  1. Inter

    Optical size from 14 to 32 tunes a screen sans for small labels and larger headings, beside nine weights with italics.

    Sans Serif 18 styles · variable OFL Try Inter

  2. DM Sans

    Optical size from 9 to 40 on a low-contrast geometric sans.

    Sans Serif 18 styles · variable OFL Try DM Sans

  3. Merriweather

    A text serif whose optical size runs from 18 to 144, with weight and width axes.

    Serif 14 styles · variable OFL Try Merriweather

  4. Bricolage Grotesque

    Optical size from 12 to 96, with ink traps exaggerated at the small end, beside weight and width.

    Sans Serif 7 styles · variable OFL Try Bricolage Grotesque

  5. Nunito Sans

    A small-size optical range, 6 to 12, among four axes with weight, width and lowercase height.

    Sans Serif 16 styles · variable OFL Try Nunito Sans

  6. Source Serif 4

    Optical size from 8 to 60 in a transitional serif, with eight weights and italics.

    Serif 16 styles · variable OFL Try Source Serif 4

  7. Newsreader

    An optical size axis from 6 to 72, with weights from 200 to 800.

    Serif 14 styles · variable OFL Try Newsreader

  8. Literata

    A reading serif with optical size from 7 to 72, eight weights and italics.

    Serif 16 styles · variable OFL Try Literata

  9. Playfair

    The widest optical range here, 5 to 1200, in a serif that also varies in weight and width.

    Serif 14 styles · variable OFL Try Playfair

  10. Fraunces

    Optical size from 9 to 144 beside weight, Softness and Wonky axes.

    Serif 18 styles · variable OFL Try Fraunces

  11. Bodoni Moda

    A high-contrast serif whose optical size runs from 6 to 96.

    Serif 12 styles · variable OFL Try Bodoni Moda

  12. Roboto Serif

    Optical size from 8 to 144 among four axes, with weight, width and grade, and 18 named styles.

    Serif 18 styles · variable OFL Try Roboto Serif

  13. Roboto Flex

    Optical size from 8 to 144 is one of 13 axes in a single file.

    Sans Serif 20 styles · variable OFL Try Roboto Flex

  14. Pathway Extreme

    Optical size from 8 to 144 in a grotesque sans, beside weight and width axes.

    Sans Serif 18 styles · variable OFL Try Pathway Extreme

  15. TikTok Sans

    Optical size from 12 to 36 with weight, width and slant, four axes in a single file.

    Sans Serif 14 styles · variable OFL Try TikTok Sans

  16. Hedvig Letters Serif

    A single-weight brand serif whose only axis is optical size, from 12 to 24.

    Serif 1 style · variable OFL Try Hedvig Letters Serif

Samples load a basic Latin subset of each family. Every family here carries an open license; its page states the terms and offers the original files.

Questions about variable fonts with an optical size axis

What does optical size change in a font?

Stroke contrast, spacing, x-height and fine details. Small optical sizes are sturdier and more open; large ones are sharper and more tightly fitted.

Do I need to write CSS to use optical sizing?

Usually not. Browsers match the axis to the font size automatically. To override it, set font-variation-settings: "opsz" followed by a value within the font's range.

Which is better, an optical size axis or separate text and display fonts?

They achieve the same thing. The axis is more convenient, covers the sizes in between and needs only one file.