Terug naar hoofdinhoud

FontCreator Tutorials

Smart Components in FontCreator: Reuse Adjustable Glyph Parts

written by Erwin Denissen, published June 26, 2026

Smart Components let you reuse one designed part across many glyphs while adjusting its proportions wherever it appears. A source glyph defines one or more local axes — such as Width, Height, Weight, or Crotch Depth — and carries compatible alternate layers at key positions on those axes. Each place you use the component can then choose its own values.

The feature was originally developed for CJK radicals and other writing systems that reuse many related parts, but it is equally useful for Latin shoulders, counters, bowls, terminals, and recurring symbol or icon elements. In short: Smart Components were designed for reusable complex-script parts, but they help whenever one designed element must recur at different proportions.

Unlike a regular component, a Smart Component does not simply reuse or geometrically scale one fixed outline. It interpolates between variants you deliberately designed, so stroke weight, curves, and proportions stay under your control.

FontCreator showing an adjustable Smart Component shoulder reused at different widths in lowercase n, m, and h.

One adjustable shoulder reused in n, m, and h, with each place it is used choosing its own proportions.

Which tool should you use?

Smart Components are one of several ways to reuse or vary shapes in FontCreator. Pick the right one for the job:

UseBest choice
The part should stay exactly the same everywhereRegular component
The same part needs design-aware width, height, weight, or shape changesSmart Component
A corner, cap, or serif must follow the path geometryPath Decoration
The whole typeface changes across weight, width, or another family axisFont masters / variable-font axis

1. Why use a Smart Component?

Suppose you have drawn one lowercase shoulder — the arching stroke that rises from a stem and curves back down — and you want to reuse it in n, m, and h.

A regular component can do this: it places a live reference to your shoulder in each glyph. But its internal design is fixed. You can move, scale, or otherwise transform it geometrically, yet scaling a shoulder to a new width distorts its stroke weight and curvature. The two shoulders in m usually need to be a little narrower than the one in n, and the shoulder in h may want a different crotch depth. One fixed outline cannot satisfy all three without a compromise somewhere.

Comparison of fixed and smart component shoulders in lowercase n, m, and h.

Reusing one unchanged shoulder leaves too much space in m; Smart Component values let each occurrence be tuned.

A Smart Component solves this. It is still a live reference to a source glyph, but instead of one frozen outline it carries variants you deliberately drew and interpolates between them. Draw a wide shoulder and a narrow shoulder, and every place you use the component can pick any width in between while the stroke weight and curve stay controlled. That is the real difference: a regular component reuses one fixed design and transforms it geometrically; a Smart Component varies a design you drew on purpose.

2. Create the source glyph

Create a glyph to hold the reusable shoulder and give it a name that marks it as an internal part, for example:

_smart.shoulder

or:

_part.shoulder

The leading underscore and the .part naming are conventions borrowed from Glyphs, and they make projects that move between the two editors easier to read. The underscore itself does not stop the glyph from exporting in FontCreator. To keep this construction glyph out of the finished font, right-click it in the Font window and choose Include in Exports ▸ None (see step 8).

Draw your normal — or widest — shoulder on the master layer. This is the shape everything else will interpolate from.

FontCreator Masters and Layers panel showing a Width smart axis for the source glyph smart shoulder.

The source glyph defines a local Width axis for the reusable shoulder.

3. Add one Smart Axis

With the source glyph open, go to the Masters and Layers panel and choose Add Smart Axis…. In the Smart Axis dialog, set:

  • Name: Width
  • Minimum value: 0
  • Default value: 100
  • Maximum value: 100

Starting with a single axis keeps things clear. A source glyph can define several smart axes — you will add a second one later in this tutorial — but get the basic component working first.

4. Add the alternate layer

Now give the axis something to interpolate toward. In the Masters and Layers panel, choose Add Smart Layer… to create the alternate layer.

Do not redraw the shoulder from scratch — that almost guarantees incompatible outlines. Instead:

  1. Copy the master outline into the new smart layer.
  2. Move the existing nodes to make the shoulder narrower.
  3. Keep the outlines compatible: the same number of contours, the same point order, the same curve types, the same start points, and the same direction.

