FontCreator Tutorials
Subsetting Variable Fonts with FontCreator
written by Erwin Denissen, published June 26, 2026
You'll need: FontCreator, a variable font (your own project or one you have a license to edit), and a few minutes to set up your export subsets.
Subsetting a variable font lets you slice its design space down to just the styles you actually ship. In this font editor you can clamp an axis to a smaller range, drop an axis you don't need, extrapolate beyond the original masters, and move the default location — all from the Export Settings dialog, without rebuilding the font by hand.
Introduction
Variable fonts offer flexibility by enabling a single font file to encompass multiple styles — such as weight, width, and slant — within one design space. However, not all use cases demand the full range of variation that a variable font provides. By subsetting (also known as slicing a variable font), you can reduce its complexity, tailoring it to meet specific performance and design needs.
In this article we'll explore why subsetting a variable font is beneficial and show you how to accomplish it using FontCreator, a versatile font editor. We'll also cover advanced techniques like extrapolation and setting new defaults for axis values.
> Note: This article does not cover reducing the character set, which is a different kind of subsetting. For that topic, see Improve Font Performance with Character Set Subsetting.
Why subset a variable font?
There are several reasons why subsetting a variable font can be valuable:
- Performance optimization. Reducing unnecessary variations within a font decreases the file size, leading to faster load times, especially on the web.
- Focused design requirements. Many projects don't require the full design space of a variable font. By subsetting, you can limit the font to just the ranges or styles needed.
- Simplifying user choices. A font with too many options can clutter the design process. Subsetting lets you simplify the interface by offering only the most relevant styles.
- Handling platform constraints. Some platforms may have limitations on font size or complexity. Subsetting helps adapt to these constraints without sacrificing essential features.
Open the Subset window
FontCreator provides an intuitive interface for subsetting variable fonts. With its Subset window you can define specific ranges or remove unnecessary axes, plus advanced options like extrapolation and the ability to set new axis defaults.
- Open your variable font in FontCreator.
- Choose File → Export Settings to adjust how the font will be exported.
- In the Export Settings window, click the Subsets button to open the window where you can define subsets for different axes.
The Export Settings window with the Subsets button highlighted, and the Subset window open beside it.
Define axis subsets
In the Subset window you add a subset and give it a name. This name is also used as the style name for the newly exported font. The file name is optional; if left empty, the subset name is used.
Add a subset, then add the axes you want to include. You can adjust the variation space for each axis based on your requirements. The available axes depend on the specific variable font you are working with, such as weight, width, or slant.
- Weight axis. If your font supports a range from 100 to 900 but you only need a few values (for example 400, 600, and 700), you can limit the weight axis accordingly.
- Width axis. For fonts with variable widths, reduce the range to just include the needed values, such as normal and condensed.
- Slant or italic axis. If slant isn't necessary for your project, you can choose to exclude this axis entirely.
> Tip: Dropping an axis you don't ship is usually the single biggest file-size win. If every instance you care about sits at one slant value, leave the slant axis out of the subset rather than clamping it to a single point.
Extrapolation
FontCreator also offers extrapolation, allowing you to create new instances of a font by extending the range of an axis beyond the original design space. For example, if your weight axis currently stops at 900, you can extrapolate further to create a new, heavier weight. This is useful for generating extreme styles or for cases where you need more variation than initially available.
> Watch out: Extrapolation projects the design past the masters that actually exist, so it can distort outlines — overshoots, collisions, and broken stems are common at extreme values. Always proof extrapolated instances before you ship them.
Set new axis defaults
Another useful feature is the ability to set new defaults for each axis. If you want to change the default instance of a font — say, make the medium weight (500) the default instead of the regular weight (400) — you can do this directly in the Subset window.
> Note: Changing the default axis values typically increases the file size, because the font has to store additional information to accommodate the new defaults. Use this feature when you need it, but be aware of its impact.
Save the font source
After defining the subsets, review your settings to make sure they meet your project's requirements. You can save the result as a FontCreator Font Project or export it as a Designspace version 5 file. The Font Project format is compact but exclusive to FontCreator. For greater compatibility, export as a Designspace file. Variable-font subsetting is built into FontCreator — something not every font editor offers — so doing the slicing here and exporting finished fonts is often the simplest route.
Review and export
Once you're satisfied, the subsets are exported when you choose File → Export Font. Each subset becomes its own exported font using the style name (and optional file name) you defined.
A defined subset listed in the Subset window, showing the weight axis clamped to a reduced range and a custom style name.
Conclusion
Subsetting a variable font lets you fine-tune the design space, reducing file size and simplifying user interaction while keeping the benefits of variable fonts. FontCreator's interface, combined with extrapolation and the ability to set new axis defaults, gives you a high degree of control. Whether you're optimizing for web performance or trimming the design space for a specific project, this font editor makes subsetting straightforward.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Subset font is barely smaller than the original | Axes were clamped, not dropped | Remove unused axes entirely instead of clamping them to a single value |
| Exported style has the wrong name | Subset name left blank or reused | Give each subset a unique, descriptive name — it becomes the style name |
| Extrapolated weights look broken | Outlines projected past the real masters | Reduce the extrapolation range or add a real master at the extreme |
| Designspace won't subset in another editor | Not every font editor offers built-in variable-font subsetting | Do the subsetting in FontCreator and export finished fonts, or keep the Font Project format |
Frequently asked questions
Is "subsetting a variable font" the same as character-set subsetting? No. Subsetting a variable font reduces the design space (axes and their ranges). Character-set subsetting removes glyphs/characters. They're complementary; see the linked character-set tutorial to do both.
Can I create more than one subset from a single font? Yes. Add as many subsets as you need; each one is exported as a separate font when you run Export Font.
Will subsetting change my outlines? Clamping and dropping axes do not change outlines at the locations you keep. Extrapolation does generate new geometry beyond the masters, which can distort shapes — always proof it.
Why did changing the default increase the file size? Moving the default location forces the font to store extra deltas so all other locations still interpolate correctly. It's expected; only change the default when you have a reason to.
Which save format should I use? Use the FontCreator Font Project for a compact, editable source you'll reopen in FontCreator. Use Designspace version 5 when you need an interchange format — but remember other editors may not honor the subset definitions.