fonttools: [varLib] Unexpected instance names being assigned in fvar table
I’m building a variable font with 12 instances, running fontmake on a v5 designspace. 10 instances these appear in the fvar
table as expected… but two of them (ExtraBold and Black) are mislabeled as “Regular,” which is messing up the font style menus in software.
As far as I can tell, my designspace file is well-written, and in particular, I don’t see anything different in the syntax that describes the instances which are messing up. These two instances do have a mapping in their wght
axis, and this is the only thing I can imagine might be causing the issue. Maybe it has something to do with recently-added avar2 support?
For what it’s worth, the STAT table is building as expected, and does include the instance names that are missing from fvar
.
<AxisValue index="9" Format="1">
<AxisIndex value="1"/>
<Flags value="0"/>
<ValueNameID value="298"/> <!-- ExtraBold -->
<Value value="800.0"/>
</AxisValue>
<AxisValue index="10" Format="1">
<AxisIndex value="1"/>
<Flags value="0"/>
<ValueNameID value="299"/> <!-- Black -->
<Value value="900.0"/>
</AxisValue>
This problem appeared after I narrowed the designspace down from instances that were optical sizes X weights, to simply weights (to allow auto opsz in Mac & Adobe apps). Before I did that, all instances appeared in the VF, but after, they disappeared. It took me time to notice, though, so I’m not quite sure if the error is mine, or something in a build tool.
I’ve looked for fvar-related warnings/messages in fontmake, including by running with the flag --verbose DEBUG
. But, I don’t see anything that indicates a problem.
I’m at a bit of a loss for how to investigate this. Any suggestions are welcome! I’m happy to share sources privately, if that would be useful. Thanks for reading!
Versions:
- FontTools 4.39.4 (also tested with 4.38.0, but the problem persists)
- FontMake 3.5.1 (also tested with 3.5.0 and 3.4.0, but the problem persists)
Here are excerpts of the fvar
table, plus the designspace’s axis
definition. I’ve also added the fuller text in drop-down arrows below, in case that is useful.
<fvar>
<!-- NOTE -- Optical Size axis description omitted -->
<!-- Weight -->
<Axis>
<AxisTag>wght</AxisTag>
<Flags>0x0</Flags>
<MinValue>1.0</MinValue>
<DefaultValue>700.0</DefaultValue>
<MaxValue>1000.0</MaxValue>
<AxisNameID>275</AxisNameID>
</Axis>
<!-- NOTE -- Hairline through Light instances omitted .... -->
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-Regular -->
<NamedInstance flags="0x0" postscriptNameID="287" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="400.0"/>
</NamedInstance>
<!-- NOTE -- Medium through Bold instances omitted .... -->
<!-- ⚠️ NOTE - this name should be "ExtraBold"-->
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-ExtraBold -->
<NamedInstance flags="0x0" postscriptNameID="294" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="819.0"/>
</NamedInstance>
<!-- ⚠️ NOTE - this name should be "Black"-->
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-Black -->
<NamedInstance flags="0x0" postscriptNameID="295" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="894.0"/>
</NamedInstance>
<!-- NOTE -- Ultra instance omitted-->
</fvar>
<axis tag="wght" name="Weight" minimum="1" maximum="1000" default="700">
<labelname xml:lang="en">Weight</labelname>
<labels>
<label uservalue="1" name="Hairline" />
<label uservalue="50" name="ExtraThin" />
<label uservalue="100" name="Thin" />
<label uservalue="200" name="ExtraLight" />
<label uservalue="300" name="Light" />
<label uservalue="400" name="Regular" linkeduservalue="700" elidable="true"/>
<label uservalue="500" name="Medium" />
<label uservalue="600" name="SemiBold" />
<label uservalue="700" name="Bold" linkeduservalue="400"/>
<label uservalue="800" name="ExtraBold" />
<label uservalue="900" name="Black" />
<label uservalue="1000" name="Ultra" />
</labels>
<map input="1000" output="1000"/>
<map input="900" output="856"/> <!-- NOTE -- weight mapped -->
<map input="800" output="756"/> <!-- NOTE -- weight mapped -->
<map input="700" output="700"/>
<map input="600" output="600"/>
<map input="500" output="500"/>
<map input="400" output="400"/>
<map input="300" output="300"/>
<map input="200" output="200"/>
<map input="100" output="100"/>
<map input="50" output="50"/>
<map input="1" output="1"/>
</axis>
Full fvar table (Click to expand)
<fvar>
<!-- Optical Size -->
<Axis>
<AxisTag>opsz</AxisTag>
<Flags>0x0</Flags>
<MinValue>8.0</MinValue>
<DefaultValue>8.0</DefaultValue>
<MaxValue>72.0</MaxValue>
<AxisNameID>274</AxisNameID>
</Axis>
<!-- Weight -->
<Axis>
<AxisTag>wght</AxisTag>
<Flags>0x0</Flags>
<MinValue>1.0</MinValue>
<DefaultValue>700.0</DefaultValue>
<MaxValue>1000.0</MaxValue>
<AxisNameID>275</AxisNameID>
</Axis>
<!-- Hairline -->
<!-- PostScript: ATNameSansVariable-Hairline -->
<NamedInstance flags="0x0" postscriptNameID="277" subfamilyNameID="276">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="1.0"/>
</NamedInstance>
<!-- ExtraThin -->
<!-- PostScript: ATNameSansVariable-ExtraThin -->
<NamedInstance flags="0x0" postscriptNameID="279" subfamilyNameID="278">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="50.0"/>
</NamedInstance>
<!-- Thin -->
<!-- PostScript: ATNameSansVariable-Thin -->
<NamedInstance flags="0x0" postscriptNameID="281" subfamilyNameID="280">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="100.0"/>
</NamedInstance>
<!-- ExtraLight -->
<!-- PostScript: ATNameSansVariable-ExtraLight -->
<NamedInstance flags="0x0" postscriptNameID="283" subfamilyNameID="282">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="200.0"/>
</NamedInstance>
<!-- Light -->
<!-- PostScript: ATNameSansVariable-Light -->
<NamedInstance flags="0x0" postscriptNameID="285" subfamilyNameID="284">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="300.0"/>
</NamedInstance>
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-Regular -->
<NamedInstance flags="0x0" postscriptNameID="287" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="400.0"/>
</NamedInstance>
<!-- Medium -->
<!-- PostScript: ATNameSansVariable-Medium -->
<NamedInstance flags="0x0" postscriptNameID="289" subfamilyNameID="288">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="500.0"/>
</NamedInstance>
<!-- SemiBold -->
<!-- PostScript: ATNameSansVariable-SemiBold -->
<NamedInstance flags="0x0" postscriptNameID="291" subfamilyNameID="290">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="600.0"/>
</NamedInstance>
<!-- Bold -->
<!-- PostScript: ATNameSansVariable-Bold -->
<NamedInstance flags="0x0" postscriptNameID="293" subfamilyNameID="292">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="700.0"/>
</NamedInstance>
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-ExtraBold -->
<NamedInstance flags="0x0" postscriptNameID="294" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="819.0"/>
</NamedInstance>
<!-- Regular -->
<!-- PostScript: ATNameSansVariable-Black -->
<NamedInstance flags="0x0" postscriptNameID="295" subfamilyNameID="286">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="894.0"/>
</NamedInstance>
<!-- Ultra -->
<!-- PostScript: ATNameSansVariable-Ultra -->
<NamedInstance flags="0x0" postscriptNameID="297" subfamilyNameID="296">
<coord axis="opsz" value="8.0"/>
<coord axis="wght" value="1000.0"/>
</NamedInstance>
</fvar>
Full designspace document (Click to expand)
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes elidedfallbackname="Regular">
<axis tag="opsz" name="Optical Size" minimum="8" maximum="72" default="8">
<labelname xml:lang="en">Optical Size</labelname>
<map input="72" output="72"/>
<map input="20" output="40"/>
<map input="8" output="8" name="Text" elidable="true"/>
</axis>
<axis tag="wght" name="Weight" minimum="1" maximum="1000" default="700">
<labelname xml:lang="en">Weight</labelname>
<labels>
<label uservalue="1" name="Hairline" />
<label uservalue="50" name="ExtraThin" />
<label uservalue="100" name="Thin" />
<label uservalue="200" name="ExtraLight" />
<label uservalue="300" name="Light" />
<label uservalue="400" name="Regular" linkeduservalue="700" elidable="true"/>
<label uservalue="500" name="Medium" />
<label uservalue="600" name="SemiBold" />
<label uservalue="700" name="Bold" linkeduservalue="400"/>
<label uservalue="800" name="ExtraBold" />
<label uservalue="900" name="Black" />
<label uservalue="1000" name="Ultra" />
</labels>
<map input="1000" output="1000"/>
<map input="900" output="856"/>
<map input="800" output="756"/>
<map input="700" output="700"/>
<map input="600" output="600"/>
<map input="500" output="500"/>
<map input="400" output="400"/>
<map input="300" output="300"/>
<map input="200" output="200"/>
<map input="100" output="100"/>
<map input="50" output="50"/>
<map input="1" output="1"/>
</axis>
<axis name="Italic" tag="ital" default="0" values="0 1">
<labels>
<label uservalue="0" name="Roman" elidable="true" />
<label uservalue="1" name="Italic" />
</labels>
</axis>
</axes>
<variable-fonts>
<variable-font name="AT-NameSansVariable">
<axis-subsets>
<axis-subset name="Optical Size"/>
<axis-subset name="Weight"/>
<axis-subset name="Italic" uservalue="0"/>
</axis-subsets>
</variable-font>
<variable-font name="AT-NameSansVariable-Italic">
<axis-subsets>
<axis-subset name="Optical Size"/>
<axis-subset name="Weight"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<rules>
<rule name="Italic a">
<conditionset>
<condition name="Italic" minimum="1" maximum="1"/>
</conditionset>
<sub name="a" with="a.italic"/>
<sub name="agrave" with="agrave.italic"/>
<sub name="aacute" with="aacute.italic"/>
<sub name="acircumflex" with="acircumflex.italic"/>
<sub name="atilde" with="atilde.italic"/>
<sub name="adieresis" with="adieresis.italic"/>
<sub name="aring" with="aring.italic"/>
<sub name="amacron" with="amacron.italic"/>
<sub name="abreve" with="abreve.italic"/>
<sub name="aogonek" with="aogonek.italic"/>
<sub name="acaron" with="acaron.italic"/>
<sub name="adotbelow" with="adotbelow.italic"/>
<sub name="ahook" with="ahook.italic"/>
<sub name="acircumflexacute" with="acircumflexacute.italic"/>
<sub name="acircumflexgrave" with="acircumflexgrave.italic"/>
<sub name="acircumflexhook" with="acircumflexhook.italic"/>
<sub name="acircumflextilde" with="acircumflextilde.italic"/>
<sub name="acircumflexdot" with="acircumflexdot.italic"/>
<sub name="abreveacute" with="abreveacute.italic"/>
<sub name="abrevegrave" with="abrevegrave.italic"/>
<sub name="abrevehook" with="abrevehook.italic"/>
<sub name="abrevetilde" with="abrevetilde.italic"/>
<sub name="abrevedot" with="abrevedot.italic"/>
</rule>
<rule name="Default R in Display">
<conditionset>
<condition name="Weight" minimum="1" maximum="1000"/>
<condition name="Optical Size" minimum="55.999990" maximum="72"/>
</conditionset>
<sub name="R" with="R.default"/>
<sub name="Rcedilla" with="Rcedilla.default"/>
<sub name="Racute" with="Racute.default"/>
<sub name="Rcaron" with="Rcaron.default"/>
</rule>
<rule name="Open Rounds">
<conditionset>
<condition name="Weight" minimum="728" maximum="1000"/>
<condition name="Optical Size" minimum="8" maximum="72"/>
</conditionset>
<sub name="Q" with="Q.open"/>
<sub name="Oslash" with="Oslash.open"/>
<sub name="Oslashacute" with="Oslashacute.open"/>
<sub name="Q.RECT" with="Q.RECT_open"/>
<sub name="Oslash.RECT" with="Oslash.RECT_open"/>
<sub name="Oslashacute.RECT" with="Oslashacute.RECT_open"/>
<sub name="oslash" with="oslash.open"/>
<sub name="oslashacute" with="oslashacute.open"/>
</rule>
<rule name="Open Dollar">
<conditionset>
<condition name="Weight" minimum="550" maximum="1000"/>
<condition name="Optical Size" minimum="8" maximum="72"/>
</conditionset>
<sub name="dollar" with="dollar.open"/>
<sub name="cent" with="cent.open"/>
</rule>
<rule name="Ultra Alts">
<conditionset>
<condition name="Weight" minimum="928" maximum="1000"/>
<condition name="Optical Size" minimum="8" maximum="72"/>
</conditionset>
<sub name="l" with="l.text"/>
<sub name="lslash" with="lslash.text"/>
<sub name="lacute" with="lacute.text"/>
<sub name="lcedilla" with="lcedilla.text"/>
<sub name="lcedilla" with="lcedilla.text"/>
<sub name="ldot" with="ldot.text"/>
<sub name="l_periodcentered_l.loclCAT" with="l_periodcentered_l.text.loclCAT"/>
</rule>
<rule name="Ultra T">
<conditionset>
<condition name="Weight" minimum="781" maximum="1000"/>
<condition name="Optical Size" minimum="55.999990" maximum="72"/>
</conditionset>
<sub name="T" with="T.ultra"/>
<sub name="Tcaron" with="Tcaron.ultra"/>
</rule>
<rule name="Hairline Alts">
<conditionset>
<condition name="Weight" minimum="1" maximum="350"/>
<condition name="Optical Size" minimum="8" maximum="72"/>
</conditionset>
<sub name="paragraph" with="paragraph.light"/>
<sub name="won" with="won.light"/>
</rule>
<rule name="Text Alts">
<conditionset>
<condition name="Weight" minimum="1" maximum="1000"/>
<condition name="Optical Size" minimum="8" maximum="39.999990"/>
</conditionset>
<sub name="g" with="g.default"/>
<sub name="gbreve" with="gbreve.default"/>
<sub name="gcedilla" with="gcedilla.default"/>
<sub name="l" with="l.default"/>
<sub name="lcaron" with="lcaron.default"/>
<sub name="lslash" with="lslash.default"/>
<sub name="lacute" with="lacute.default"/>
<sub name="lcedilla" with="lcedilla.default"/>
<sub name="ldot" with="ldot.default"/>
<sub name="l_periodcentered_l.loclCAT" with="l_periodcentered_l.default.loclCAT"/>
<sub name="I" with="I.default"/>
<sub name="Igrave" with="Igrave.default"/>
<sub name="Iacute" with="Iacute.default"/>
<sub name="Icircumflex" with="Icircumflex.default"/>
<sub name="Idieresis" with="Idieresis.default"/>
<sub name="Itilde" with="Itilde.default"/>
<sub name="Imacron" with="Imacron.default"/>
<sub name="Ibreve" with="Ibreve.default"/>
<sub name="Idotaccent" with="Idotaccent.default"/>
<sub name="Ihook" with="Ihook.default"/>
<sub name="Idotbelow" with="Idotbelow.default"/>
<sub name="Iogonek" with="Iogonek.default"/>
</rule>
<rule name="90deg Ones">
<conditionset>
<condition name="Weight" minimum="350" maximum="1000"/>
<condition name="Optical Size" minimum="8" maximum="72"/>
</conditionset>
<sub name="one" with="one.90deg"/>
<sub name="one.tnum" with="one.90deg_tnum"/>
<sub name="one.onum" with="one.90deg_onum"/>
</rule>
<rule name="Bold y">
<conditionset>
<condition name="Weight" minimum="550" maximum="1000"/>
<condition name="Optical Size" minimum="62" maximum="72"/>
</conditionset>
<sub name="y" with="y.bold"/>
<sub name="yacute" with="yacute.bold"/>
<sub name="ydieresis" with="ydieresis.bold"/>
<sub name="ygrave" with="ygrave.bold"/>
<sub name="ydotbelow" with="ydotbelow.bold"/>
<sub name="yhookabove" with="yhookabove.bold"/>
<sub name="ytilde" with="ytilde.bold"/>
</rule>
</rules>
<sources>
<source filename="Name_Sans-Display_Hairline.ufo" familyname="AT Name Sans" stylename="Display Hairline">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Display_100.ufo" familyname="AT Name Sans" stylename="Display Thin">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Display_200.ufo" familyname="AT Name Sans" stylename="Display ExtraLight">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Display_500.ufo" familyname="AT Name Sans" stylename="Display Medium">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="Name_Sans-Display_Bold.ufo" familyname="AT Name Sans" stylename="Display Bold">
<lib copy="1"/>
<groups copy="1"/>
<features copy="1"/>
<info copy="1"/>
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Display_800.ufo" familyname="AT Name Sans" stylename="Display ExtraBold">
<location>
<dimension name="Weight" xvalue="800"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="Name_Sans-Display_Ultra.ufo" familyname="AT Name Sans" stylename="Display Ultra">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="Name_Sans-Text_Hairline.ufo" familyname="AT Name Sans" stylename="Text Hairline">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Text_100.ufo" familyname="AT Name Sans" stylename="Text Thin">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Text_200.ufo" familyname="AT Name Sans" stylename="Text ExtraLight">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="sparse--Name_Sans-Text_500.ufo" familyname="AT Name Sans" stylename="Text Medium">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="Name_Sans-Text_Bold.ufo" familyname="AT Name Sans" stylename="Text Bold">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="Name_Sans-Text_Ultra.ufo" familyname="AT Name Sans" stylename="Text Ultra">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<!-- ITALICS -->
<source filename="italic/Name_Sans-Display_Hairline_Italic.ufo" familyname="AT Name Sans" stylename="Display Hairline Italic">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Display_100_Italic.ufo" familyname="AT Name Sans" stylename="Display Thin Italic">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Display_200_Italic.ufo" familyname="AT Name Sans" stylename="Display ExtraLight Italic">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Display_500_Italic.ufo" familyname="AT Name Sans" stylename="Display Medium Italic">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/Name_Sans-Display_Bold_Italic.ufo" familyname="AT Name Sans" stylename="Display Bold Italic">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Display_800_Italic.ufo" familyname="AT Name Sans" stylename="Display ExtraBold Italic">
<location>
<dimension name="Weight" xvalue="800"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/Name_Sans-Display_Ultra_Italic.ufo" familyname="AT Name Sans" stylename="Display Ultra Italic">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="72"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/Name_Sans-Text_Hairline_Italic.ufo" familyname="AT Name Sans" stylename="Text Hairline Italic">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Text_100_Italic.ufo" familyname="AT Name Sans" stylename="Text Thin Italic">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Text_200_Italic.ufo" familyname="AT Name Sans" stylename="Text ExtraLight Italic">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/sparse--Name_Sans-Text_500_Italic.ufo" familyname="AT Name Sans" stylename="Text Medium Italic">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/Name_Sans-Text_Bold_Italic.ufo" familyname="AT Name Sans" stylename="Text Bold Italic">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="italic/Name_Sans-Text_Ultra_Italic.ufo" familyname="AT Name Sans" stylename="Text Ultra Italic">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<instances>
<instance familyname="AT Name Sans Variable" stylename="Hairline" filename="instances/AT-NameSansVariable-Hairline.ufo" postscriptfontname="ATNameSansVariable-Hairline" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Hairline">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraThin" filename="instances/AT-NameSansVariable-ExtraThin.ufo" postscriptfontname="ATNameSansVariable-ExtraThin" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable ExtraThin">
<location>
<dimension name="Weight" xvalue="50"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Thin" filename="instances/AT-NameSansVariable-Thin.ufo" postscriptfontname="ATNameSansVariable-Thin" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Thin">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraLight" filename="instances/AT-NameSansVariable-ExtraLight.ufo" postscriptfontname="ATNameSansVariable-ExtraLight" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable ExtraLight">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Light" filename="instances/AT-NameSansVariable-Light.ufo" postscriptfontname="ATNameSansVariable-Light" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Light">
<location>
<dimension name="Weight" xvalue="300"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Regular" filename="instances/AT-NameSansVariable-Regular.ufo" postscriptfontname="ATNameSansVariable-Regular" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Medium" filename="instances/AT-NameSansVariable-Medium.ufo" postscriptfontname="ATNameSansVariable-Medium" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Medium">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="SemiBold" filename="instances/AT-NameSansVariable-SemiBold.ufo" postscriptfontname="ATNameSansVariable-SemiBold" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable SemiBold">
<location>
<dimension name="Weight" xvalue="600"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Bold" filename="instances/AT-NameSansVariable-Bold.ufo" postscriptfontname="ATNameSansVariable-Bold" stylemapstylename="bold" stylemapfamilyname="AT Name Sans Variable">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraBold" filename="instances/AT-NameSansVariable-ExtraBold.ufo" postscriptfontname="ATNameSansVariable-ExtraBold" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable ExtraBold">
<location>
<dimension name="Weight" xvalue="775"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Black" filename="instances/AT-NameSansVariable-Black.ufo" postscriptfontname="ATNameSansVariable-Black" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Black">
<location>
<dimension name="Weight" xvalue="850"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Ultra" filename="instances/AT-NameSansVariable-Ultra.ufo" postscriptfontname="ATNameSansVariable-Ultra" stylemapstylename="regular" stylemapfamilyname="AT Name Sans Variable Ultra">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Hairline Italic" filename="instances/AT-NameSansVariable-HairlineItalic.ufo" postscriptfontname="ATNameSansVariable-HairlineItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Hairline">
<location>
<dimension name="Weight" xvalue="1"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraThin Italic" filename="instances/AT-NameSansVariable-ExtraThinItalic.ufo" postscriptfontname="ATNameSansVariable-ExtraThinItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable ExtraThin">
<location>
<dimension name="Weight" xvalue="50"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Thin Italic" filename="instances/AT-NameSansVariable-ThinItalic.ufo" postscriptfontname="ATNameSansVariable-ThinItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Thin">
<location>
<dimension name="Weight" xvalue="100"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraLight Italic" filename="instances/AT-NameSansVariable-ExtraLightItalic.ufo" postscriptfontname="ATNameSansVariable-ExtraLightItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable ExtraLight">
<location>
<dimension name="Weight" xvalue="200"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Light Italic" filename="instances/AT-NameSansVariable-LightItalic.ufo" postscriptfontname="ATNameSansVariable-LightItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Light">
<location>
<dimension name="Weight" xvalue="300"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Italic" filename="instances/AT-NameSansVariable-RegularItalic.ufo" postscriptfontname="ATNameSansVariable-RegularItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Medium Italic" filename="instances/AT-NameSansVariable-MediumItalic.ufo" postscriptfontname="ATNameSansVariable-MediumItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Medium">
<location>
<dimension name="Weight" xvalue="500"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="SemiBold Italic" filename="instances/AT-NameSansVariable-SemiBoldItalic.ufo" postscriptfontname="ATNameSansVariable-SemiBoldItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable SemiBold">
<location>
<dimension name="Weight" xvalue="600"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Bold Italic" filename="instances/AT-NameSansVariable-BoldItalic.ufo" postscriptfontname="ATNameSansVariable-BoldItalic" stylemapstylename="bold italic" stylemapfamilyname="AT Name Sans Variable">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="ExtraBold Italic" filename="instances/AT-NameSansVariable-ExtraBoldItalic.ufo" postscriptfontname="ATNameSansVariable-ExtraBoldItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable ExtraBold">
<location>
<dimension name="Weight" xvalue="775"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Black Italic" filename="instances/AT-NameSansVariable-BlackItalic.ufo" postscriptfontname="ATNameSansVariable-BlackItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Black">
<location>
<dimension name="Weight" xvalue="850"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance familyname="AT Name Sans Variable" stylename="Ultra Italic" filename="instances/AT-NameSansVariable-UltraItalic.ufo" postscriptfontname="ATNameSansVariable-UltraItalic" stylemapstylename="italic" stylemapfamilyname="AT Name Sans Variable Ultra">
<location>
<dimension name="Weight" xvalue="1000"/>
<dimension name="Optical Size" xvalue="8"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
<lib>
<dict>
<key>com.letterror.mathModelPref</key>
<string>previewVarLib</string>
<key>com.letterror.skateboard.interactionSources</key>
<dict>
<key>horizontal</key>
<array>
<string>Optical Size</string>
</array>
<key>ignore</key>
<array/>
<key>vertical</key>
<array>
<string>Weight</string>
</array>
</dict>
<key>com.letterror.skateboard.previewLocation</key>
<dict>
<key>Optical Size</key>
<real>12.0</real>
<key>Weight</key>
<real>1000.0</real>
</dict>
<key>com.letterror.skateboard.previewText</key>
<string>/sterling /yen /Euro 8</string>
</dict>
</lib>
</designspace>
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 18 (11 by maintainers)
In Designspace 5, you can also specify the instance locations with
uservalue
instead ofxvalue
. That way you can keep the “nice” value in your instance definitions, and still move around the actual locations by changing the axis mappings.