Because you edited a copy of the master rather than drawing a new shape, the two layers stay structurally identical and interpolate cleanly.

Wide and narrow compatible outline layers for a Smart Component shoulder in FontCreator.

The master and alternate layers use compatible outlines but hold deliberately designed wide and narrow shoulders.

If FontCreator reports that the layers are incompatible, they no longer match in contour count, point order, curve type, start point, or direction. Use Show Compatibility in the Masters and Layers panel to see where they differ, and Make Compatible to help bring them back into line.

5. Insert it into n, m, and h

Add the source glyph as a component in each host glyph. When you select the placed component in the glyph editor, a slider appears for each of its smart axes — drag the slider (or type a value) to set what this particular instance should look like. Every reference keeps its own values.

  • n — Width 100 (the full shoulder)
  • m — each of the two shoulders at roughly Width 75, so they sit a little narrower
  • h — an appropriate width for its proportions

The important part is m. Add two references to the same source glyph inside it, and give each its own Width value if that produces the best design. This is exactly what a regular component cannot do: one source, reused twice in a single glyph, each instance tuned independently.

FontCreator glyph editor showing separate Width slider values for two Smart Component shoulders in lowercase m.

Two references to the same shoulder source inside m, each with its own Width value.

6. Optional second axis: Crotch Depth

Once the one-axis version works, you can add more control. Add a second smart axis — for example Crotch Depth — when the shoulder in h needs a lower or deeper join than the shoulder in n:

Crotch Depth

Add a matching compatible smart layer for the new extreme, exactly as in step 4. Each reference now has a slider for both Width and Crotch Depth, and can set them independently. This shows that smart axes can control far more than width alone.

7. Why Smart Components matter for CJK

Smart Components were first designed for Asian scripts, and CJK is where they pay off most.

A single radical can appear in dozens or hundreds of ideographs — but almost never at the same proportions. Depending on the character it sits in, the same radical may need a different width, a different height, a heavier or lighter stroke weight, a longer or shorter arm, more or less internal spacing, and different overall proportions to balance the rest of the character.

Drawing a fresh copy for every occurrence is unmaintainable, and a regular component forces every instance to share one fixed design. A Smart Component gives you the middle path a large character set needs: one controlled source, tuned locally at each occurrence. Design the radical once, then adjust each placement by moving along the smart axes instead of editing outlines. The same approach applies to Korean base components and any other script that reuses many related parts.

FontCreator showing one CJK radical Smart Component reused at different proportions across multiple ideographs.

A CJK radical reused across several characters, with each occurrence adjusted to fit its local structure.

8. Projects, exchange, and export

Smart Components are an authoring feature. Here is how they travel:

  • FontCreator project files preserve the complete, editable Smart Component setup — source glyph, smart axes, alternate layers, and every reference's values.
  • .glyphs version 3 files preserve the smart axes, alternate layers, and coordinates when you round-trip a project between FontCreator and Glyphs.
  • Smart axes are authoring controls, not OpenType variation axes. They exist so you can adjust parts while designing. They are never exposed to the people who install your font — an application using the exported font gets no Smart Component slider.
  • When you export, smart components are resolved into ordinary outlines. For both desktop fonts (ttf/otf) and web fonts (woff/woff2), FontCreator bakes each reference's interpolated shape directly into the glyph, so the exported font contains no smart components — just the finished outlines. Because of this, remember to exclude the internal source glyph from export: right-click it in the Font window and choose Include in Exports ▸ None.

Troubleshooting

SymptomLikely causeFix
FontCreator reports incompatible outlinesThe master and alternate layers differ in contour count, point order, curve type, start point, or directionUse Show Compatibility to find the differences and Make Compatible to resolve them
A reference does not change when you move a sliderNo smart layer exists for that axis, so there is nothing to interpolate towardAdd a compatible smart layer for the axis (step 4), then set the value again
The Smart Component source glyph appears in the exported fontThe source glyph is still marked for exportRight-click it in the Font window and choose Include in Exports ▸ None

What to read next