Creating Hair Space, Thin Space, Figure Space, Punctuation Space

Hey designers!

There’s a lot to learn when it comes to creating a font. :expressionless:

I was just wondering if anyone knows if there is a method/calculation/process/technique to determining the Hair Space, Thin Space, Figure Space and Punctuation Space. How do we go about creating these? Is it just as simple as generating a new glyph? I’m sure there’s rule for such things, and I’m sure there’s equally a way to break the rules too, but I thought I’d ask?

If you add separator glyphs from the Separator > Other category, after making your font it will calculate them based on certain metrics (automatically)


Or you can use this amazing free script by @Mekka


Hey team! Thanks for getting back to me and for letting me know :slight_smile: I’ll use these tricks from now on. I was wondering if there was any ‘theory’ behind how long they should be. :+1:

Some things are written in the Unicode annotations. If you have not installed UnicodeChecker yet, do it now. In Glyphs, you can access the info for a glyph by clicking on the arrow next to the Unicode field, and it will open in UnicodeChecker.

1 Like


As far as I’ve come to learn the theory, it’s that all spaces and dashes are based on the “em-width”. The Em width is equal to your type height (a 10pt type has a em width of 10pt).

In Glyphs, your em width is what you’ve entered in the font info (“Units per Em”). The standard value is 1000 Units per Em. Below is the theoretical measurements based on the Em width. Note: all numbers are as everything else in typography: guidelines.

100% Em space and Em-dash:

50% En space and En-dash

25% Space and Hyphen

12.5% Thin Space

4% Hair Space

Hope it helps.

1 Like

This is the theory.
In practice, most of them need to be adjusted. A bold or condensed type needs narrower spaces. And a condensed en-dash hast to be shorter then 50% of the UPM.

Yaaay! I have the theory, thank you @mekkablue, @Eml and @GeorgSeifert for giving me the theory behind these elusive spaces. Really helps with my font design :blush: