Components and Anchors

Build accented glyphs from other glyphs. Anchors hold the pieces together, and marks follow their base.

StatusImplemented
StabilityStable

Components

A component places another glyph inside this one. Edit the base glyph and every glyph using it follows.

Add one from the canvas context menu and type the base glyph name. Select and drag a component with the select tool, and double-click it to open the glyph it points at. Delete removes it.

Component commands
Decompose ComponentsCmd+Shift+D. Replaces every component with its outlines.
Decompose OneContext menu. Only the component under the pointer.
Lock / UnlockContext menu, or the toggle in the Coordinates panel.

The Related section of the right panel lists the glyphs this one uses as components and every composite that uses it, one click away each.

Anchors and Auto-Alignment

An anchor is a named point that says where a mark attaches. Give the base glyph an anchor, give the mark a matching one, and the mark places itself.

Composites align live. Move the anchor on a base glyph and every accented glyph built from it follows immediately. A component locked to an anchor refuses to be dragged, because its position comes from the anchor rather than from you. Use the Lock and Free toggle in the Coordinates panel to override that.

A component added from the context menu arrives anchor-locked, so marks snap to their anchor without extra work.

Editing Anchors

Add and delete anchors from the canvas context menu. Select one with the select tool and drag it. For exact coordinates, use the Coordinates panel: with an anchor selected, its X and Y fields address the anchor. Its name is a field in the same panel.

Anchor names drive generated feature code. Entry and exit anchors produce cursive attachment, anchor families produce mark and mark-to- mark positioning, and caret_1, caret_2 and so on produce ligature caret positions. See Feature Code.

Smart Components

A smart component carries its own axes, so one part glyph can hold a range of shapes. A single serif component can be short at one end of its range and long at the other, and each placement picks a value.

To make one, use Smart Axis on a part glyph and give it an axis as Width,0,100. That writes the glyphsLib smartComponentAxes entry, marks the default drawing as the bottom pole, and seeds a .top layer as the other pole. Edit the poles through the swap arrows.

Place the part in a glyph and set its value in the Coordinates panel. Interpolation across several axes uses the corner-delta model described in Masters and Interpolation.

Smart components use the glyphsLib keys, so a source that came out of Glyphs keeps working and a source that leaves Runebender takes them along.

Corner Components

A corner component reshapes a node rather than adding a shape: a chamfer, a flare, a spur applied consistently everywhere it belongs.

Apply one from the context menu at a node, naming it chamfer or _corner.chamfer. It is applied in every master, because all masters must keep the same structure to interpolate.

Joining Scripts

Glyph → Check Joining is for cursive scripts. It measures each positional form’s connecting stroke at the joining edges. Initial and medial join at x = 0; medial and final join at the advance. It then finds the font’s common band and selects every form that misses it.

See Text and Shaping.