Skip to content

Making Instances

Benefits Save time by quickly setting up instances. Control exactly how you want your instances to look.

Making Family Members

So we have two family members already, the parents, ie the masters, then they mix to form the children.

In fonts, these children are called instances.

What Are Instances Good for?

Variable Fonts

When a font user installs a variable font, this will be a list of the styles they can choose from.

Besides this, the user can choose any custom axis point. But this gives him a good starting list.

Static Fonts

Also if you are making static font families, such as OTF, TTF, WOFF, WOFF2, the instance list is used to export various styles.

Automatic Instances

❶ You can use your file from the last tutorial. Or you can download this file.

Load it up into FontLab.

Use the Variations Workspace. Go to menu: Windows > Workspaces > Variations.

❷ Go into Font Info > Instances.

❸ Now in the middle of that page, it says “From Axes”, “From Masters”, “From Graph”. Since our Axes instance list is wrong, for now, push From Masters. The instance list should be populated with your Semibold and Hairline.

❹ Push OK, to go out of Font Info.

Before we get to making manual instances, a word about…

Interpolation vs. Extrapolation

Open the Variations Workspace and go to the Variations panel.

Try dragging the blue dot right and left.

You might notice that the H in the background doesn’t change when you move past the 10. However it does change when you move past the 128! To the right.

It becomes an H that is darker!

In between the masters, the mix is called an interpolation.

Outside of the masters, it’s extrapolation.

Extrapolation

Extrapolation is the dotted lines on those charts telling you to buy a certain stock or financial product:

An homage to Dwiggins.

The stuff on the dotted line hasn’t happened yet!

How are you to know what will actually happen?

Here’s a way you can think about the extrapolation in FontLab.

The 220 master isn’t there! However, you can continue the trajectory of the nodes. You can see what 220 might look like.

It’s just like the stocks. Sometimes the trajectories happen. Other times predictions are wrong. You lose all your money in a stock market crash.

Sometimes extrapolation makes good letters. Sometimes it makes bad letters.

For now, we’ll avoid instances along the dotted area.

Info

If you don’t want to see extrapolations in the Variations panel, go to Font Info > Axes. Set your weight axis max to 128.

Warning

Suppose you make a variable font using the above numbers. You make an instance at wt140, outside of interpolation, into dangerous dotted territory!

You will be out of range, and when you export, you will get a message like this:

So keep instances between actual masters.

Manual Instances

OK, let’s set it up.

⓿ Make sure you have the Variations Workspace open.

❶ Variations panel, top left, there’s a button with sliders on it. click that. Now click the bottom button for instances.

Here and here.▼

❷ Use the slider and add instances.

Here’s how you do it.

First open up your Preview panel, so you can see what is happening.

Move the slider, and then click the lower + button.

Here’s the weights you might want to think about when making this.

Hairline Thin Extra Light Light Regular Medium Semibold

You don’t need all of these. Here’s an example of how you might do it. Remember to choose even numbers.

You’ll notice that all these are getting named as Thin!

Don’t worry, we’re going to change that next.

Fixing Instance Names

❸ Go to Font Info > Axes. Let’s import the instances from the once we just made!

Click the hamburger and import from instance.

❹ Go to the instances panel and now import from the fresh axes names.

Like so.▼

Your variable fonts will have these predefined instances.

Blue Dots

Let’s talk blue dots!!

Master Blue Dot

That little blue dot in the master’s panel assigns which master is primary.

Choose carefully!

The blue dot master does all these things:

  1. FontLab will match kerning classes to the blue dot master, if the classes are different.
  2. FontLab uses the hints in the blue dot master to make hints in other masters.
  3. If there’s no instance in the same place as that blue dot master, an instance will be added.
  4. Heaven forbid a glyph doesn’t interpolate, it will export a glyph from this master.
  5. The blue dot master will hover at the top of variable font drop down menus in some programs.

If Semibold is the primary master, but you don’t have it on the instances list.▼

In programs, the blue dot master will be at the top.

The blue dot master will be shown as default in some programs, such as the Praxis Axis test.

When a person installs the font on the computer, the blue dot master will be the one that is shown.

For example, if I changed the hairline to be the blue-dotted master, it would show.▼

Instance Blue Dot

The blue dots in instances are entirely different!!

These assign what will show up in export.

Now when you go to File > Export Font As…

