Reusing shapes: corner components

en fr zh

26 July 2022 Published on 23 February 2016

Corner components are pretty much like magic for creating serifs. Here’s how we do that.

So, you read all about serif components and their benefits. And they are great for slab serifs. But what if you do not want to mix components and paths, because you do not want to risk accidental shifts? And, what if you want bracketed serifs with a smooth transition, rather than clunky slabs?

There’s a simple solution for that problem: corner components. They are connected to individual nodes in your glyph, like this:

Building the corner components

All we need is two new glyphs with special naming: A corner component must start with _corner and have an arbitrary dot suffix. The underscore at the beginning of the name ensures that the glyph will be created as non-exporting. Add two new glyphs, and call them, for example, _corner.leftSerif for the left serif, and _corner.rightSerif for the right serif. The best way to do this is Glyph > Add Glyphs (Cmd-Shift-G), typing _corner.leftSerif _corner.rightSerif, and pressing the Generate button.

But let’s begin with drawing a serif. Our left serif could look like this:

As you can see, the serif is located largely outside the glyph’s width, and the part where the serif should stick to the stem is on the left sidebearing. The same goes for the right side:

There are two things you need to pay attention to: Firstly, the path direction needs to be counter-clockwise. The arrows at both ends of the path indicate the path’s direction. If you want to flip the path’s direction, you can do so with Paths > Reverse Contours (Crtl-Opt-Cmd-R), or via Reverse Selected Contours in the context menu of a path.

Secondly, the vertical end point should be on the left sidebearing, and the horizontal end point on the baseline.

Adding the corners

Now, how do we get our serifs to stick to our glyphs? Easy. Go to your glyph and select a corner node, then right-click on it to open the drop-down menu, and select Add Corner.

In the dialog that follows, select the serif, and voilà, your serif gets injected into the path! You can also copy and paste multiple corners, if you have a lot of serifs.

Corner components on diagonal stems

Corner on diagonal stems are adjusted automatically, by slanting the outermost segment of the corner component into the angle of the stem. Glyphs needs to do some guessing, and can’t always guess right, so sometimes you will need to adjust the alignment of the corner component. You can do that in the grey info box:

Use the left alignment for left serifs, and the right alignment for right serifs. The center alignment can be useful for ink traps. Spoiler alert: you can’t only use corner components for serifs, but anything you can hang on a corner. Like, spikes, or something.

You can add anchors named left for the left serif, and right for the right serif. The left/right anchors control the way the corner component is inserted. The further away from the origin point, the bigger the adjustment:

For bracketed serifs, the anchor usually has to be a bit above the visual thickness of the serif.

In case of slab serifs, the left/right anchor has to be in the corner of the serif:


If you click on your corner component node, you will see a second grey box, next to the grey glyph info box beneath your glyph. If you can’t see the nodes, go to View > Show Hints. That is because technically, corner components are hints. There you can change a few things regarding the serif. In our example, we changed the width of one serif, by changing the percentage here:

Mirroring serifs

You can mirror your serifs horizontally and/or vertically. That way, if your serifs are symmetrical, you only have to draw one serif, and mirror it, where necessary. All paths will be reversed, and anchors adapted accordingly, i.e., left anchors will be treated as right anchors and vice versa. You can do that by putting -100% for the width or height in the grey info box of the serif:

More tricks with corner components

You can actually do much more fun things with your corner components. All you need to do is play around a bit with those left and right anchors. For example, you can create funny inktraps easily. Or, you can experiment with shapes:

You can even add corners to round shapes, all you need to do is double click the node you want to add your corner to (it should be blue). Have fun!

Complex corner components

You can add any number of closed paths in a _corner glyph to compliment the open corner path. Their path direction is preserved, of course. So, now you can make even more cool things with your serifs, like the (long overdue return of the) page curl:

Well, pretty easy. So, have fun with your serifs!

Update 2022-07-26: updated title, related articles, minor formatting.