Working with Font Variations»

In FontLab, Variations panel is the primary place for controlling Variable fonts. In the Variations panel, you can see all your axes, as well a visual/spatial representation of the design space, including the position of masters. Here you can also create a virtual instance. You can use the Preview panel alongside to see how your glyphs look when you move the virtual instance you have created. If you’re working in a variable font, Layers and Masters panel shows a list of all your masters and the virtual instances. Finally, the Font Info dialog box is where you can add, delete and manage the axes, masters and predefined instances of your variable fonts.


In FontLab, you can add upto 64,000 axes, as allowed by the OpenType specification. Axes can represent weight, width, optical size, slant and italic-ness (which all have registered axes tags in the specification), or other typographic properties like contrast, serif size, ascender or descender height, based on your design. If your variable font only uses the weight and width axes, you don’t need to explicitly add them to your font, but doing so gives you more control over defining axis properties.

Adding an axis»

To add an axis to a font:

  1. Open the Font Info dialog File > Font Info.

  2. Select Axes in the left sidebar.

  3. Click on the + button. If you have no axes in the list (or are missing the weight axis), the standard weight axis will appear. If you keep adding more axes, FontLab will add the following axes (if they are missing from the list) — width, optical size, slant, italic, contrast, serif, grade, x-height, scale and tracking— in this order, before adding a completely empty axis. You can edit any of the standard axes added by the application, if you wished to create a different one.

Editing axis properties»

Each axis has the following properties:

  1. Name
  2. FontLab’s internal two-letter axis code
  3. Four-letter axis tag
  4. Minimum, maximum and default coordinates (default coordinate is the recommended value for that axis in a “Regular” font)
  5. Toggle to show/hide in apps

To edit axis properties, open the Font Info dialog box File > Font Info, select Axes from the left sidebar, and edit the values for the appropriate axis.

Note that tags for custom axes, i.e. axes that are not registered in the OpenType specification, must begin with an uppercase letter and can only use uppercase letters or digits.

Removing an axis»

To remove an axis, select it in the list and click on the - button.


If you want to interpolate along an axis, you need at least two font masters with different coordinates for that axis. FontLab Studio 5 allowed only two masters per axis (one for the minimal coordinate, one for the maximal coordinate) — and all instances were interpolated between these extreme coordinates. In FontLab VI, however, you can 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 define a Semilight instance to be derived at wt=300, it would be interpolated between the Thin and Medium masters. Design-wise, his instance would lie at ⅓ visual distance away from the Thin master (because (300-200)/(500-200)=⅓). Similarly, if you define a Semibold instance with wt=600, it would be interpolated between the Medium and Bold masters at a distance that is visually halfway between them (again, because (600-500)/(700-500)=½).

Apart from font masters, which are a complete font at a given axis location, you can also have glyph masters in a variable font. A glyph master is an additional master that contains the design for one or more particular glyphs, at an axis location where a font master does not exist. Glyph masters can be used to correct interpolation results for particular glyphs, but unlike font master, they do not contain font-wide information.

Adding a font master»

To add a new font master:

  1. Open the Font Info dialog File > Font Info.

  2. Click on the + button at the bottom left of the panel. A dropdown menu with the following options appears —

  3. Select Empty Master if you want to create a master with no glyphs. Such a master will not be shown in the Layers and Masters panel unless you add at least one glyph to it.

  4. Select Duplicate Current Master to create a copy of the selected font master without glyphs (such a master will have the same limitations as above)
  5. Select Duplicate Current Master and Glyphs to create a duplicate of the selected font master and copy all the glyphs from it.
  6. A list of currently opened fonts and their font masters, from which you can select a master that will be copied to the new master with all its glyphs.

Along with these four ways to create a new master, the dropdown has two other options —

  • Copy Font Metrics If this option is turned on, the new master will inherit font metrics from the default font master.
  • Create Missing Glyphs, If this option is turned on, the new master will have the same glyphset as existing masters. Missing glyphs will be added if they are missing.

Editing font master properties»

Properties of font masters are divided into two places in the Font Info dialog box: under Master properties and and Masters within Font properties. Apart from name which is in the former, the remaining font master properties related to interpolations are within the latter.

  1. To edit the name of a font master, open the Font Info dialog File > Font Info, select the master from the list on the bottom-left of the dialog, and then select Names under Master Properties. Enter the new name in the field titled Master name, and then press Apply.

For editing all other font master properties, open the Font Info dialog box File > Font Info and select Masters in the left sidebar. Here, select the master from the list on the right.

  1. To edit the attributes (weight, width, slant) of a font master, use the dropdown menus that follow the title Attributes to select the appropriate value.

  2. To edit the location of the font master on the axis, enter a new value in the Location field. Make sure that the numeric value is preceded by the two-letter axis code and the equal sign. You can also update the location by clicking on the dropdown menu named after the appropriate axis and selecting a value.

  3. To select which master will be default, mark it with the blue radio button in the list. Choose the default master carefully — 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.

  4. Finally, you can click on the blue AAA icon associated with a master to exclude it from interpolation. When a master has been excluded from interpolation, you see a grey dot in the place of the icon.

Removing a font master»

To remove a font master, select it in the list on the bottom right of the
Font Info dialog File > Font Info, and click on the - button below the 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.

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.