I am testing a variable font with four axes. There are combinations of the unregistered and registered axes in the instance naming, for obvious reasons, i.e. Commissioner-Thin, Commissioner-FlairThin, Commissioner-LoudThin, etc.
When fontbaking the vf, I get the following FAIL:
`
馃敟 FAIL Instance name "Flair Thin" is incorrect. It should be "Thin" [code: bad-name]
Is there some clear guidelines for how instances in families with multiple axes should be named?
fontbakery inference of familyname/stylename is based on splitting on the dash character. That's why it thinks the style is "Flair Thin" instead of "Thin"
well... Flair and Loud should be part of the family name. Styles should remain a selection of the 18 canonical stylenames.
Hi @felipesanches and thanks for the answer, but I am not quite sure what it is you are suggesting.
The variable font has 18*3=54 instances. Yet it has one family name.
Should I split it in 3 Variable fonts so that the naming is accepted?
Do you have an example of what you are talking about?
yes, that's right! A total of 3 families, each with 18 styles.
@davelab6 suggested to look into Recursive for a similar multi-axes instance family. I ran it through fontbakery and it reports the same FAIL.
Doesn't splitting it into 3 families void the whole concept of it being a variable font?
@thundernixon, can you help us here?
Having the same problem with width axis
This is also (still) hampering work on Fraunces.
From what I can gather (and what @m4rc1e pointed out here), the problem seems to be the instance parser that is not able to deal with anything that is not width, weight, and italic.
Sorry to have missed this issue for so long. Yes, my theory is that a variable font project should have a single, primary variable font if it鈥檚 possible to, in order to deliver maximum savings & flexibility to end users. Some projects would have separate variable fonts that aren't compatible, like many type families that have one roman VF and one italic VF.
In Recursive, the static fonts are given four separate families names each with 16 instances (8 weights + italics), to work easily in software like Keynote, Figma, InDesign, etc:
However, the variable font family has 64 total instances, and these have names like Mono Casual Bold Italic, etc.
This separation of families also makes it easier to install all 5 families (4 static, 1 variable) but keep them separately available in font menus.
I can鈥檛 dedicate time to fixing this issue in the immediate future, as I need to work through open priorities in Recursive. For now, I suggest just making Fraunces work as well as possible in as many places as possible, and trusting that this issue will be resolved eventually.
Fontbakery's name parser was updated a while ago to accept non-registered axes. For Commisioner, Fontbakery now produces:
* WARN: Instance "Flair Thin": contains the following unparsable tokens "['Flair']"
* WARN: Instance "Flair Thin": cannot determine instance name due to unparsable tokens
* WARN: Instance "Flair ExtraLight": contains the following unparsable tokens "['Flair']"
...
* WARN: Check has either failed or produced a warning. See our wip spec for further info https://gist.github.com/m4rc1e/8f4c4498519e8a36cd54e16a004275cb
It's no longer a fail but a warn.
I still don't know if non-registered axis names should appear before or after registered axis? e.g
Before:
Flair ExtraLight Italic
After:
ExtraLight Italic Flair
For filenames we ask for non-registered to appear first.
@davelab6 ^
If we decide to have non-registered to appear first, then Commisioner's instance names are correct.
if non-registered axis names should appear before or after registered axis
In the case of this family, it looks to me like "Flair" and "Loud" are sort of like subfamilies, and should therefore go before weight and italic names. In general, also, I think that would tend to hold true.
However, it sounds like you might be seeking out a rule here, in which case I would be cautious about establishing any hard rules. It seems unlikely that _every_ non-registered axis descriptor should necessarily be named before registered axis descriptor. I might be making this up, but I think that names have their current order as a way of describing font attributes in the way that people commonly see their order on the "decision tree" a designer might go through in selecting the correct style. So, presumably, someone could come up with a non-registered axis that would change names after the registered names.
In the example of Recursive, I don't but _could_ have instances like "mono casual bold oblique," which would be like the "mono casual bold italic" but with the non-registered CRSV (cursive) axis turned to 0. So, this would affect the style name following registered descriptors. Presumably, other families might come up with other non-registered axes that would influence registered axes in ways that would be further down in the decision tree for the end user.
Related discussion in https://github.com/google/fonts/issues/2702
Most helpful comment
Doesn't splitting it into 3 families void the whole concept of it being a variable font?