Multidimensional bracket layers

It’s been mentioned that Glyphs supports bracket layers for more than one axis. Is there any guidance on how these actually work and how to implement them? Additionally what version of Glyphs supports this?

It has been supporting multidimensional bracket layers for a while. It works the same way, just that more conditions have to be met at the same time. They kick in when all the comma-separated values in brackets are exceeded.

Thanks for the info! Does it work the same for reverse bracket layers?

For context I was trying out 2D bracket layers for a weight and slant axis (to change from double story to single story “a”) but couldn’t get the reverse brackets to work

Never tried, but should work the same.

Just to clarify… the layer name would look something like this:
Condensed Thin[100, 50]
where 100 is the weight and 50 is the width.
Is that right?

@Jscruggs Yes that is what it would look like. I’m not sure that we need to have the layer name before it anymore though (i.e. just naming the layer “[100, 50]” would work)

@mekkablue I have got it working now within the preview panel but it does not export properly to a variable font. When exporting to a variable font it properly adds a new glyph with the suffix “.varAlt01” but it fails to switch out the two glyphs. Is there an issue with my setup or does Glyphs App not yet write feature variations for multidimensional bracket layers?

This is in the standard Glyphs App version 2.5.1. The cutting edge version crashes trying to open the file

Just doing [100, 50] is not really helpful for breaking in the second master. Currently Glyphs respects the second number but not for breaking.

I plan to change the bracket layer syntax from [100]/]100] to [<100, >50]. So you can more explicitly say for what range the layer is made for.
So [100] would be [>100] (or [100] for compatibility with older files)
and ]100] > [<100].
And then you can specify it for each axis.


Have you implemented this yet?

Not yet. I’m working on it.

It’s generally working with the two-axis variable font I’m working on, but I’ve run into a snag:

The bracket I’m using ([550]) is only along the weight axis for six masters, if it matters. It’s working for most of the glyphs that I’m using the bracket trick with. (I’m new to using this technique, FWIW.)

The following characters all run into this issue: centsuperior, dollarsuperior, centinferior, dollarinferior

With the current implementation of the bracket trick, how would someone enable feature variations to take effect in a 2 dimensional designspace where the axes have an inverse relationship?

As an example, for something with width and weight, your designspace would be a square. Within this designspace you could have an alternate glyph sub in above a certain weight and width location [600, 75] or you could have it sub below or until a certain weight and width location ]600, 75], but is there currently a way to have the substitution take effect when [<600, >75]? (using the new syntax like @GeorgSeifert did above)

I have this problem also. It’s working properly on the variable font preview but it’s not working on the font view, axis praxis, etc…

Even so, I’m not sure if my set up is correct.
I want to the see the changes happening between 400 and 700 (width)


Any help?

Hi, sorry to bug about this, but I could really use this. Has this, or a workaround, been implemented for variable font exports yet? It still only works for the first axis for me.

This will be available, soon.

1 Like