Glyphs 3.1.1 released

by Rainer Erich Scheichelbauer

10 November 2022 Published on 25 November 2022

Maintenance update with some new OpenType goodies.

So here is the latest iteration of our favorite font editor, Glyphs 3.1.1. Choose Glyphs > Check for Updates… and follow the on-screen instructions to get it on your machine.

Ventura compatibility

For one thing, Glyphs 3.1.1 sports improved macOS 13 Ventura compatibility. Glyphs 3 works fine in Ventura, however we did notice some instabilities in the File > Print dialog (Cmd-P), and in the color picker. Those have been fixed in 3.1.1. If you spot other reproducible issues in Ventura, please let us know in the forum, and we’ll see to it.

Improved UI

Thanks to the continued input you have been providing, we were able to loosen some knots and widen some bottlenecks, and are happy to report that we have been able to improve UI performance in many cases.

Especially when there are many glyphs involved, you will notice an improvement, e.g., when you are selecting a very big list filter, a common scenario in CJK design. Or note that pinch-zooming has gotten smoother. Many thanks to our Korean users for pointing us into the right direction on this one.

And in Edit tabs, Glyphs now better preserves the relative viewport position after switching masters. No more shifting after switching back and forth a few times.

Oh, and you will notice that we improved sorting of items in the Filter menu. Much easier to keep oversight now.

OpenType features

There is something we have had it in Glyphs versions for quite a while already. Yes, we have secretly been testing new feature code extensions behind your back, and now is a good time to announce them publicly.

Simple del

We already announced the delete rule a while ago. To remind you, this example deletes b between a and c:

del a b' c;

What we did not tell you though is that it also supports the simple (non-contextual) syntax. So this example deletes a altogether:

del a;

… which is a good way of getting rid of intermediary connector or constructor glyphs.

Contextual one-to-many

A multiple substitution (one-to-many) can be contextual as well:

sub a b' c d by b.left b.right;

One-to-many with classes

A multiple substitution (one-to-many) rule can have classes in both simple and contextual form:

sub @Uppercase @Letter' @Uppercase by @LeftForms @RightForms;
sub @Letter by @Letter.left @Letter.right;

Needless to say, you need to make sure the classes have the same number and order of glyphs.

Interpolate numbers in designspace

And the best one I kept for last. You can contextualize numbers inside the designspace. And the numbers interpolate. Any number of axis positions are possible. For instance, a single adjustment as it may appear in the cpsp Capital Spacing feature:

pos @Uppercase 10 (wdth:80) 20 (wdth:200 wght:220) 30;

By default it is simply pos @Uppercase 10; but at (internal) width axis coordinate 80, that extra spacing changes to 20. And at width 120 and weight 220, it becomes 30 spacing. All you need to do is prefix the additional spacing with a parenthesized sequence of axis tag, colon, axis coordinate. Multiple coordinates are space-separated.

It works for complete value records (position x y, advance x y) as well:

pos @Figures colon' <10 50 20 0 (wdth:70) 30 40 60 0 (wdth:200 wght:220) 5 10 10 0> @Figures;

The coordinates can, but do not have to be the same as those of the masters. Numbers interpolate for both static and variable font exports.

Wow. That was quite a mouthful. But it is not everything. In further OT feature news, the warning icons in the feature list of File > Font Info > Features are more responsive and reliable now. Shape switchings with the condition keyword work better now in edge cases. Add to this a number of minor improvements and fixes in the feature compiler.


A few plug-ins have been added to Window > Plugin Manager. Take a look and see if there is something for your workflow too:

  • Context Manager by Hugo Jourdan
  • WoLiBaFoNaGen (WordListBasedFontNameGenerator) by Jens Kutílek
  • A bunch of new export plug-ins by mekkablue: PS Export, EPS Export, FEA Export
  • Color Toner (Show Darkened Colors)

Speaking of extending, if you are using a custom Python installation, make sure you read through the Extending Glyphs tutorial.


Since the release of 3.1, there have been new tutorials added to the Learn page:

And over the summer, many other tutorials have been updated for Glyphs 3. Many thanks to our intern Eva who helped make this happen.

And more…

Many minor things have been improved, among which:

  • Removed mark filtering for Burmese (thx Ben).
  • IMproved Spanish localization (thx Juanjo).
  • Fixed an issue with some Japanese glyphs.
  • Fixed an issue with kerning exceptions in RTL scripts.
  • Fixed export of old-style kern table.
  • Fixed a rare issue with mark positioning.
  • In Font Info > Exports the Instance as master function now properly uses the Axis Location parameter of the instance.
  • Fixed issue with smart components that use numbers as property names.
  • Improved SVG export from color layers.
  • Improved remove-overlap algorithm.
  • Fixed reading and writing of instance userdata (thx Stephen).
  • Improved QuickLook.

And as always, we managed to improve overall app stability, including fixes for some rare but nevertheless rare crashes.