And then click a static font like OpenType PS (OTF), the Instances will be automatically populated!

Very happy when I discovered this one.

BONUS Tip

Hold down option Alt while clicking to select or unselect everything!

Naming Instances

Many times the instances can use the full name.

However, in the future, what if you create this font style.▼

Ultra Contrast Extra Bold Semi Expanded Serif Small Caps Rounded Oblique

You need some abbreviations!

Here’s abbreviations from Adobe’s Font Naming Issues, Appendix A: Font Name Style Abbreviations.

Style names

Some operating systems and apps impose a length limit on the style name. Fonts with style names that are too long will not show up in the font menus at all, or their style names will be truncated. The limit is typically 63 characters. However, the style name portion is also used in the Full name, and in the PostScript font name, which have a shorter limit.

If the family varies in weight and/or width and you choose the appropriate Weight or Width Class from the dropdown in Font Info, FontLab can automatically build a style particle name for weight and for width, and then combines these particle names to form the style name.

The tables below show style particle names for weight and width. When FontLab builds a style name automatically, it tries the Full particle name, but if the style name becomes too long, it tries abbreviated particle names: first the Mid-length particle name, and if this is still too long, the Short particle name.

You may yourself choose to use the Mid-length or Short particle names consistently across the entire family — in style names, in axis instances, and in style groups (see next tutorial).

Weight particle names

For each weight class, the Weight column shows the standardized numeric weight class value, specified by the OpenType spec for static and variable fonts.

The numeric weight class value is often used by various systems and apps to select the weight. For example, it’s used in CSS (font-weight: 300;). The values can go from 1 to 1000, but if your font has no more than 9 predefined weights, use the full-hundred values (100 – 900). It’s highly recommended that your Regular weight uses the value 400. You may use additional in-between values if your family needs to have more than 9 predefined weights.

To set a weight class for a single-master font:

  • use the Weight class dropdown in the Names page for a common weight class
  • use the numeric field for an uncommon weight class (for example 440)

To set a weight class for a variable font:

  • Use the Weight class dropdown or the numeric field in the Names page for the main master.
  • For the Weight (wght) variation axis, define the particle names and their corresponding design axis coordinates in the Axis instances field on the Axes page. If a particle name should be elided, wrap it in parentheses (typically: (Regular)).
  • In the Axis graph of the Weight axis, make sure that the design axis coordinates for the particle names correspond to the standardized numeric weight class values. For example, your axis instances field may define the particle Bold=240 if your Bold weight has the stem weight of 240 units, and then the axis graph should have the design coordinate 240 correspond to the user coordinate 700, since 700 is the standardized weight class value for Bold.
  • Make sure the Weight class value of the main master matches the user coordinate of the default particle name in the Axis instances field. Remember: if you use a non-linear Axis graph, it is the user coordinate needs to match the main master’s Weight class, but the Axis instances field uses design coordinates.
  • If you define instances in the Instances page, use the Weight axis dropdown at the bottom to specify their design coordinates, and use the weight dropdown and numeric field in the Style line to specify their Weight class, which needs to use the standardized values. Remember that the numeric Weight class value specified in the Instances page will be used only for static instances. For predefined instances in a variable font, the values obtained via the Axis graph will be used.
  • For static instances, and for predefined instances in variable fonts, use the style name field in the Instances page to define the style name. We recommend that your style name uses the particle names from the tables below.

The weight class numbers don’t need to correspond to the actual weight progression (thickness of the stems). In fact, they almost never do. But for computers, it’s important that the Regular weight has the weight class 400, and Bold has 700.

Font vendors have used various common particle names for a given weight class. In the following table, the WeightC column shows the numerical weight class values, with the best-supported values in bold. The Best column has a checkmark (☑︎) if a particle name is most common, and recommended. The Long column also shows the best-supported (recommended) name in bold. The Mid-length and Short provide abbreviated particle names, useful in multi-axis style names and in style group names.

In instances with the default weight (with the weight class value 400), use (Regular) as the elided particle name in the Weight (wght) variation axis, and omit the particle name in multi-axis style names. Use Regular as the style name in the default instance of the family.

