Bracket Trick with Width Axis only

is there a way to use the bracket layer for the width, but not the weight axis?

It is probably easier to have a separate .wide glyph and switch it with a custom parameter using x.wide=x in the affected instances.

hmmm, but what if the glyph has to be interpolated for multiple instances. For example if I want to interpolate between a ultra condensed and a normal with and the ultra condensed has a different pathing (for multiple glyphs)?

That sounds like a perfect reason to use alternate glyphs and switch them with a custom parameter. I’m doing this with Ø and ø in a font right now because the design of the slash changes to suit the different widths. So Oslash and Oslash.wide exist in all masters and different instances use the different versions. I do the same with the dollar, ruble, and rupee signs, creating multiple glyphs with different styles of bars in each master and only using one in each instances.

The bracket trick is meant for this kind of adjustments. I have a look if I can find a way to make it work for the width, too.

1 Like

Is there any update on this? I want to use bracket trick for width (and possibly the third axis too). Problem with .wide swapping is that it only supports specific instances. I don’t know precisely how bracket glyphs are handled in Variable Fonts, but glyph swapping doesn’t seem VF friendly.

It seems it’s technically possible and more of a notation problem.

Bracket layers are not supported (yet) in VF.

I was thinking about how to improve brackets for more than the weight. My best idea is to extend the syntax to be more like a query: [<49,>150,]. And you can leave out the value for one master: [,>150].


How can one swap glyphs in VF then?

The new syntax looks good. If you are using weight and custom axes, it should look like [>200,,<80], right?

For VF, it needs some GPOS variations. Glyphs does not support that, yet. Or, you put two brace layers very closed and shift the outlines in the gap.

and your example is good.

But that creates a gap in the design space (no matter how small), right?