The Variation Model

A family of related fonts can share a system of drawings. You design a small number of reference designs, called masters, and let FontLab calculate designs between them. This makes interpolation useful even when the only fonts you intend to deliver are ordinary static styles.

Variation as Interpolation

A master supplies a complete source design at a particular location. FontLab realizes font masters through named layers registered with axis locations, as developed in Layers and Masters and Axes and Master Locations. Interpolation calculates another design by blending corresponding values from the masters. Those values include outline coordinates and advance widths; other supported data, such as anchor positions and kerning, can vary too.

Consider two compatible masters on a weight axis. In one master, a corresponding point has an X coordinate of 100; in the other, it is 140. At the midpoint of a simple linear blend, its X coordinate is 120. A quarter of the way from the first master to the second, it is 110. The position determines the contribution of each master.

This calculation does not recognize that a point belongs to a serif or that a counter ought to remain open. You supply designs and correspondence that make the intermediate results useful. Inspect those results throughout the range, not just at the endpoints.

A design axis is a dimension of change: weight, width, optical size, slant, or a custom design parameter. A location specifies a coordinate on each axis. A designspace is the space those axes describe. One axis gives a line of possibilities; two axes give a plane, such as the combinations of weight and width.

On a simple one-axis designspace with an intermediate master, the blend on either side uses the neighboring designs. That intermediate drawing lets you control a region that the original two-master blend did not handle well. With several axes, the arrangement of masters and the interpolation model determine their contributions; a master that looks nearby on screen is not necessarily the only relevant source.

Build corresponding structures

Master compatibility means that FontLab can establish the correspondence needed to blend the designs. A node in one master must have the intended counterpart in the other. Contour order, node order and types, element organization, and reusable content all matter.

Equal node counts alone are insufficient. If the starting nodes are at different corners, matching by order can connect the wrong parts of the drawing. The resulting intermediate outline may twist even though a simple count check succeeds.

Compatibility and design quality are separate checks. Compatible masters can interpolate into an unattractive letter; attractive endpoint designs can be structurally incompatible. Some operations can repair or convert differences, but they cannot decide which correspondence best expresses your design.

Static and Dynamic Instances

An instance is the design at a chosen location. It does not need an independently drawn master at that location: its shapes can be calculated from the surrounding sources.

A dynamic instance is a live preview. Move a variation slider and FontLab recalculates the displayed design. This is a direct way to inspect the range, including weights or widths that will never receive a style name.

A static instance is a calculated design retained as a fixed result. You can generate it as an editable source font, or export an installable static style. Once branched into an independent source font, it does not automatically follow later changes to the original designspace.

A named definition of a location is different again. It tells FontLab where to calculate a result and what to call it; it need not contain its own outlines. Keep that distinction in mind when an instance list changes but the master drawings do not.

An incompatible glyph cannot produce a valid interpolated preview or instance until its sources are made compatible. Check compatibility before relying on previews or generated results. A failed or partial preview is not evidence that every glyph can produce the intended instance, and a successful preview of one glyph says nothing about another glyph with different structure.

Families and Variable Fonts

The first use of a designspace is family production. Draw compatible masters, choose the locations that make useful styles, name those styles, and generate the results. You can deliver a static family without ever producing a variable font.

The second use is a variable font: one installable font carries variation data so that a supporting application can calculate designs at chosen locations. Named instances provide convenient starting points, while the available axis range can also expose designs between them.

Interpolation was already a production technique in the Multiple Master era, when limited client support meant designers mainly used it to generate static fonts. Broader client support makes OpenType Variations viable as a delivery form as well as a production technique; application capabilities still determine the controls an end user receives. That history does not make variable delivery compulsory for every family.

Both uses begin with the same design work: draw the masters, establish their correspondence, assign locations, and inspect the space between them. Saving that source structure and generating an editable instance are different from exporting an installable font. Both static-instance and variable-font delivery are covered in OpenType, Variable, and Web Fonts. Plan the family first, then choose the output appropriate to its users.