Switch X Dial on Variable Fonts

Is it possible to have an Axis working as an On/Off Switch instead of a Dial in a Variable Font?

I’m making a font where the Italic doesn’t match the Upright; I wanted both the Italic and the Upright Variable Font to be available under the same Family Name but didn’t want to go through the trouble of making both a Slanted and an Italic version of a lot of Glyphs.

(I’ve already looked through a lot of tutorials and forum posts about dealing with Italics and break-characters, layers, etc. I’m guessing the answer is ‘no’ but I just wanted to clear my options)

1 Like

If the italic can’t be varied, I would recommend to put them in two separate fonts.

What do you mean by that?

I mean having 2 Slanted and 2 Upright versions of every glyph that doesn’t share the same structure between the Italic and the Upright (ex: two-story-a-upright, two-story-a-slanted, one-story-a-upright, one-story-a-slanted)

I don’t understand. Why do you need that?

That (from my current understanding of how these things work) would be a viable way of keeping the Italic and the Upright version of the Variable Font under the same Family Name (but it’s not something I’m willing to do)

Can you make an axis with only two values?
Let’s say
Italic: 0 and Italic: 1
And Italic 1 is your whole Italic font but as a bracket or brace layer (I always forget which is which)

That way there is no interpolation but a switch from upright to Italic.
Recursive by Arrowtype has a similar function where the letters slant but at a certain point on the axis (I think from -14 to -15) it swaps the slanted letters for the true italics.
If you only have 2 values on your axis this should work right?

The problem is that most apps will still show a slider in the UI. And putting the italic in the same variable font will mess with the Italic settings in some apps.

If you don’t like to duplicate some glyphs, you can import the upright file into the Italic with an “Import Font” custom parameter. That way, all glyphs that are missing in the Italic will get the ones from the upright.

I’ve tried that… I’ve put ‘redundant’ points to match the ‘point count’ on the glyphs with different structures just so I was able to properly export the font.

But, like @GeorgSeifert said, the Illustrator UI would give me decimal values on the slider. Basically, the ‘user experience’ is the same wether you’re using 0–1 or 0–100.

Have you considered switching glyphs to their italic forms using an OpenType feature such as ital (or, for better application support, ss##)?

You would still have only one font, and glyphs that do not change in the italic do not need to get stored twice. Also, with this approach, you don’t have to think about glyph compatibility between the upright and the italic glyphs.

Well that was always going to be the case :smiley:

But brace layers don’t have to be compatible since they are replacing right? Then it should work. You can set the brace layer to only show at value 1, everything from value 0 to 0.999 can just be the upright.

But I have to admit that @GeorgSeifert is right, it’s just not the best idea to put Upright and Italic inside one variable font.

Yeah… from a font-making perspective definitely not. I was just kind of bummed trying to figure out a way because from a font-using perspective having Italics and Uprights under the same Family Name is very useful.

(plus, the whole Switch X Dial thing also seemed like a good idea… might not be possible right now, but it would be very nice if it became possible one day)

You can still have them under the same family name. It was possible for many years. Have a look at the naming tutorial.

And if you like to switch an incompatible shape, you need to use bracket and not brace layers.

How exactly? I’ve read the tutorial many times, but whenever I try to export 2 different Variable Fonts (1 from the Upright Glyphs file, 1 from the Italic Glyphs file) with the same Family Name (but with different names for Masters and Instances) they end up one replacing the other whenever I try to install both at the same time

1 Like