Components and Anchors
Build accented glyphs from other glyphs. Anchors hold the pieces together, and marks follow their base.
| Status | Implemented |
|---|---|
| Stability | Stable |
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.
| Decompose Components | Cmd+Shift+D. Replaces every component with its outlines. |
|---|---|
| Decompose One | Context menu. Only the component under the pointer. |
| Lock / Unlock | Context 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.