Variable font

A variable font (VF) is a font file that is able to store a continuous range of design variants. An entire typeface (font family) can be stored in such a file, with an infinite number of fonts available to be sampled.

The variable font technology originated in Apple's TrueType GX font variations. The technology was adapted to OpenType as OpenType variable fonts (OTVF) in version 1.8 of the OpenType specification. The technology was announced by Adobe, Apple, Google, and Microsoft in September 2016. Making such a feature standardized in OpenType paved the way for support in many software platforms.

Technology
OpenType variable fonts are an adaptation of Apple's TrueType GX font variations to OpenType, with integration into key aspects of the OpenType format including OpenType Layout tables and both TrueType and CFF glyph outline formats. It also surpasses TrueType GX by providing better interoperability, both between different fonts, and between variable fonts and font-formatting specifications such as those found in Cascading Style Sheets. The technology allows software to access any design instance for a continuous range of designs defined within the font. When a specific design instance has been selected, the glyph outlines or other data values for that design instance are computed as font data is being processed during text layout and rasterization.

The technology uses interpolation and extrapolation mechanisms that have been supported in font-development tools and used by font designers for many years. In that paradigm, the font designer creates a variable design, but then chooses specific instances to generate as static, non-variable fonts that get distributed to customers. With variable fonts, however, the font produced and distributed by the font designer can have built-in variability, and the interpolation mechanisms can now be built into operating systems and Web browsers or other applications, with specific design instances selected at time of use.

One of the key benefits of the technology is that it can significantly reduce the combined size of font data whenever multiple styles are in use. On the Web, this may allow a site to use more font styles while at the same time reducing page load times. A further benefit is that it gives access to a continuous range of style variations, which can provide benefits for responsive design.

The technology has been compared to Adobe's multiple master fonts (MM fonts) technology, also from the 1990s, which used on-the-fly generation of font designs from master files by interpolation and extrapolation. Multiple master fonts, however, required the user to generate a specific "instance" of the font for particular variation-axis values before it could be used. This is not required for OpenType variable fonts, however: named or arbitrary design instances can be selected and used on demand.

Operating systems
In Windows 10, version 1709 (or known as "Windows 10 Fall Creators Update") released in 2017, official support for variable fonts is provided by Microsoft, along with the first variable font in Windows: the "Bahnschrift" font, which is a digitisation of DIN 1451. However, support for CFF2 fonts using OpenType outlines had caused issues with Windows text rendering engine, sometimes making UI text blank out; this is later fixed in 2023 with the KB5032278 update.

Android started to provide variable font support for mobile app developers in Android Oreo or API level 26.

Apple provided variable font support in its operating system since macOS 10.5/iOS 3.2, but usage in Safari through WebKit only comes in macOS 10.13/iOS 11 with Safari 11.

FreeType, the font rendering program used by most Unix-like systems including Linux, received variable font support in May 2017 (FreeType 2.8).

Editors
Adobe Creative Cloud 2018 version, released 18 October 2017, includes support for variable fonts in Photoshop and Illustrator and includes variable concept versions of the fonts Acumin, Minion, Myriad, Source Code, Source Sans, and Source Serif.

Creative Cloud 2020 has added variable font support for InDesign.

Inkscape version 1.0 has added variable font support.

LibreOffice version 7.5 has added variable font support.

Browsers
Variable fonts are controlled in the web browser using both existing properties for well-known options such as weight and a raw font-variation-settings control. Refer to the MDN pages of the CSS property for support history.