Advanced Axis Management

A design's working coordinates and its user-facing values do not have to progress at the same rate. Use axis mapping to relate the two scales. Use extrapolation only when you deliberately need a design beyond the masters you have drawn.

The Axis Graph and Nonlinear Mapping

Open Font Info > Axes and click the Axis Graph control for the axis. The graph relates horizontal design coordinates to vertical user coordinates. Its endpoints define the mapping's range, and intermediate points change how values correspond between those endpoints.

The axis graph plots design coordinates horizontally and user coordinates vertically.

The axis graph plots design coordinates horizontally and user coordinates vertically. The example maps the two endpoint pairs with a straight line.

A straight mapping gives a proportional relationship. Additional breakpoints can make equal user-coordinate steps correspond to unequal steps through your drawings. This nonlinear axis mapping, represented by avar when needed in variable OpenType, lets the scale follow perception rather than raw coordinates. Conventional weight steps such as 100, 200, through 900 can land at uneven design locations so the perceived progression is useful.

Suppose two masters use design values 0 and 100. You may find that the drawing you want to call Regular occurs at 30 rather than 50. Map that location to the intended Regular user value while retaining the endpoints. The mapping changes how an outside value addresses the design; it does not redraw that design or add a master at 30.

Edit the mapping

  1. Open the axis's graph and identify its design and user scales.
  2. Add a mapping point at the design location whose external value you want to control. Double-click the mapping line to add a point.
  3. Move the point or edit its displayed coordinates to assign the intended user value.
  4. Inspect the complete mapping, including the intervals on both sides of the new point.
  5. Accept the graph, then preview familiar instance locations and verify that they still address the intended designs.

Use Add Points > From Instances when existing instance definitions provide useful mapping positions. Other point sources can use masters, axis instances, or axis defaults. Inspect generated points before accepting them: a generated list reflects its inputs, not a judgment about optical spacing between weights.

The graph also shows master and instance positions. Distinguish moving a mapping point from moving one of those locations. Moving a master location changes where an existing drawing influences the blend; changing the mapping changes how design and user values correspond.

Keep the mapping ordered and useful throughout the range. Compressing a large design interval into a small user interval makes the visible change occur quickly as an application moves through that interval. A visually smooth graph is not proof that the letterforms change smoothly.

Change the range deliberately

The range fields on the Axes page are summaries; edit their endpoints in the Axis Graph. When a changed range offers Keep or Scale, choose according to your intent:

  • Keep retains the existing locations while changing the range.
  • Scale adjusts locations proportionally to the new range.

Review the affected masters and instances before accepting. An endpoint adjustment intended only to allow further exploration should not inadvertently move every existing design location.

Use the graph for design-to-user mapping rather than older dual-coordinate text conventions in the axis-instance field. The mapping can be represented in variable-font output through axis-mapping data, commonly associated with avar; the binary representation and export options are separate from editing this relationship.

Extending Axes: Extrapolation

Extrapolation extends the blend beyond the source masters. If two masters sit at design values 0 and 100, a calculated design at 110 continues their differences past the second master instead of blending between them.

The distinction has a practical consequence. Between 0 and 100, the calculation is bounded by the supplied designs, although the result still needs inspection. Beyond 100, it continues a trend without another drawn design constraining it. Counters can collapse, joins can distort, and strokes can become excessively heavy or thin.

Extrapolation becomes available when the design range extends beyond the master-location range. To explore a small extension:

  1. Keep a saved source version with the current masters.
  2. Extend the design range in the Axis Graph, retaining the existing locations when that is your intent.
  3. Preview a nearby location beyond the edge master.
  4. Check several representative glyphs, spacing, accents, and kerning rather than only the glyph that prompted the change.
  5. Generate an editable source result only if it provides a useful starting point, then refine it as a design.

A static source instance can be generated at an extrapolated location within the configured working range. A variable-OpenType instance must remain within the participating master-location range. An extrapolated design needs an additional master anchoring that extension before it can become part of the variable delivery range. Merely widening a graph does not supply the edge-master data needed for a reliable extended variable range.

Treat extrapolation as a stopgap; prefer adding and refining a real master at the new edge, as described in Layers and Masters and Beyond the Uniform Blend. An extrapolated result can begin that work, but it should not be mistaken for an independently checked endpoint. Reinspect the intervals after adding it: the new master now participates in the designspace and can change the blend around it.