Working with Font Variations»

You work with OpenType Variations (Variable Fonts) primarily through the Variations panel and the Layers and Masters panel with help from the Preview panel and Font Info dialog.

Importing Fonts»

FontLab can open OpenType Variations fonts and GX Variations fonts, as long as they have TrueType outlines. (Support for Adobe’s new CFF2 format and OpenType variations fonts with PostScript outlines is planned for the future.)

FontLab VI does not directly open legacy Multiple Master fonts, the axis-based format that Adobe introduced around 1992 and phased out around 1999-2002. However, although FontLab VI can’t open Type 1 MM fonts directly, it can open the same data in a FontLab 5 VFB file. So as a workaround, you might open such a font in FontLab Studio 5, and save it again (as a FontLab VFB file). FontLab VI can open the MM VFB file and treat it as a variable font.

Adding an Axis to an Existing Font»

To add a new axis to a font:

  1. Open the Font Info dialog (File > Font Info).
  2. Switch to the Axes page
  3. Click on the “Plus” button. If you had no axes in the list, the standard “weight” axis will appear. The second click on the “Plus” button will add the “width” axis, etc.

You can change axis properties here: name, FontLab-internal two-letter axis code, four-letter axis tag, “show/hide in the apps” toggle, min, max and default coordinates for the axis. You will need to do this if the automatically selected new axis is not the one you wanted.

An axis also can contain recipes for instances – named points on the axis coordinate line. You can edit it here as well.

Removing Axes»

To remove the axis, select it in the list and click on the “Minus” button.

Adding an Intermediate Master (but not an Axis)»

If you want to interpolate along an axis, you need at least two masters with different coordinates for that axis. FontLab Studio 5 allowed just two masters per axis (one for the minimal coordinate, one for the maximal coordinate) — and all instances would be interpolated between these extreme coordinates.

In FontLab VI, you may have any number of masters at different coordinates, for any given axis. For example, you may choose to design three masters for your weight axis. The axis location of each of those masters would need a different coordinate for the wt axis. For example, your Thin master could have the location wt=200, your Medium master wt=500, and your Bold master wt=700.

If you then choose the Semilight instance to be derived at wt=300, that instance would be interpolated between the Thin and Medium masters in such a way that, design-wise, the instance would be at “⅓ visual distance” between the Thin and the Medium, because (300-200)/(500-200) = ⅓. If you then choose the Semibold instance to be derived at wt=600, the result would be visually half-way between the Medium and Bold master, because (600-500)/(700-500) = ½.

To add a new font master:

  1. Open the Font Info dialog (File > Font Info) and switch to the Masters page.
  2. Click on the “Plus” button at the bottom of the left list of masters. The dropdown allows you to select the method of creating new master:

  1. a) Select Empty Master if you want to just create a placeholder for later use. Note that a master without glyphs is not shown in the Layers and Masters panel, nor in the Glyph window. It also cannot be used for interpolation.
    b) Select Duplicate Current Master to create a copy of the selected font master, without glyphs (with limitations as described above).
    c) Select Duplicate Current Master and Glyphs to create a copy of the selected font master and copy all glyphs from the selected master.
    d) Choose a master from one of your open fonts. The selected master will be copied to the new master, with all its glyphs.

If Copy Font Metrics is turned on, the new master will inherit font metrics from the original font master.

If Create Missing Glyphs is turned on, the new master will have the same glyphset as existing masters. Missing glyphs will be added if they are missing in the original font master.

To edit a font master name, use the Names page of the Font Info dialog.

To edit other font master properties, select the font master in the list of masters and go to the properties section below the list. Here you define the master’s position in the design space formed by axes. One of the masters in your font must be the default master. Mark it with the blue radio button in the list of masters. (If you generate a variable font with TrueType outlines, and it is used in an old environment that does not understand variable fonts, the font will just show up with the outline of the default master.)

To remove a font master from your variable font, click on the “Minus” button in the bottom of the left list.

Declaring Predefined Instances»

