Accéder au contenu principal

Smart Components in FontCreator: Reuse Adjustable Glyph Parts

written by Erwin Denissen, published June 26, 2026

Edition: Smart Components are part of FontCreator Professional. Essentials opens and edits fonts that already use them. The comparison chart shows what each edition includes.

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 glyph editor showing one Smart Component shoulder reused in lowercase n, m and h, with both shoulders in m selected.

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.

Two versions of lowercase m with measurements: built from two unchanged n-shoulders, the counters are 217 units; with the shoulder at Width 75 they are 198. The stems are 92 in both.

The same shoulder twice: unchanged, m’s counters stay as wide as n’s (217 units) and the letter comes out too wide; at Width 75 they narrow to 198 while every stem keeps its 92 units.

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

Designers rarely draw a shoulder from scratch — they cut it out of an existing n, and FontCreator does that well.

Open n and cut the arch off the stem with the Knife, just left of the join. Select the arch and choose Turn into Component… from the right-click menu, and name it _part.shoulder. FontCreator creates the glyph and leaves a component in its place in n.

In _part.shoulder, give the arch’s left end a short tongue that reaches into the stem without touching the stem’s top, so the shoulder overlaps whatever it joins: the stem in n and h, the previous arch’s leg in m.

Watch the stem top. The shoulder may overlap the stem, but it must not include the top of the stem. In m, the second shoulder starts on the first arch’s leg, where there is no stem top; a shoulder that carries part of a stem top puts a bump between the arches.

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).

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

The Default value is where your master drawing sits on the axis; each smart layer is the drawing at another position, usually an extreme. Your master is the widest shoulder, so change Default from 50 to 100.

FontCreator Smart Axis dialog with Name Width, Minimum value 0, Default value 100 and Maximum value 100, next to the source glyph _part.shoulder and its Masters and Layers panel.

The source glyph _part.shoulder gets a Width axis; the master drawing sits at its Default 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

In the Masters and Layers panel, right-click the master row and choose Add Smart Layer…. FontCreator creates the layer as a copy of the master outline, so the two start out compatible, and opens Smart Layer Properties. Name the layer (for example Narrow) and drag the Width slider to 0: this layer is the drawing at the narrow end of the axis. The new row appears under the master as Narrow [Width=0].

FontCreator Smart Layer Properties dialog with the layer named Narrow and the Width axis value set to 0.

Each smart layer records where it sits on the axis — here the narrow end, Width 0.

Click that row to edit the layer, and move the existing nodes until you have the narrow shoulder. Don’t add or delete nodes. Change the proportions, not the structure: the same contours, point order, curve types, start points and directions.

The wide master and the narrow smart layer of _part.shoulder side by side, with the same points in the same order.

The master (left) and the Narrow smart layer (right): the same points, deliberately drawn wide and narrow.

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 with Glyph ▸ Insert Component… (or right-click ▸ Add Component…). Each host is a stem plus one or two shoulders that overlap the stem.

Select the placed component and a box at the bottom of the glyph editor shows one row per smart axis — Width [0 - 100] (100) — with a slider and a number box. Values outside the range are allowed, which extrapolates beyond the drawn extremes.

  • n — Width 100
  • m — both shoulders at Width 75
  • h — Width 100, the same arch as n; only its stem is taller

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

At export, with the source glyph set to Include in Exports ▸ None, the shoulders become ordinary contours. For a static font, set Contours: Remove overlap in the export settings; variable fonts normally keep overlaps.

FontCreator glyph editor with the right-hand shoulder in lowercase m selected and its Width set to 75.

Two references to the same source in m; select either one to set its own Width.

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.

When you add the Crotch Depth smart layer, leave Width at its default in Smart Layer Properties and set only Crotch Depth to its extreme. Each smart layer describes one axis, and FontCreator combines them, so a reference can be narrow and have a deep crotch without a separate layer for that combination.

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.

The image shows this with the radical 口 in 口, 吕, 品 and 回. One source glyph, _part.kou, has three smart axes. Width and Height are measured in font units, so every value is a real size. Feet decides whether the side strokes reach below the bottom bar, as in a free-standing or bottom 口, or whether the box is closed, as in a 口 on top or inside. Each occurrence sets its own values, and the strokes keep their weight at every size — even the small 口 inside 回, which a scaled component would make visibly thinner.

FontCreator showing the radical 口 as one Smart Component reused at different proportions in 口, 吕, 品 and 回, with the Width, Height and Feet values of one occurrence in 品.

One radical, four characters: each occurrence sets its own width, height and feet, and the strokes keep their weight — even the small closed 口 inside 回.

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 sliderThe smart layer was left at the axis Default in Smart Layer PropertiesRight-click the smart layer row, choose Properties, and set its axis value to the extreme it represents
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