Kerning Classes Naming

I’m working on a client’s font. He has named his kerning classes:

This is not a format that I use. The names seem to get truncated to _A, _B, etc. I’ve searched for a definitive description of what is acceptable for kerning class names and have come up empty, other than a very general “kerning class names may contain an upper or lowercase character, an underscore or a period”, but nothing that explains why his procedure doesn’t work.

Can you give a better description of what a kerning class name can contain or point me in the right direction to research it?

I just tried it and it worked fine.

But it renamed the classes to _A and or _A1—which isn’t what the client wanted.

Is there a written spec somewhere that defines what kerning class names can contain? Can they contain 2 underscores, as in “_A_left” or are you limited to a single underscore as in “_A”?

I don’t understand. What was it that renamed the kerning group?

I exported the client’s .vfb file from FontLab 5 to a Glyphs file. Opened the file in Glyphs and edited otf features, then I sent it back to FontLab 5. When I open the file in FontLab again, instead of kerning classes being named “_A_left”, “_A_right”, “_B_left”, etc., they are named “_A”, “_B”, “_C”, etc.

To be fair, if I open one of his .vfb files and generate an .otf file from FontLab, then open the .otf file, the kerning class names have changed in the same manner…and there are more pairs in the .otf file (which i assume means that some of the kerning classes are being expanded), but there are also some pairs that are missing, which lead me to believe that while “_A_left” is being truncated to “_A” in some case the second class, “_A_right” is being ignored, since its name can’t be truncated to “_A” because that class already exists.

At first I thought it was a FL issue, but when I exported to Glyphs and then brought it back to FL, the same thing had happened.

That’s why I was asking about kerning class naming conventions. I wondered if it was an OpenType kerning class naming convention that was causing the problem, rather than being an app specific issue.

The .otf does not contain the class names. So importing it (in Glyphs or in FLS, the class names will be constructed by the first glyph in the class.
There are better ways to move data between apps. There is script that can read/write .glyphs files from within FLS and there is a free tool from FontLab ( that can convert .vfb to .ufo that then can be opened in Glyphs.

Otf didn’t enter the equation during the trip back and forth.

But maybe I wasn’t clear enough…what I was asking originally was are you aware of what the requirements are (what you are and aren’t allowed to do) when naming kerning classes.

I wasn’t looking to discuss Glyphs’ functionality…I explained what had happened only so that you would understand why I was asking about naming kerning classes.


Class names should stick to A-za-z0-9._ (there might be a few more allowed characters but stick to those to be sure).