Making a Font / Typeface

I've been making fonts / typefaces (distinction) for years as a hobby. This article will act as an introduction to my approach and link to deeper dives into the steps it takes to make your own.

I'll be using Geo, the typeface I'm developing right now, as an example of my approach. Developing typefaces can be quite a formalized process within the larger design houses, but really it's a craft and can be approached in many different ways. If you see anything that you can suggest an improvement on, please let me know.

Steps for Making a Font

With simplicity in mind, we'll be specifically designing a font here. This can later be expanded into a full-fledged typeface with bolds, italics and other styles.

Choosing a Toolkit

I'm a massive fan of open-source software. It's free to use, which means anyone with a computer has access to it, no matter what their income or relative wealth. It also keeps vital projects open to collaborative development. If a piece of useful software is released closed source and the company shuts down, the work and the software is lost forever. If it's open, it can live as long as people find it useful. With that in mind, I'm sticking to three pieces of open source software:

  • Inkscape - This is a vector editing programme which we'll use to create the letters.
  • Birdfont - This is a font creation programme which is very handy for live testing, spacing, and kerning.
  • Fontforge - This is a font creation programme which we'll use to test and deploy our font.

Note that in the above, either Birdfont or Fontforge could be used for the whole process. The reason I don't go that way is that neither are great for drawing (hence Inkscape), Fontforge doesn't have a preview for viewing the lettering on the fly (hence Birdfont), and Birdfont lacks some of the output tools and glyph tools of Fontforge. Fontforge is the OG font creator, but can be a little difficult to work with.

As I say, this is just the way I work. If Fontforge checks all the boxes for you, just work with that.

Here's the general process, you'll end up going backwards and forwards between steps as you work:

  1. Make your glyphs or characters in Inkscape
  2. Copy them into Birdfont and start testing them
  3. Work on your letter spacing (or tracking) in Birdfont
  4. Work on your kerning (spacing for particular pairs) in Birdfont
  5. Finish and output the final result using Fontforge

First Glyphs and Design Approach

A fairly standard starting place for type design is using the characters 'o' and 'n' to get the feel of the lettering. The most important thing with this type of design is consistency, so when we decide how tall the lowercase 'o' is, we're also choosing how tall the 'a', 'c', 'e', etc. are. If they have different heights, the result looks amateurish and jarring.

Next Glyphs

Spacing, Kerning, and Testing

Font or Typeface

The distinction isn't so important in modern graphic design, but is quite important when designing. For type design, the general family of fonts is a typeface, and a font in the family is a specific size or style. For example, Times New Roman is a typeface, while Times New Roman 24 point italic is a font. This is getting muddier and muddier with the rise of variable fonts, but will still affect your approach. The design that I'm working on at the time of writing has ended up with two weights (light and medium), so I have two fonts in one typeface.