A predefined instance is actually a location in the design space (one numerical coordinate per axis). It has some naming fields but it is not a real font — it’s merely a “plan” to create a real font.

When you export a variable OpenType font, predefined instances are stored in the font as “named design space locations”. However, to the end-user, choosing a predefined instance of a variable font (in apps that support variable fonts, such as Adobe Illustrator CC 2018, Adobe Photoshop CC 2018, Apple Keynote or Apple Pages) feels very similar to choosing different styles in an extended font family.

To declare predefined instances for your font, you must have at least one axis declared explicitly. If you have an axis:

  1. Open the Font Info dialog (File > Font Info) and switch to the Instances page.
  2. Click on the “Plus” button at the bottom of the list of instances. The new default instance will be added and you can change its properties.

To edit instance properties, select the instance in the list and refer to the properties section below. Here you define what location the instance takes in the design space formed by axes, the Typographic Style Name (TSN) and what Style Group (SGN) of the typographic family will it belong to. See the Names page and Font Naming for details about families, styles and style groups.

There are also two quick ways to define several instances at once:

  1. Click on the From Axes button and the list of instances will be populated with instances according to the recipes in your axes. For example, if your weight axis looks like this:

you will get all those predefined instances in the list:

  1. Click on the From Masters button and the list of instances will be populated with font masters. You then can edit their properties individually if needed.


If you have both Book and Regular in your family, you should check the instances and solve the weight conflict manually.

To remove the instance from your variable font, select it in the list and click on the “Minus” button.

Previewing Instances and Interpolation Results»

Open the Variations panel, switch to the Map mode and move the blue circle around the design space. This is an arbitrary instance and you can preview it in the Preview panel and the Glyph window.

This can also be one of the predefined instances that you can choose from the Instances bottom tab of the List mode of the Variations panel.

To preview some text in the current (predefined or interpolated) instance:

  1. Open the Preview panel and click on the top-right button to open the panel’s content sidebar.
  2. In the Master dropdown, choose Instance.
  3. In the Content dropdown, choose what text you’d like to preview. “Current” displays the selected glyphs if the Font window is active or the visible text in the Glyph window if it is active. “Custom” displays the text that you type into the panel.
  4. Activate the Text tool in the Glyph window, type any text and choose the instance in the Variations panel.

When you’re choosing a current instance, FontLab automatically refreshes the special #instance layer for all glyphs. This is a read-only virtual layer that contains the contours of the current instance. Glyphs with incompatible masters cannot be interpolated and do not show the #instance layer.

By default, the #instance layer is set to be Service (which means that it doesn’t contribute to the exported final font, to the filled preview or to the interpolation as a master) and Wireframe (which means that whenever FontLab renders glyphs, you see the outlines instead of fills). You can change these properties and experiment with various settings in the Layers and Masters panel.

Creating a Variable Font (example)»

To create a font with multiple font masters from a set of existing single-master fonts, open all the single-master fonts in FontLab and do one of the following:

  • Open the Fonts panel, select all the fonts (using Shift or Cmd) and use Font > Merge to Layers. FontLab will create a new font with multiple font masters. Close source fonts and continue working with your new variable font.

    1. Activate the font into which the font masters will be added (choose its Font window or double-click it in the Fonts panel). This will be the font that will provide names, classes, features and other font-wide (or family-wide) data. let it be the Regular style of the family.
  • Choose Open File > Font Info to open the Font Info dialog.
  • Click on the “Plus” button in the lower left corner.
  • Choose the single-master font which will be added as the new font master to your Regular font master.
  • Repeat the previous step until you’ve added all the fonts as font masters.
  • Close the source single-master fonts except the one which is multiple-master now.

Use the Master switcher on top of the Font Info dialog to switch between masters. You can also add new blank font masters, or duplicate existing font masters, using the “Plus” button.

Once you have multiple font masters, assign a unique name to each one using the Master name field in the Font Info > Names section.

Then, switch to the Font Info > Masters section to choose the default font master (which will be exported as the neutral master into the variable OpenType font), and set the location of each font master on the design space.

To check how the interpolation is working, open the Variations panel.