1*e1fe3e4aSElliott Hughes<?xml version='1.0' encoding='UTF-8'?> 2*e1fe3e4aSElliott Hughes<designspace format="5.0"> 3*e1fe3e4aSElliott Hughes <axes elidedfallbackname="Regular"> 4*e1fe3e4aSElliott Hughes <axis tag="wght" name="Weight" minimum="200" maximum="1000" default="200"> 5*e1fe3e4aSElliott Hughes <labelname xml:lang="en">Wéíght</labelname> 6*e1fe3e4aSElliott Hughes <labelname xml:lang="fa-IR">قطر</labelname> 7*e1fe3e4aSElliott Hughes <map input="200" output="0"/> 8*e1fe3e4aSElliott Hughes <map input="300" output="100"/> 9*e1fe3e4aSElliott Hughes <map input="400" output="368"/> 10*e1fe3e4aSElliott Hughes <map input="600" output="600"/> 11*e1fe3e4aSElliott Hughes <map input="700" output="824"/> 12*e1fe3e4aSElliott Hughes <map input="900" output="1000"/> 13*e1fe3e4aSElliott Hughes <!-- All axes provide STAT information with the "labels" element. --> 14*e1fe3e4aSElliott Hughes <labels> 15*e1fe3e4aSElliott Hughes <label uservalue="200" userminimum="200" usermaximum="250" name="Extra Light"> 16*e1fe3e4aSElliott Hughes <labelname xml:lang="de">Extraleicht</labelname> 17*e1fe3e4aSElliott Hughes <labelname xml:lang="fr">Extra léger</labelname> 18*e1fe3e4aSElliott Hughes </label> 19*e1fe3e4aSElliott Hughes <label uservalue="300" userminimum="250" usermaximum="350" name="Light"/> 20*e1fe3e4aSElliott Hughes <label uservalue="400" userminimum="350" usermaximum="450" name="Regular" elidable="true"/> 21*e1fe3e4aSElliott Hughes <label uservalue="600" userminimum="450" usermaximum="650" name="Semi Bold"/> 22*e1fe3e4aSElliott Hughes <label uservalue="700" userminimum="650" usermaximum="850" name="Bold"/> 23*e1fe3e4aSElliott Hughes <label uservalue="900" userminimum="850" usermaximum="900" name="Black"/> 24*e1fe3e4aSElliott Hughes <!-- 25*e1fe3e4aSElliott Hughes Add "recursive" linked user values, see: 26*e1fe3e4aSElliott Hughes https://github.com/fonttools/fonttools/issues/2852 27*e1fe3e4aSElliott Hughes https://github.com/fonttools/fonttools/discussions/2790 28*e1fe3e4aSElliott Hughes --> 29*e1fe3e4aSElliott Hughes <label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/> 30*e1fe3e4aSElliott Hughes <label uservalue="700" name="Bold" linkeduservalue="400"/> 31*e1fe3e4aSElliott Hughes </labels> 32*e1fe3e4aSElliott Hughes </axis> 33*e1fe3e4aSElliott Hughes 34*e1fe3e4aSElliott Hughes <axis tag="wdth" name="Width" minimum="50" maximum="150" default="100" hidden="1"> 35*e1fe3e4aSElliott Hughes <labelname xml:lang="fr">Chasse</labelname> 36*e1fe3e4aSElliott Hughes <map input="50" output="10"/> 37*e1fe3e4aSElliott Hughes <map input="100" output="20"/> 38*e1fe3e4aSElliott Hughes <map input="125" output="66"/> 39*e1fe3e4aSElliott Hughes <map input="150" output="990"/> 40*e1fe3e4aSElliott Hughes <labels ordering="1"> 41*e1fe3e4aSElliott Hughes <label uservalue="50" name="Condensed"/> 42*e1fe3e4aSElliott Hughes <label uservalue="100" name="Normal" elidable="true" oldersibling="true"/> 43*e1fe3e4aSElliott Hughes <label uservalue="125" name="Wide"/> 44*e1fe3e4aSElliott Hughes <!-- Allow specifying only one end of the range, the other is assumed to 45*e1fe3e4aSElliott Hughes be infinity as does otlLib buildStatTable --> 46*e1fe3e4aSElliott Hughes <label uservalue="150" userminimum="150" name="Extra Wide"/> 47*e1fe3e4aSElliott Hughes </labels> 48*e1fe3e4aSElliott Hughes </axis> 49*e1fe3e4aSElliott Hughes 50*e1fe3e4aSElliott Hughes <!-- 51*e1fe3e4aSElliott Hughes Discrete axes provide a list of discrete values. 52*e1fe3e4aSElliott Hughes No interpolation is allowed between these. 53*e1fe3e4aSElliott Hughes --> 54*e1fe3e4aSElliott Hughes <axis tag="ital" name="Italic" values="0 1" default="0"> 55*e1fe3e4aSElliott Hughes <labels> 56*e1fe3e4aSElliott Hughes <!-- Discrete axes also provide STAT information. --> 57*e1fe3e4aSElliott Hughes <label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/> 58*e1fe3e4aSElliott Hughes <label uservalue="1" name="Italic"/> 59*e1fe3e4aSElliott Hughes </labels> 60*e1fe3e4aSElliott Hughes </axis> 61*e1fe3e4aSElliott Hughes </axes> 62*e1fe3e4aSElliott Hughes 63*e1fe3e4aSElliott Hughes <!-- Freestanding labels are analogues of STAT format 4 entries. 64*e1fe3e4aSElliott Hughes They give names to freestyle locations. --> 65*e1fe3e4aSElliott Hughes <labels> 66*e1fe3e4aSElliott Hughes <label name="Some Style"> 67*e1fe3e4aSElliott Hughes <labelname xml:lang="fr">Un Style</labelname> 68*e1fe3e4aSElliott Hughes <location> 69*e1fe3e4aSElliott Hughes <dimension name="Weight" uservalue="300"/> 70*e1fe3e4aSElliott Hughes <dimension name="Width" uservalue="50"/> 71*e1fe3e4aSElliott Hughes <dimension name="Italic" uservalue="0"/> 72*e1fe3e4aSElliott Hughes </location> 73*e1fe3e4aSElliott Hughes </label> 74*e1fe3e4aSElliott Hughes <label name="Other"> 75*e1fe3e4aSElliott Hughes <location> 76*e1fe3e4aSElliott Hughes <dimension name="Weight" uservalue="700"/> 77*e1fe3e4aSElliott Hughes <dimension name="Width" uservalue="100"/> 78*e1fe3e4aSElliott Hughes <dimension name="Italic" uservalue="1"/> 79*e1fe3e4aSElliott Hughes </location> 80*e1fe3e4aSElliott Hughes </label> 81*e1fe3e4aSElliott Hughes </labels> 82*e1fe3e4aSElliott Hughes 83*e1fe3e4aSElliott Hughes <rules processing="last"> 84*e1fe3e4aSElliott Hughes <rule name="named.rule.1"> 85*e1fe3e4aSElliott Hughes <conditionset> 86*e1fe3e4aSElliott Hughes <condition name="axisName_a" minimum="0" maximum="1"/> 87*e1fe3e4aSElliott Hughes <condition name="axisName_b" minimum="2" maximum="3"/> 88*e1fe3e4aSElliott Hughes </conditionset> 89*e1fe3e4aSElliott Hughes <sub name="a" with="a.alt"/> 90*e1fe3e4aSElliott Hughes </rule> 91*e1fe3e4aSElliott Hughes </rules> 92*e1fe3e4aSElliott Hughes 93*e1fe3e4aSElliott Hughes <sources> 94*e1fe3e4aSElliott Hughes <source filename="masterTest1.ufo" name="master.ufo1" familyname="MasterFamilyName" stylename="MasterStyleNameOne"> 95*e1fe3e4aSElliott Hughes <familyname xml:lang="fr">Montserrat</familyname> 96*e1fe3e4aSElliott Hughes <familyname xml:lang="ja">モンセラート</familyname> 97*e1fe3e4aSElliott Hughes <lib copy="1"/> 98*e1fe3e4aSElliott Hughes <features copy="1"/> 99*e1fe3e4aSElliott Hughes <info copy="1"/> 100*e1fe3e4aSElliott Hughes <glyph name="A" mute="1"/> 101*e1fe3e4aSElliott Hughes <glyph name="Z" mute="1"/> 102*e1fe3e4aSElliott Hughes <location> 103*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="0"/> 104*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="20"/> 105*e1fe3e4aSElliott Hughes <dimension name="Italic" xvalue="0"/> 106*e1fe3e4aSElliott Hughes </location> 107*e1fe3e4aSElliott Hughes </source> 108*e1fe3e4aSElliott Hughes <source filename="masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="MasterStyleNameTwo"> 109*e1fe3e4aSElliott Hughes <kerning mute="1"/> 110*e1fe3e4aSElliott Hughes <location> 111*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="1000"/> 112*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="20"/> 113*e1fe3e4aSElliott Hughes <dimension name="Italic" xvalue="0"/> 114*e1fe3e4aSElliott Hughes </location> 115*e1fe3e4aSElliott Hughes </source> 116*e1fe3e4aSElliott Hughes <source filename="masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="Supports" layer="supports"> 117*e1fe3e4aSElliott Hughes <location> 118*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="1000"/> 119*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="20"/> 120*e1fe3e4aSElliott Hughes <dimension name="Italic" xvalue="0"/> 121*e1fe3e4aSElliott Hughes </location> 122*e1fe3e4aSElliott Hughes </source> 123*e1fe3e4aSElliott Hughes <source filename="masterTest2.ufo" name="master.ufo3" familyname="MasterFamilyName" stylename="FauxItalic"> 124*e1fe3e4aSElliott Hughes <location> 125*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="0"/> 126*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="100"/> 127*e1fe3e4aSElliott Hughes <dimension name="Italic" xvalue="1"/> 128*e1fe3e4aSElliott Hughes </location> 129*e1fe3e4aSElliott Hughes </source> 130*e1fe3e4aSElliott Hughes </sources> 131*e1fe3e4aSElliott Hughes 132*e1fe3e4aSElliott Hughes <variable-fonts> 133*e1fe3e4aSElliott Hughes <!-- 134*e1fe3e4aSElliott Hughes If this element is present, all output targets must be listed within it. 135*e1fe3e4aSElliott Hughes If it is not present, the full Designspace is the output, like in version 4.x. 136*e1fe3e4aSElliott Hughes 137*e1fe3e4aSElliott Hughes Continuous axes can be included either: 138*e1fe3e4aSElliott Hughes * in full, 139*e1fe3e4aSElliott Hughes * or only on a reduced interval (different minimum-maximum), 140*e1fe3e4aSElliott Hughes * or only at 1 discrete location 141*e1fe3e4aSElliott Hughes Dicrete axes cannot be included in full, and we must specify a value 142*e1fe3e4aSElliott Hughes (or the compiler should assume the default value). 143*e1fe3e4aSElliott Hughes --> 144*e1fe3e4aSElliott Hughes <variable-font name="Test_WghtWdth" filename="Test_WghtWdth_different_from_name.ttf"> 145*e1fe3e4aSElliott Hughes <!-- This one is the Roman (default location along ital), 146*e1fe3e4aSElliott Hughes with full range for the Weight axis. --> 147*e1fe3e4aSElliott Hughes <axis-subsets> 148*e1fe3e4aSElliott Hughes <axis-subset name="Weight"/> 149*e1fe3e4aSElliott Hughes <axis-subset name="Width"/> 150*e1fe3e4aSElliott Hughes </axis-subsets> 151*e1fe3e4aSElliott Hughes <lib> 152*e1fe3e4aSElliott Hughes <dict> 153*e1fe3e4aSElliott Hughes <key>com.vtt.source</key> 154*e1fe3e4aSElliott Hughes <string>sources/vtt/Test_WghtWdth.vtt</string> 155*e1fe3e4aSElliott Hughes </dict> 156*e1fe3e4aSElliott Hughes </lib> 157*e1fe3e4aSElliott Hughes </variable-font> 158*e1fe3e4aSElliott Hughes <variable-font name="Test_Wght"> 159*e1fe3e4aSElliott Hughes <!-- This one is the Roman (default location along ital), 160*e1fe3e4aSElliott Hughes with full range for the Weight axis. --> 161*e1fe3e4aSElliott Hughes <axis-subsets> 162*e1fe3e4aSElliott Hughes <axis-subset name="Weight"/> 163*e1fe3e4aSElliott Hughes </axis-subsets> 164*e1fe3e4aSElliott Hughes <lib> 165*e1fe3e4aSElliott Hughes <dict> 166*e1fe3e4aSElliott Hughes <key>com.vtt.source</key> 167*e1fe3e4aSElliott Hughes <string>sources/vtt/Test_Wght.vtt</string> 168*e1fe3e4aSElliott Hughes </dict> 169*e1fe3e4aSElliott Hughes </lib> 170*e1fe3e4aSElliott Hughes </variable-font> 171*e1fe3e4aSElliott Hughes <variable-font name="TestCd_Wght"> 172*e1fe3e4aSElliott Hughes <!-- This one is the Roman (default location along ital), 173*e1fe3e4aSElliott Hughes with full range for the Weight axis. --> 174*e1fe3e4aSElliott Hughes <axis-subsets> 175*e1fe3e4aSElliott Hughes <axis-subset name="Weight"/> 176*e1fe3e4aSElliott Hughes <axis-subset name="Width" uservalue="0"/> 177*e1fe3e4aSElliott Hughes </axis-subsets> 178*e1fe3e4aSElliott Hughes </variable-font> 179*e1fe3e4aSElliott Hughes <variable-font name="TestWd_Wght"> 180*e1fe3e4aSElliott Hughes <!-- This one is the Roman (default location along ital), 181*e1fe3e4aSElliott Hughes with full range for the Weight axis. --> 182*e1fe3e4aSElliott Hughes <axis-subsets> 183*e1fe3e4aSElliott Hughes <axis-subset name="Weight"/> 184*e1fe3e4aSElliott Hughes <axis-subset name="Width" uservalue="1000"/> 185*e1fe3e4aSElliott Hughes </axis-subsets> 186*e1fe3e4aSElliott Hughes </variable-font> 187*e1fe3e4aSElliott Hughes <variable-font name="TestItalic_Wght"> 188*e1fe3e4aSElliott Hughes <!-- This one is the Italic, with full range for the Weight axis. --> 189*e1fe3e4aSElliott Hughes <axis-subsets> 190*e1fe3e4aSElliott Hughes <axis-subset name="Weight"/> 191*e1fe3e4aSElliott Hughes <axis-subset name="Italic" uservalue="1"/> 192*e1fe3e4aSElliott Hughes </axis-subsets> 193*e1fe3e4aSElliott Hughes </variable-font> 194*e1fe3e4aSElliott Hughes <variable-font name="TestRB_Wght"> 195*e1fe3e4aSElliott Hughes <!-- As an example, this would be the Roman with a reduced range. --> 196*e1fe3e4aSElliott Hughes <axis-subsets> 197*e1fe3e4aSElliott Hughes <axis-subset name="Weight" userminimum="400" usermaximum="700" userdefault="400"/> 198*e1fe3e4aSElliott Hughes <axis-subset name="Italic" uservalue="0"/> 199*e1fe3e4aSElliott Hughes </axis-subsets> 200*e1fe3e4aSElliott Hughes </variable-font> 201*e1fe3e4aSElliott Hughes </variable-fonts> 202*e1fe3e4aSElliott Hughes 203*e1fe3e4aSElliott Hughes <instances> 204*e1fe3e4aSElliott Hughes <instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName"> 205*e1fe3e4aSElliott Hughes <stylename xml:lang="fr">Demigras</stylename> 206*e1fe3e4aSElliott Hughes <stylename xml:lang="ja">半ば</stylename> 207*e1fe3e4aSElliott Hughes <familyname xml:lang="fr">Montserrat</familyname> 208*e1fe3e4aSElliott Hughes <familyname xml:lang="ja">モンセラート</familyname> 209*e1fe3e4aSElliott Hughes <stylemapstylename xml:lang="de">Standard</stylemapstylename> 210*e1fe3e4aSElliott Hughes <stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname> 211*e1fe3e4aSElliott Hughes <stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname> 212*e1fe3e4aSElliott Hughes <location> 213*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="500"/> 214*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="20"/> 215*e1fe3e4aSElliott Hughes </location> 216*e1fe3e4aSElliott Hughes 217*e1fe3e4aSElliott Hughes <!-- The following elements are deprecated in v5.0. They can still be 218*e1fe3e4aSElliott Hughes read, but they won't be written out again (they don't roundtrip). --> 219*e1fe3e4aSElliott Hughes <!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN --> 220*e1fe3e4aSElliott Hughes <glyphs> 221*e1fe3e4aSElliott Hughes <glyph mute="1" unicode="0x123 0x124 0x125" name="arrow"/> 222*e1fe3e4aSElliott Hughes </glyphs> 223*e1fe3e4aSElliott Hughes <kerning/> 224*e1fe3e4aSElliott Hughes <info/> 225*e1fe3e4aSElliott Hughes <!-- ROUNDTRIP_TEST_REMOVE_ME_END --> 226*e1fe3e4aSElliott Hughes 227*e1fe3e4aSElliott Hughes <lib> 228*e1fe3e4aSElliott Hughes <dict> 229*e1fe3e4aSElliott Hughes <key>com.coolDesignspaceApp.binaryData</key> 230*e1fe3e4aSElliott Hughes <data> 231*e1fe3e4aSElliott Hughes PGJpbmFyeSBndW5rPg== 232*e1fe3e4aSElliott Hughes </data> 233*e1fe3e4aSElliott Hughes <key>com.coolDesignspaceApp.specimenText</key> 234*e1fe3e4aSElliott Hughes <string>Hamburgerwhatever</string> 235*e1fe3e4aSElliott Hughes </dict> 236*e1fe3e4aSElliott Hughes </lib> 237*e1fe3e4aSElliott Hughes </instance> 238*e1fe3e4aSElliott Hughes <instance name="instance.ufo2" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest2.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName"> 239*e1fe3e4aSElliott Hughes <location> 240*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="500"/> 241*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="400" yvalue="300"/> 242*e1fe3e4aSElliott Hughes </location> 243*e1fe3e4aSElliott Hughes <!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN --> 244*e1fe3e4aSElliott Hughes <glyphs> 245*e1fe3e4aSElliott Hughes <glyph unicode="0x65 0xc9 0x12d" name="arrow"> 246*e1fe3e4aSElliott Hughes <location> 247*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="120"/> 248*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="100"/> 249*e1fe3e4aSElliott Hughes </location> 250*e1fe3e4aSElliott Hughes <note>A note about this glyph</note> 251*e1fe3e4aSElliott Hughes <masters> 252*e1fe3e4aSElliott Hughes <master glyphname="BB" source="master.ufo1"> 253*e1fe3e4aSElliott Hughes <location> 254*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="20"/> 255*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="20"/> 256*e1fe3e4aSElliott Hughes </location> 257*e1fe3e4aSElliott Hughes </master> 258*e1fe3e4aSElliott Hughes <master glyphname="CC" source="master.ufo2"> 259*e1fe3e4aSElliott Hughes <location> 260*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="900"/> 261*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="900"/> 262*e1fe3e4aSElliott Hughes </location> 263*e1fe3e4aSElliott Hughes </master> 264*e1fe3e4aSElliott Hughes </masters> 265*e1fe3e4aSElliott Hughes </glyph> 266*e1fe3e4aSElliott Hughes <glyph name="arrow2"/> 267*e1fe3e4aSElliott Hughes </glyphs> 268*e1fe3e4aSElliott Hughes <kerning/> 269*e1fe3e4aSElliott Hughes <info/> 270*e1fe3e4aSElliott Hughes <!-- ROUNDTRIP_TEST_REMOVE_ME_END --> 271*e1fe3e4aSElliott Hughes </instance> 272*e1fe3e4aSElliott Hughes 273*e1fe3e4aSElliott Hughes <!-- 274*e1fe3e4aSElliott Hughes These instances will derive all their data from the data above. 275*e1fe3e4aSElliott Hughes 276*e1fe3e4aSElliott Hughes Instances can specify their location either: 277*e1fe3e4aSElliott Hughes - using the name of a location label 278*e1fe3e4aSElliott Hughes - with design coordinates (xvalue="") 279*e1fe3e4aSElliott Hughes - with user coordinates (uservalue="") 280*e1fe3e4aSElliott Hughes - with a mix of both coordinate systems 281*e1fe3e4aSElliott Hughes --> 282*e1fe3e4aSElliott Hughes <instance location="Some Style"/> 283*e1fe3e4aSElliott Hughes <instance> 284*e1fe3e4aSElliott Hughes <location> 285*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="600"/> 286*e1fe3e4aSElliott Hughes <dimension name="Width" xvalue="401" yvalue="420"/> 287*e1fe3e4aSElliott Hughes </location> 288*e1fe3e4aSElliott Hughes </instance> 289*e1fe3e4aSElliott Hughes <instance> 290*e1fe3e4aSElliott Hughes <location> 291*e1fe3e4aSElliott Hughes <dimension name="Weight" xvalue="10"/> 292*e1fe3e4aSElliott Hughes <dimension name="Width" uservalue="100"/> 293*e1fe3e4aSElliott Hughes <dimension name="Italic" xvalue="0"/> 294*e1fe3e4aSElliott Hughes </location> 295*e1fe3e4aSElliott Hughes </instance> 296*e1fe3e4aSElliott Hughes <instance> 297*e1fe3e4aSElliott Hughes <location> 298*e1fe3e4aSElliott Hughes <dimension name="Weight" uservalue="300"/> 299*e1fe3e4aSElliott Hughes <dimension name="Width" uservalue="130"/> 300*e1fe3e4aSElliott Hughes <dimension name="Italic" uservalue="1"/> 301*e1fe3e4aSElliott Hughes </location> 302*e1fe3e4aSElliott Hughes </instance> 303*e1fe3e4aSElliott Hughes </instances> 304*e1fe3e4aSElliott Hughes 305*e1fe3e4aSElliott Hughes <lib> 306*e1fe3e4aSElliott Hughes <dict> 307*e1fe3e4aSElliott Hughes <key>com.coolDesignspaceApp.previewSize</key> 308*e1fe3e4aSElliott Hughes <integer>30</integer> 309*e1fe3e4aSElliott Hughes </dict> 310*e1fe3e4aSElliott Hughes </lib> 311*e1fe3e4aSElliott Hughes</designspace> 312