WeightC Best Long Mid-length Short
1-50 ☑︎ Hairline Hair Hr
1-50 Extra Thin ExtTh XTh
1-50 ExtraThin ExtTh XTh
100 ☑︎ Thin Thin Th
100 Ultra Thin UltTh UTh
100 UltraThin UltTh UTh
200 ☑︎ ExtraLight ExtLt XLt
200 Extra Light ExtLt XLt
200 ExtraLight ExtLt XLt
200 Ultra Light UltLt ULt
200 UltraLight UltLt ULt
300 ☑︎ Light Light Lt
350 ☑︎ SemiLight SemLt SmLt
350 Demi Light DemLt DmLt
350 DemiLight DemLt DmLt
350 Demilight DemLt DmLt
350 Semi Light SemLt SmLt
350 Semilight SemLt SmLt
400 ☑︎ (Regular) (Reg) (Rg)
400 Book Book Bk
400 Normal Norm Nm
400 Plain Plain Pl
400 Roman Rmn Rm
450 ☑︎ News News Nw
450 Text¹ Text Tx
500 ☑︎ Medium Med Md
600 ☑︎ SemiBold SemBd SmBd
600 Demi Bold DemBd DmBd
600 DemiBold DemBd DmBd
600 Demibold DemBd DmBd
600 Demi² Dem Dm
600 Semi Bold SemBd SmBd
600 Semibold SemBd SmBd
700 ☑︎ Bold Bold Bd
800 ☑︎ ExtraBold ExtBd XBd
800 Extra Bold ExtBd XBd
800 Extrabold ExtBd XBd
800 Ultra Ultra Ult
800 Ultra Bold UltBd UBd
800 UltraBold UltBd UBd
800 Ultrabold UltBd UBd
850 ☑︎ Heavy Heavy Hv
900 ☑︎ Black Black Blk
900 Fat Fat Fat
950/1000 ☑︎ ExtraBlack ExtBlk XBlk
950/1000 Extra Black ExtBlk XBlk
950/1000 Ultra Black UltBlk UBlk
950/1000 UltraBlack UltBlk UBlk

¹“Text” is sometimes a weight and sometimes an optical size. ²“Demi” is sometimes a weight and sometimes a modifier. The preferred weight particle name is “SemiBold”.

Width particle names

For each width class, the Width column shows the approximate average width as a percentage of the normal width of the family. The percentages are from the OpenType spec, but you don’t need to follow them blindly. It’s up to you how much condensed you really make your Condensed style.

Font vendors have used various common particle names for a given width class. In the following table, the Best column has a checkmark (☑︎) if a particle name is most common, and recommended. The Long column also shows the “best” nae in bold. The Mid-length and Short provide abbreviated particle names, useful in multi-axis style names and in style group names.

In instances with the default width (so-called “100%”), use (Normal) as the elided particle name in the Width (wdth) variation axis, and omit the particle name in multi-axis style names. Use Regular as the style name in the default instance of the family.

Width Best Long Mid-length Short
50% ☑︎ UltraCondensed UltCond UCn
50% Ultra Compressed UltComp UCm
50% Ultra Condensed UltCond UCn
50% Ultra Condensed UltraCond UCn
50% Ultra-condensed UltCond UCn
62.5% ☑︎ ExtraCondensed ExtCond XCn
62.5% Compressed Comp Cm
62.5% Extra Condensed ExtCond XCn
62.5% Extra Condensed ExtraCond XCn
62.5% Extra-condensed ExtCond XCn
75% ☑︎ Condensed Cond Cn
75% Extra Narrow ExtNar XNr
75% Extra-narrow ExtNar XNr
87.5% ☑︎ SemiCondensed SemCond SmCn
87.5% Compact Comp Cm
87.5% Narrow Narrow Nr
87.5% Semi Condensed SemCond SmCn
87.5% Semi Condensed SemCond SmCn
87.5% Semi Condensed SemiCond SmCn
87.5% Semi-condensed SemCond SmCn
100% ☑︎ (Normal) (Normal)
112.5% ☑︎ SemiExpanded SemExp SmEx
112.5% Semi Expanded SemExp SmEx
112.5% Semi Extended SemExp SmEx
112.5% Semi Extended SemiExp SmEx
112.5% Semi-expanded SemExp SmEx
112.5% Semi-extended SemExp SmEx
112.5% Wide Wide Wd
125% Extended Ext Ex
125% Extended Extd Ex
125% ☑︎ Expanded Exp Ex
150% ☑︎ ExtraExpanded ExtExp XEx
150% Extra Expanded ExtExp XEx
150% Extra Extended ExtExt XEx
150% Extra Extended ExtraExt XEx
150% Extra-expanded ExtExp XEx
150% Extra-extended ExtExt XEx
150% Ultra Wide UltWd UWd
150% UltraWide UltWd UWd
200% ☑︎ UltraExpanded UltExp UEx
200% Ultra Expanded UltExp UEx
200% Ultra Extended UltExt UEx
200% Ultra Extended UltraExt UEx
200% Ultra-expanded UltExp UEx
200% Ultra-extended UltExt UEx

