Brace trick in two dimensions?

I’ve been considering adding a contrast axis to my current type family which mapped to the well-supported Width parameter (width=0 is low-contrast, width=100 high-contrast). Currently, I’m using two masters (Hairline at weight 10, Bold at weight 150) with brace layers for some glyphs to restrict the excessive thinning needed in some Bold glyphs to the heavy weights only. I’m thinking of keeping the Hairline master fixed for all contrasts and just have an extra Bold master for high contrast.

How should I proceed, then? Duplicate the Hairline master, call it width=100, then duplicate all brace layers and call them, e.g., {48; 100}? Can I keep my existing {48} layers for the low-contrast, or would I have to rename them {48; 0}? Alternately, should I keep the single Hairline master {10; 0} and interpolate between that and the high-contrast Bold master {150; 100}? Would I then have to use something like {48; 0.3} for the high-contrast brace layers, since the instance are going to lie on the line {10, 0} and {150; 1}?

You need thee masters. One Hairline (10, 0), one Bold (150, 0) and one Bold-Contrast (150, 100). The brace layer can be kept like that.

That only ‘problem’ is how to calculate the instances between the Hairline and the Bold-Contrast. You need to make sure they all sit exactly on the diagonal.

1 Like

Great, thanks. I guess I’ll set the contrast axis to run from 10 to 150 as well, then, so I can use the same value for weight and contrast in the diagonal brace layers.

the brace layers are not the biggest problem, but the instances.

Ok, but those, too, will be made easy with that trick.

Wait, does that mean I can’t have any half-contrast instances, then? I was counting on that… Couldn’t you first interpolate the {48, 0} and {48, 48} layers, e.g. to {48, 24}, and then use that to make a (60, 30) instance?

Otherwise, should I just export the high- and low-contrast series and use a third-party tool (gasp!) to interpolate the intermediates from the fonts at a given weight?

You only need to calculate the positions of the instances properly. The instance for 33% between Haurline and Contrast is at 55.2/33 at 50%: 80/50. So to change weight you need to change the contrast value, too.

Btw, are brace layers with three dimensions supported? I will need them soon for my current project.

Brace layers work in all dimensions. Bracket layers do only work for two.

Hmmm… It would be very useful if brace layers worked for three dimensions. Why the restriction to two dimensions?

Btw, RMX has been supporting 3D brace layers since version 1.0.

Brace work for all dimensions.

Oops, sorry. Just read it the other way round.

If I have an “Axes” custom parameter in Font Info > Font, how are the figures in the braces interpreted?

Are they supposed to be in the order of the axes?

Or, are the first two figures still strictly weight and width?

The numbers are in order of the Axes.

1 Like

Thanks, I see.

So, one has to be careful when changing the order of the axes if brace layers are in use in the font.