are they implemented/possible in Glyphs?
I was thinking it could be hard to implement because there arent defined userspace labels for axis locations. E.g. if there is a font with family name MyFont with a preferred name MyFont 72pt Condensed and a stylename of Thin, or a variable style name of 72pt Condensed Thin, you’d have to infer a lot to know that the userspace name for optical size is supposed to be “72pt,” no?
here is an example of all the designspace 5 axis elements together:
<axes elidedfallbackname="Regular">
<axis default="1" maximum="1000" minimum="0" name="weight" tag="wght">
<labelname xml:lang="fa-IR">قطر</labelname>
<labelname xml:lang="en">Wéíght</labelname>
<labels>
<label userminimum="200" uservalue="200" usermaximum="250" name="Extra Light">
<labelname xml:lang="de">Extraleicht</labelname>
<labelname xml:lang="fr">Extra léger</labelname>
</label>
<label userminimum="350" uservalue="400" usermaximum="450" name="Regular" elidable="true" />
</labels>
</axis>
<axis default="100" maximum="200" minimum="50" name="width" tag="wdth">
<map input="50.0" output="10.0" />
<map input="100.0" output="66.0" />
<map input="200.0" output="990.0" />
</axis>
</axes>
If we look at the line <label userminimum="200" uservalue="200" usermaximum="250" name="Extra Light">
that is an Axis Label Descriptor. if I understand right, this means if you were to add more axes, it would want to know that 72pt
is the userspace name along the optical axis, even though it doesn’t exist on its own So if we imagine an optical axis labeled by point size:
<axis default="1" maximum="1000" minimum="0" name="Weight" tag="wght">
<labels>
...
<label userminimum="100" uservalue="200" usermaximum="900" name="ExtraLight"/>
<label userminimum="100" uservalue="300" usermaximum="900" name="Light"/>
...
</labels>
</axis>
<axis default="16" maximum="72" minimum="8" name="Optical size" tag="opsz">
<labels>
...
<label userminimum="8" uservalue="24" usermaximum="72" name="24pt"/>
<label userminimum="8" uservalue="72" usermaximum="72" name="72pt"/>
...
</labels>
</axis>
there isn’t a predictable way to know that the label.name
should be 72pt
or whatever arbitrary value on a given axis. Which to me, makes me think there should be a new customParam on the instances that gets a specific userspace name for each individual instance.axes location? Because right now all we have is internal location (72
instead of 72pt
in this example, or Display
instead of 72, etc).
Does this question make any sense, or have I completely misunderstood what designspaceLib 5 is offering? I wouldn’t bet against the latter, personally