FontLab also includes built-in width particle names for monospace fonts.

Width Best Long Mid-length Short Mono
50% ☑︎ Mono UltCond MonoUCn UCn ☑︎
62.5% ☑︎ Mono ExtCond MonoXCn XCn ☑︎
75% ☑︎ Mono Cond MonoCn Cn ☑︎
87.5% ☑︎ Mono SemCond MonoSmCn SmCn ☑︎
100% ☑︎ Monospaced Mono ☑︎
112.5% ☑︎ Mono SemExp MonoSmEx SmEx ☑︎
125% ☑︎ Mono Exp MonoEx Ex ☑︎
150% ☑︎ Mono ExtExp MonoXEx XEx ☑︎
200% ☑︎ Mono UltExp MonoUEx UEx ☑︎

Slope particle names

Font vendors have used various particle names for the slope. In the following table, the Angle column shows the common italic angle for left-to-right scripts. The Best column has a checkmark (☑︎) if a particle name is most common, and recommended. The Long column also shows the best-supported name in bold. The Mid-length and Short provide abbreviated particle names, useful in multi-axis style names and in style group names.

The best practice is to avoid the non-standard slope names. If the instance is upright, use (Plain) as the elided particle name in the Italic (ital) variation axis, and omit the particle name in multi-axis style names. If the instance is sloped, use Italic as the particle name and in style names, no which direction the italic angle is sloped, and even if the font is not a “true italic” but an oblique or slanted design. Use Regular as the style name in the default instance of the family.

Angle Best Long Mid-length Short
0 ☑︎ (Plain) (Plain) (Pl)
0 Upright Upri Upr
>0 ☑︎ Italic Ita It
>0 Oblique Obliq Obl
>0 Cursive Curs Cur
>0 Kursiv Kurs Kur
>0 Inclined³ Incli Inc
>0 Sloped Slop Slo
>0 Slanted Slant Sla
<0 Backslanted Bkslant Bsla

³Not commonly used.

Modifier Abbreviations

(Alphabetic order)

Modifier Abbrv
Demi Dm
Semi Sm
Ultra U
Extra X

Other axes and style attributes

If your instances differ in aspects other than weight, width and slope, you can specify name particles in additional variation axes, or you can specify an extra particle name in Font Info > Names > Other for a master. FontLab will use these particle names when it builds the style names.

In the following table, the Attribute column lists the variation axis or design attribute which your design may differ. The Long column shows full-length particle names, in parentheses if they’re commonly elided (omitted from multi-axis style names). The Short column provides abbreviated particle names.

Attribute Long Short
Optical size ExtraSmall XS
Optical size Small S
Optical size Caption Capt
Optical size (Text) (T)
Optical size Subhead Subh
Optical size Head Head
Optical size Large L
Optical size Titling Ti
Optical size Display D
Optical size ExtraLarge XL
Optical size Poster P
Character set Alternate Alt
Character set Expert Exp
Character set Ornaments Or
Character set Oldstyle OS
Character set Old Style OS
Character set Oldstyle OsF
Character set SmallCaps SC
Character set Small Caps SC
Character set Swash Sw
Character set Standard Std
Character set Professional Pro
Character set Pan-European EU
Character set World W
Character set WGL4 WGL
Character set Central European CE
Character set Cyrillic Cyr
Character set Greek Grk
Design Deutsche Fraktur Dfr
Design Inline In
Design Outline Ou
Design Rounded Rd
Design Script Scr
Design Shaded Sh
Design Typewriter Typ
Contrast (Low)
Contrast High

Those are the basics. (Although there’s more you can do with instances.)

In the next tutorial, you’ll learn some special groupings that are required by retailers like MyFonts. You’ll set up Style Groups. See you then!

Great job!

Dave Lawrence California Type Foundry