Using Variable Fonts
Operating System Compatibility
Mainstream Operating Systems introduced or updated since 2016 all have support for, at least, the pre-defined instances – usually the font family’s existing weights – in a variable font file:
Operating System | Pre-Defined Instances | Additional Variations |
---|---|---|
Windows 10 | Yes, since version 1709. | Only in applications which support variations, see below. |
Windows 11 | Yes. | Only in applications which support variations, see below. |
MacOS X | Yes, fully since version 10.13. Some support was added to 10.5 and later. | Only in applications which support variations, see below. |
Linux | Yes, since version 2.8 of Freetype. | Only in applications which support variations, see below. |
We provide multiple versions of some of our variable font families, which support different combinations of design axes (e.g. Light to Bold, Narrow to Extended, Italic or Upright). This gives users and developers the flexibility to select the smallest file which meets their design needs.
When you’re installing variable font files, take care to not install files which conflict with each other. For example, “Mokoko Full Family Variable Font” contains the entirety of “Mokoko Upright, Weight-Axis Variable Font”, so these two variable fonts would conflict with each other, giving unpredictable and unreliable behaviour.
Application Compatibility
Application support for the pre-defined instances in a variable font, as if they were just a collection of individual font weights, is generally excellent, with support for accessing additional variations actively growing:
Application | Pre-Defined Instances | Additional Variations |
---|---|---|
Adobe Illustrator | Yes. | Yes, since version 22. |
Adobe InDesign | Yes. | Yes, since version 15. |
Adobe Photoshop | Yes. | Yes, since version 19. |
Apple Pages | Yes. | No. |
Apple Keynote | Yes. | No. |
Figma | Yes. | Yes, since version 114.4. |
Microsoft Word | Yes, but PDF generation and some printer drivers are currently unreliable. | No. |
Microsoft Powerpoint | Yes, but PDF generation and some printer drivers are currently unreliable. | No. |
QuarkXPress | Yes. | No, but it’s in development. |
However, embedding variable fonts in document files is not quite as straightforward:
Application | Pre-Defined Instances | Additional Variations |
---|---|---|
Yes, but the software producing the PDF has to convert the variable font to a legacy format or generate each static instance. | Yes, but the software producing the PDF has to convert the variable font to a legacy format or generate each static instance. | |
Word .doc | Yes, but each static instance is embedded in full, leading to increased file size. | No. |
Word .docx | Yes, but each static instance is embedded in full, leading to increased file size. | No. |
Variable Fonts on the Web
End-users can rely on the web developer and their web browser to take care of the technical details under the hood; the information below is intended for web developers who wish to use self-hosted web fonts on their site.
Browser | Pre-Defined Instances & Additional Variations |
---|---|
Chrome for Android | Yes, since version 71. |
Chrome | Yes, since version 66. |
Edge | Yes, since version 17. |
Firefox | Yes, since version 66. |
Internet Explorer | No. |
Opera | Yes, since version 53. |
Safari | Yes, since version 11. |
Safari for iOS | Yes, since version 11. |
UC Browser | Yes, since version 13.4. |
You can take advantage of the smaller file size that variable fonts offer to deliver more fonts in less time to every site visitor. Below is a comparison of the file sizes for the web font versions of three of our library font families which are available as variable fonts:
Font Family | Variable Font Size (WOFF2 format) | Static Font Size (WOFF2 format) | Breakeven |
---|---|---|---|
Aktiv Grotesk Weight-Axis | ~509kB | ~251kB | 2 Static Fonts |
Aktiv Grotesk Weight-Axis and Width-Axis | ~942kB | ~251kB | 4 Static Fonts |
Aktiv Grotesk Full Family | ~1,556kB | ~251kB | 7 Static Fonts |
Effra Weight-Axis | ~123kB | ~56kB | 3 Static Fonts |
Effra Full Family | ~183kB | ~56kB | 4 Static Fonts |
Objektiv Weight-Axis | ~83kB | ~38kB | 3 Static Fonts |
Objektiv Full Family | ~145kB | ~38kB | 4 Static Fonts |
Mokoko Weight-Axis | ~49kB | ~22kB | 3 Static Fonts |
Mokoko Full Family | ~83kB | ~22kB | 4 Static Fonts |
Support for variable fonts on the web has reached over 95% of users, and you can use them in combination with fallback static fonts without hacks or tricks. The CSS rules to achieve this are straightforward:
@font-face {
font-family: 'Mokoko VF';
src: url('Mokoko_VF.woff2') format('woff2-variations');
font-weight: 100 900;
}
@font-face {
font-family: 'Mokoko';
src: url('Mokoko_Rg.woff2') format('woff2');
font-weight: 400;
}
@font-face {
font-family: 'Mokoko';
src: url('Mokoko_Bd.woff2') format('woff2');
font-weight: 700;
}
body {
font-family: 'Mokoko VF', 'Mokoko', sans-serif;
}
Variable Fonts in Apps
End-users can rely on their mobile platform to take care of the technical details under the hood; the information below is intended for software developers who wish to embed fonts in their apps.
You can take advantage of the smaller file size that variable fonts offer to deliver more fonts in less time to each user who downloads your app. Below is a comparison of the file sizes for the app versions of three of our library font families which now feature variable fonts:
Font Family | Variable Font Size (TTF format) | Static Font Size (TTF format) | Breakeven |
---|---|---|---|
Aktiv Grotesk Weight-Axis | ~2,264kB | ~1,207kB | 2 Static Fonts |
Aktiv Grotesk Weight-Axis and Width-Axis | ~3,185kB | ~1,207kB | 3 Static Fonts |
Aktiv Grotesk Full Family | ~4,578kB | ~1,207kB | 4 Static Fonts |
Effra Weight-Axis | ~428kB | ~198kB | 2 Static Fonts |
Effra Full Family | ~547kB | ~198kB | 3 Static Fonts |
Objektiv Weight-Axis | ~279kB | ~127kB | 2 Static Fonts |
Objektiv Full Family | ~405kB | ~127kB | 3 Static Fonts |
Mokoko Weight-Axis | ~123kB | ~60kB | 2 Static Fonts |
Mokoko Full Family | ~185kB | ~60kB | 3 Static Fonts |
Support for variable fonts in apps is excellent across both major mobile platforms:
Platform | Pre-Defined Instances | Additional Variations |
---|---|---|
Android | Yes in system WebView since Chromium version 67. Yes natively since Android Oreo (API version 26). | Yes in system WebView since Chromium version 67. Yes natively since Android Oreo (API version 26). |
iOS | Yes since iOS 11. | Yes since iOS 11. |
Since the creation of OpenType it has existed in two distinct flavours, TrueType-based OpenType and CFF-based OpenType. The introduction of variable fonts has added a third flavour, CFF2-based OpenType.
CFF2-based variable fonts are not backwards compatible with CFF-based static fonts, and do not have widespread support. The variable font compatibility information provided in this document refers only to TrueType-based OpenType.
We recommend that only TrueType-based variable fonts are used, and it is the only format of variable font which we supply to end-users.
External Resources
“Can I Use?” is a great resource for accurate and up-to-date information on web browser compatibility and standards compliance. Their variable fonts summary shows how much progress has been made and how reliable variable fonts have become on the web.