Stylistic set overwriting another stylistic set

Hi everyone!

In a typeface I’m making, I created three versions of the letter “a”:

  • Default: single-storey a
  • ss07: double-storey a
  • ss02: double storey a with thin terminals (plus other letters with thin terminals)

I was wondering if there was a way to make so that you can get the ss02 “a” only by activating both ss07 and ss02. While by activating only ss02, the “a” remains the default shape. I tried naming the three versions as shown in the image but I guess it’s the wrong way, as by activating both ss07 and ss02 the shown “a” is the ss07 version.

I hope I managed to explain myself and I thank in advance anyone that can help me.

Yes, this is possible, but you need to bear in mind the order of feature application. Name your glyph a.ss02.ss07.

1 Like

Thank you for the answer! Renaming it this way still shows the wrong glyph however. In the end I think I managed to solve the problem by changing the numbers of the stylistic sets and making so that the stylistic set overwriting the other stylistic set comes next in the sequence.

Which means that now the double-storey “a” is ss05, the thin terminal letters are ss06, and the thin terminal “a” is “a.ss05.ss06”.

It doesn’t work (automatically) because you need all four glyphs, ie. you also need to create a.ss02. Since it doesn’t exist you just make it contain the regular a as a component. Now update the automatic features and it will work.


This also worked perfectly, thank you!

1 Like

Generally, I would advise against making one stylistic set depend on another. Instead, have ss02 turn the a into one style and ss07 turn the a into another style. That is how style sets are generally used.

There are also the character variant features, but those require manual feature code and are less well-supported by apps using fonts. For example, the cv01 feature could contain code like:

sub a from [a.alt1 a.alt2];

or in your case, keeping the ss## features as well:

sub a from [a.ss07 a.ss02.ss07];
1 Like

Thank you a lot, I will keep that in mind and try these solutions.

In this case, if I’m reading it right, ss02 triggers a thin terminal in a bunch of different letters (I imagine things like /f/t/c perhaps), while ss07 turns the structure of /a to two story. It seems legit that a user might want a single-story /a but have the thin terminals on those other letters, so the dependency makes sense to me.

1 Like

Yes, that would be a good reason to have stylistic sets build upon one another.

1 Like

It should work, just make sure to update the features, and drag them in the right order, if necessary.

However, I still do not think that this is a very good idea. Firstly, keep in mind that some implementations only allow one stylistic set at a time (Word), and secondly, it is overly complicated. Not very many uses will understand how it works.

1 Like

I’m doing a design with many different compounding SSs. It works so far but if you know of any applications where it doesn’t work please let us know.

Again, thanks to everyone answering. I see there’s a few different opinions about it. I will have to think whether to keep these stylistic sets or not.

On one hand I would like to provide more alternatives to advanced users. On the other hand this typeface doesn’t necessarily need a double-storey “a”, as it’s based on italic calligraphy. This letter also has another dedicated stylistic set, and having four versions of the same letter might be excessive.