Merge pull request #2436 from daltonmaag/impl-designspace-v5

This commit is contained in:
Jany Belluz 2022-04-14 16:16:32 +02:00 committed by GitHub
commit 5b3db49d72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
55 changed files with 13696 additions and 1363 deletions

View File

@ -19,7 +19,7 @@ You must have a Python 3 interpreter and the `pip` Python package manager instal
Pull the fontTools project source files, create a Python virtual environment, and then install fontTools and the documentation build dependencies by executing the following commands in the root of the fontTools source repository:
```
$ pip install -e . [all]
$ pip install -e .[all]
$ pip install -r Doc/docs-requirements.txt
```

View File

@ -1,18 +1,217 @@
##############
designspaceLib
##############
#######################################################
designspaceLib: Read, write, and edit designspace files
#######################################################
MutatorMath started out with its own reader and writer for designspaces.
Since then the use of designspace has broadened and it would be useful
to have a reader and writer that are independent of a specific system.
Implements support for reading and manipulating ``designspace`` files.
Allows the users to define axes, rules, sources, variable fonts and instances,
and their STAT information.
.. toctree::
:maxdepth: 1
readme
python
xml
scripting
.. automodule:: fontTools.designspaceLib
:inherited-members:
:members:
:undoc-members:
Notes
=====
Paths and filenames
-------------------
A designspace file needs to store many references to UFO files.
- designspace files can be part of versioning systems and appear on
different computers. This means it is not possible to store absolute
paths.
- So, all paths are relative to the designspace document path.
- Using relative paths allows designspace files and UFO files to be
**near** each other, and that they can be **found** without enforcing
one particular structure.
- The **filename** attribute in the ``SourceDescriptor`` and
``InstanceDescriptor`` classes stores the preferred relative path.
- The **path** attribute in these objects stores the absolute path. It
is calculated from the document path and the relative path in the
filename attribute when the object is created.
- Only the **filename** attribute is written to file.
- Both **filename** and **path** must use forward slashes (``/``) as
path separators, even on Windows.
Right before we save we need to identify and respond to the following
situations:
In each descriptor, we have to do the right thing for the filename
attribute. Before writing to file, the ``documentObject.updatePaths()``
method prepares the paths as follows:
**Case 1**
::
descriptor.filename == None
descriptor.path == None
**Action**
- write as is, descriptors will not have a filename attr. Useless, but
no reason to interfere.
**Case 2**
::
descriptor.filename == "../something"
descriptor.path == None
**Action**
- write as is. The filename attr should not be touched.
**Case 3**
::
descriptor.filename == None
descriptor.path == "~/absolute/path/there"
**Action**
- calculate the relative path for filename. We're not overwriting some
other value for filename, it should be fine.
**Case 4**
::
descriptor.filename == '../somewhere'
descriptor.path == "~/absolute/path/there"
**Action**
- There is a conflict between the given filename, and the path. The
difference could have happened for any number of reasons. Assuming
the values were not in conflict when the object was created, either
could have changed. We can't guess.
- Assume the path attribute is more up to date. Calculate a new value
for filename based on the path and the document path.
Recommendation for editors
--------------------------
- If you want to explicitly set the **filename** attribute, leave the
path attribute empty.
- If you want to explicitly set the **path** attribute, leave the
filename attribute empty. It will be recalculated.
- Use ``documentObject.updateFilenameFromPath()`` to explicitly set the
**filename** attributes for all instance and source descriptors.
Common Lib Key Registry
=======================
public.skipExportGlyphs
-----------------------
This lib key works the same as the UFO lib key with the same name. The
difference is that applications using a Designspace as the corner stone of the
font compilation process should use the lib key in that Designspace instead of
any of the UFOs. If the lib key is empty or not present in the Designspace, all
glyphs should be exported, regardless of what the same lib key in any of the
UFOs says.
Implementation and differences
==============================
The designspace format has gone through considerable development.
- the format was originally written for MutatorMath.
- the format is now also used in fontTools.varlib.
- not all values are be required by all implementations.
Varlib vs. MutatorMath
----------------------
There are some differences between the way MutatorMath and fontTools.varlib handle designspaces.
- Varlib does not support anisotropic interpolations.
- MutatorMath will extrapolate over the boundaries of
the axes. Varlib can not (at the moment).
- Varlib requires much less data to define an instance than
MutatorMath.
- The goals of Varlib and MutatorMath are different, so not all
attributes are always needed.
Rules and generating static UFO instances
-----------------------------------------
When making instances as UFOs from a designspace with rules, it can
be useful to evaluate the rules so that the characterset of the UFO
reflects, as much as possible, the state of a variable font when seen
at the same location. This can be done by some swapping and renaming of
glyphs.
While useful for proofing or development work, it should be noted that
swapping and renaming leaves the UFOs with glyphnames that are no longer
descriptive. For instance, after a swap ``dollar.bar`` could contain a shape
without a bar. Also, when the swapped glyphs are part of other GSUB variations
it can become complex very quickly. So proceed with caution.
- Assuming ``rulesProcessingLast = True``:
- We need to swap the glyphs so that the original shape is still available.
For instance, if a rule swaps ``a`` for ``a.alt``, a glyph
that references ``a`` in a component would then show the new ``a.alt``.
- But that can lead to unexpected results, the two glyphs may have different
widths or height. So, glyphs that are not specifically referenced in a rule
**should not change appearance**. That means that the implementation that swaps
``a`` and ``a.alt`` also swap all components that reference these
glyphs in order to preserve their appearance.
- The swap function also needs to take care of swapping the names in
kerning data and any GPOS code.
Version history
===============
Version 5.0
-----------
The format was extended to describe the entire design space of a reasonably
regular font family in one file, with global data about the family to reduce
repetition in sub-sections. "Reasonably regular" means that the sources and
instances across the previously multiple Designspace files are positioned on a
grid and derive their metadata (like style name) in a way that's compatible with
the STAT model, based on their axis positions. Axis mappings must be the same
across the entire space.
1. Each axis can have labels attached to stops within the axis range, analogous to the
`OpenType STAT <https://docs.microsoft.com/en-us/typography/opentype/spec/stat>`_
table. Free-standing labels for locations are also allowed. The data is intended
to be compiled into a ``STAT`` table.
2. The axes can be discrete, to say that they do not interpolate, like a distinctly
constructed upright and italic variant of a family.
3. The data can be used to derive style and PostScript names for instances.
4. A new ``variable-fonts`` element can subdivide the Designspace into multiple subsets that
mix and match the globally available axes. It is possible for these sub-spaces to have
a different default location from the global default location. It is required if the
Designspace contains a discrete axis and you want to produce a variable font.
What is currently not supported is e.g.
1. A setup where different sources sit at the same logical location in the design space,
think "MyFont Regular" and "MyFont SmallCaps Regular". (this situation could be
encoded by adding a "SmallCaps" discrete axis, if that makes sense).
2. Anisotropic locations for axis labels.
Older versions
--------------
- In some implementations that preceed Variable Fonts, the `copyInfo`
flag in a source indicated the source was to be treated as the default.
This is no longer compatible with the assumption that the default font
is located on the default value of each axis.
- Older implementations did not require axis records to be present in
the designspace file. The axis extremes for instance were generated
from the locations used in the sources. This is no longer possible.

View File

@ -0,0 +1,199 @@
################################
1 DesignSpaceDocument Python API
################################
An object to read, write and edit interpolation systems for typefaces.
Define sources, axes, rules, variable fonts and instances.
Get an overview of the available classes in the Class Diagram below:
.. figure:: v5_class_diagram.png
:width: 650px
:alt: UML class diagram of designspaceLib
UML class diagram of designspaceLib. Click to enlarge.
.. contents:: Table of contents
:local:
.. _designspacedocument-object:
===================
DesignSpaceDocument
===================
.. autoclass:: fontTools.designspaceLib::DesignSpaceDocument
:members:
:undoc-members:
:member-order: bysource
.. _axis-descriptor-object:
AxisDescriptor
==============
.. autoclass:: fontTools.designspaceLib::AxisDescriptor
:members:
:undoc-members:
:inherited-members: SimpleDescriptor
:member-order: bysource
DiscreteAxisDescriptor
======================
.. autoclass:: fontTools.designspaceLib::DiscreteAxisDescriptor
:members:
:undoc-members:
:inherited-members: SimpleDescriptor
:member-order: bysource
AxisLabelDescriptor
-------------------
.. autoclass:: fontTools.designspaceLib::AxisLabelDescriptor
:members:
:undoc-members:
:member-order: bysource
LocationLabelDescriptor
=======================
.. autoclass:: fontTools.designspaceLib::LocationLabelDescriptor
:members:
:undoc-members:
:member-order: bysource
RuleDescriptor
==============
.. autoclass:: fontTools.designspaceLib::RuleDescriptor
:members:
:undoc-members:
:member-order: bysource
Evaluating rules
----------------
.. autofunction:: fontTools.designspaceLib::evaluateRule
.. autofunction:: fontTools.designspaceLib::evaluateConditions
.. autofunction:: fontTools.designspaceLib::processRules
.. _source-descriptor-object:
SourceDescriptor
================
.. autoclass:: fontTools.designspaceLib::SourceDescriptor
:members:
:undoc-members:
:member-order: bysource
VariableFontDescriptor
======================
.. autoclass:: fontTools.designspaceLib::VariableFontDescriptor
:members:
:undoc-members:
:member-order: bysource
RangeAxisSubsetDescriptor
-------------------------
.. autoclass:: fontTools.designspaceLib::RangeAxisSubsetDescriptor
:members:
:undoc-members:
:member-order: bysource
ValueAxisSubsetDescriptor
-------------------------
.. autoclass:: fontTools.designspaceLib::ValueAxisSubsetDescriptor
:members:
:undoc-members:
:member-order: bysource
.. _instance-descriptor-object:
InstanceDescriptor
==================
.. autoclass:: fontTools.designspaceLib::InstanceDescriptor
:members:
:undoc-members:
:member-order: bysource
.. _subclassing-descriptors:
=======================
Subclassing descriptors
=======================
The DesignSpaceDocument can take subclassed Reader and Writer objects.
This allows you to work with your own descriptors. You could subclass
the descriptors. But as long as they have the basic attributes the
descriptor does not need to be a subclass.
.. code:: python
class MyDocReader(BaseDocReader):
axisDescriptorClass = MyAxisDescriptor
discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
axisLabelDescriptorClass = MyAxisLabelDescriptor
locationLabelDescriptorClass = MyLocationLabelDescriptor
ruleDescriptorClass = MyRuleDescriptor
sourceDescriptorClass = MySourceDescriptor
variableFontsDescriptorClass = MyVariableFontDescriptor
valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
instanceDescriptorClass = MyInstanceDescriptor
class MyDocWriter(BaseDocWriter):
axisDescriptorClass = MyAxisDescriptor
discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
axisLabelDescriptorClass = MyAxisLabelDescriptor
locationLabelDescriptorClass = MyLocationLabelDescriptor
ruleDescriptorClass = MyRuleDescriptor
sourceDescriptorClass = MySourceDescriptor
variableFontsDescriptorClass = MyVariableFontDescriptor
valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
instanceDescriptorClass = MyInstanceDescriptor
myDoc = DesignSpaceDocument(MyDocReader, MyDocWriter)
==============
Helper modules
==============
fontTools.designspaceLib.split
==============================
See :ref:`Scripting > Working with DesignSpace version 5 <working_with_v5>`
for more information.
.. automodule:: fontTools.designspaceLib.split
fontTools.designspaceLib.stat
=============================
.. automodule:: fontTools.designspaceLib.stat
fontTools.designspaceLib.statNames
==================================
.. automodule:: fontTools.designspaceLib.statNames

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
#######################
Scripting a designspace
#######################
#########################
3 Scripting a designspace
#########################
It can be useful to build a designspace with a script rather than
construct one with an interface like
@ -88,6 +88,7 @@ OpenType <https://www.microsoft.com/typography/otspec/avar.htm>`__.
.. code:: python
# (user space, design space), (user space, design space)...
a1.map = [(0.0, 10.0), (401.0, 66.0), (1000.0, 990.0)]
Make a source object
@ -241,7 +242,7 @@ This is how you check the default font.
Generating?
***********
You can generate the UFO's with MutatorMath:
You can generate the UFOs with MutatorMath:
.. code:: python
@ -251,3 +252,39 @@ You can generate the UFO's with MutatorMath:
- Assuming the outline data in the masters is compatible.
Or you can use the file in making a **variable font** with varlib.
.. _working_with_v5:
**********************************
Working with DesignSpace version 5
**********************************
The new version 5 allows "discrete" axes, which do not interpolate across their
values. This is useful to store in one place family-wide data such as the STAT
information, however it prevents the usual things done on designspaces that
interpolate everywhere:
- checking that all sources are compatible for interpolation
- building variable fonts
In order to allow the above in tools that want to handle designspace v5,
the :mod:`fontTools.designspaceLib.split` module provides two methods to
split a designspace into interpolable sub-spaces,
:func:`splitInterpolable() <fontTools.designspaceLib.split.splitInterpolable>`
and then
:func:`splitVariableFonts() <fontTools.designspaceLib.split.splitVariableFonts>`.
.. figure:: v5_split_downconvert.png
:width: 680px
:alt: Example process diagram to check and build DesignSpace 5
Example process process to check and build Designspace 5.
Also, for older tools that don't know about the other version 5 additions such
as the STAT data fields, the function
:func:`convert5to4() <fontTools.designspaceLib.split.convert5to4>` allows to
strip new information from a designspace version 5 to downgrade it to a
collection of version 4 documents, one per variable font.

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

View File

@ -0,0 +1,292 @@
@startuml v5_class_diagram
title
Designspace v5 Class Diagram
<size:12>Note: the ""Descriptor"" suffix is omitted from most classes
end title
' left to right direction
skinparam class {
BackgroundColor<<New>> PaleGreen
}
class DesignSpaceDocument {
+ formatVersion: str = None
+ <color:green><b><<New>> elidedFallbackName: str = None
+ rulesProcessingLast: bool = False
+ lib: Dict = {}
}
note left of DesignSpaceDocument::elidedFallbackName
STAT Style Attributes Header field ""elidedFallbackNameID""
end note
abstract class AbstractAxis {
+ tag: str
+ name: str
+ labelNames: Dict[str, str]
+ hidden: bool
+ map: List[Tuple[float, float]]
+ <color:green><b><<New>> axisOrdering: int
}
DesignSpaceDocument *-- "*" AbstractAxis: axes >
note right of AbstractAxis::axisOrdering
STAT Axis Record field
end note
class Axis {
+ minimum: float
+ maximum: float
+ default: float
}
AbstractAxis <|--- Axis
note bottom of Axis
This is the usual
Axis, with a range
of values.
end note
class DiscreteAxis <<New>> {
+ values: List[float]
+ default: float
}
AbstractAxis <|--- DiscreteAxis
note bottom of DiscreteAxis
A discrete axis is not
interpolable, e.g.
Uprights vs Italics, and
so has "discrete" stops
instead of a continuous
range of values.
end note
Axis .[hidden] DiscreteAxis
class AxisLabel <<New>> {
+ userMinimum: Optional[float]
+ userValue: float
+ userMaximum: Optional[float]
+ name: str
+ elidable: bool
+ olderSibling: bool
+ linkedUserValue: Optional[float]
+ labelNames: Dict[str, str]
+ getFormat(): 1 | 2 | 3
}
note right of AxisLabel
Label for a
stop on an Axis
(STAT format
1,2,3)
end note
AbstractAxis *-- "*" AxisLabel: <<New>> \n axisLabels >
class LocationLabel <<New>> {
+ name: str
+ location: Dict[str, float]
+ elidable: bool
+ olderSibling: bool
+ labelNames: Dict[str, str]
}
note right of LocationLabel
Label for a
freestanding
location
(STAT format 4)
end note
DesignSpaceDocument *--- "*" LocationLabel: <<New>> \n locationLabels >
class Rule {
+ name: str
+ conditionSets: List[ConditionSet]
+ subs: Dict[str, str]
}
DesignSpaceDocument *- "*" Rule: rules >
class Source {
+ name: Optional[str]
+ filename: str
+ path: str
+ layerName: Optional[str]
+ <color:brown><s><<Deprecated>> location: Location
+ <color:green><b><<New>> designLocation: AnisotropicLocation
....
+ font: Optional[Font]
....
+ familyName: Optional[str]
+ styleName: Optional[str]
+ <color:green><b><<New>> localisedFamilyName: Dict
....
+ <color:brown><s><<Deprecated>> copyLib: bool
+ <color:brown><s><<Deprecated>> copyInfo: bool
+ <color:brown><s><<Deprecated>> copyGroups: bool
+ <color:brown><s><<Deprecated>> copyFeatures: bool
....
+ muteKerning: bool
+ muteInfo: bool
+ mutedGlyphNames: List[str]
----
+ <color:green><b><<New>> getFullDesignLocation(doc)
}
DesignSpaceDocument *-- "*" Source: sources >
note right of Source::localisedFamilyName
New field to allow generation
of localised instance names using
STAT information.
end note
note right of Source::copyGroups
These fields are already not meaningful
anymore in version 4 (the default source
will be used as "neutral" for groups, info
and features. ''copyLib'' can be emulated
by putting content in the designspace's lib.
end note
note as NLocSource
The location of
sources can still only
be defined in design
coordinates, and now
also by relying on
axis defaults.
To build the final,
"full" location, a
helper method is
provided, that uses
axis defaults and
axis mappings to
fill in the blanks.
end note
NLocSource . Source::designLocation
NLocSource . Source::getFullDesignLocation
class VariableFont <<New>> {
+ filename: str
+ lib: Dict
}
DesignSpaceDocument *--- "*" VariableFont: <<New>> \n variableFonts >
note right of VariableFont
A variable font is a
subset of the designspace
where everything interpolates
(and so can be compiled into
an OpenType variable font).
end note
abstract class AbstractAxisSubset <<New>> {
+ name: str
}
VariableFont *-- "*" AbstractAxisSubset: <<New>> \n axisSubsets >
note right of AbstractAxisSubset
An axis subset selects a range
or a spot on each the available
axes from the whole designspace.
By default, only the default value
of each axis is used to define the
variable font.
Continuous axes can be specified
to include their full range instead;
or a subset of the range.
Discrete axes can be specified
to include a different spot than the
default.
end note
class RangeAxisSubset <<New>> {
+ userMinimum: float
+ userDefault: float
+ userMaximum: float
}
AbstractAxisSubset <|-- RangeAxisSubset
class ValueAxisSubset <<New>> {
+ userValue: float
}
AbstractAxisSubset <|-- ValueAxisSubset
class Instance {
+ filename: str
+ path: str
+ <color:brown><s><<Deprecated>> location: Location
+ <color:green><b><<New>> locationLabel: str
+ <color:green><b><<New>> designLocation: AnisotropicLocation
+ <color:green><b><<New>> userLocation: SimpleLocation
....
+ font: Optional[Font]
....
+ <color:orange><b><<Changed>> name: Optional[str]
+ <color:orange><b><<Changed>> familyName: Optional[str]
+ <color:orange><b><<Changed>> styleName: Optional[str]
+ <color:orange><b><<Changed>> postScriptFontName: Optional[str]
+ <color:orange><b><<Changed>> styleMapFamilyName: Optional[str]
+ <color:orange><b><<Changed>> styleMapStyleName: Optional[str]
+ localisedFamilyName: Dict
+ localisedStyleName: Dict
+ localisedStyleMapFamilyName: Dict
+ localisedStyleMapStyleName: Dict
....
+ <color:brown><s><<Deprecated>> glyphs: Dict
+ <color:brown><s><<Deprecated>> kerning: bool
+ <color:brown><s><<Deprecated>> info: bool
....
+ lib: Dict
----
+ <color:green><b><<New>> clearLocation()
+ <color:green><b><<New>> getLocationLabelDescriptor(doc)
+ <color:green><b><<New>> getFullDesignLocation(doc)
+ <color:green><b><<New>> getFullUserLocation(doc)
}
DesignSpaceDocument *-- "*" Instance: instances >
note right of Instance::locationLabel
The location can now alternatively
be a string = name of a LocationLabel
(STAT format 4). The instance then
adopts the location of that label.
See the Decovar example file.
end note
note right of Instance::styleMapStyleName
All the name field are now optional.
Their default values will be computed
using the provided STAT table data
and the STAT rules from the spec.
For styleMap{Family,Style}Name, they
would be computed using the STAT
""linkedUserValue"" fields.
end note
note right of Instance::glyphs
This attribute has been replaced by rules
end note
note right of Instance::kerning
All instances get kerning and info
nowadays.
end note
note as NLocInstance
The location of instances
can now be defined using
either:
- a STAT LocationLabel
- design coordinates
- user coordinates.
- relying on axis defaults
To build the final, "full"
location, a few helper
methods are provided,
that aggregate data from
these sources and apply
the axis mappings.
end note
NLocInstance . Instance::designLocation
NLocInstance . Instance::getFullDesignLocation
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -0,0 +1,147 @@
@startuml v5_split_downconvert
title
How to split and down-convert a DesignSpace version 5
<size:14>so that existing tools can work with it
end title
start
#lightgrey:DesignSpace 5.0
- with STAT data
- optional instance names
- with discrete axes
- with multiple VFs]
note left
- STAT data means that compilers will need
to write that data to the ouput TTFs
- optional instance names means that
compilers will need to generate any missing
names using the STAT data
- discrete axes mean that not all sources
are compatible for interpolation
- multiple VFs means that compilers will
need to output several TTFs for one DS
end note
split
split again
:""splitInterpolating()"";
note left
- Create one DS document per interpolating
sub-space, for example: with a discrete
axis for Upright vs Italics, create 2
DesignSpaces, one for the Uprights, and
one for the Italics.
- Expand all missing instance names using
the STAT data.
- Drop all the STAT data because as we start
taking out discrete axes, the sub-documents
lose STAT data anyway (only the full
document at the start of the process should
be used to generate the STAT table)
end note
split
#lightgrey:DesignSpace 5.0
- (no STAT data)
- (explicit instance names)
- (at discrete location #1)
- with multiple VFs]
note left
All sources in this sub-space are
(supposed to be) compatible for
interpolation
end note
split again
#lightgrey:DesignSpace 5.0
- (no STAT data)
- (explicit instance names)
- (at discrete location #2)
- with multiple VFs]
detach
split again
#lightgrey:etc
...]
detach
end split
:check compatibility;
:build compatible master TTFs with cu2qu;
:""splitVariableFonts()"";
note left
Create one DS document per variable font,
for example: the above document may
describe a weight and width space, out of
which we'll build 3 variable fonts:
full weight + width, weight only, width only.
end note
split
#lightgrey:DesignSpace 5.0
- (no STAT data)
- (explicit instance names)
- (at discrete location #1)
- (describing just VF #1)]
note left
This document looks very much
like version 4.1, you can just
change the version number at
the top and feed it to a tool
that doesn't know about v5;
see ""convert5to4()"".
end note
split again
#lightgrey:DesignSpace 5.0
- (no STAT data)
- (explicit instance names)
- (at discrete location #1)
- (describing just VF #2)]
detach
split again
#lightgrey:etc
...]
detach
end split
:""varLib.build()"";
#lightgrey:Variable font TTF
No STAT data]
end split
:""buildVFStatTable()"";
note left
Apply STAT data using the full document
from the start of the process + filtering
entries based on this VF's location
end note
#lightgrey:Variable font TTF
With STAT data]
end
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,424 @@
"""Allows building all the variable fonts of a DesignSpace version 5 by
splitting the document into interpolable sub-space, then into each VF.
"""
from __future__ import annotations
import itertools
import logging
import math
from typing import Any, Callable, Dict, Iterator, List, Tuple
from fontTools.designspaceLib import (
AxisDescriptor,
DesignSpaceDocument,
DiscreteAxisDescriptor,
InstanceDescriptor,
RuleDescriptor,
SimpleLocationDict,
SourceDescriptor,
VariableFontDescriptor,
)
from fontTools.designspaceLib.statNames import StatNames, getStatNames
from fontTools.designspaceLib.types import (
Range,
Region,
ConditionSet,
getVFUserRegion,
locationInRegion,
regionInRegion,
userRegionToDesignRegion,
)
LOGGER = logging.getLogger(__name__)
MakeInstanceFilenameCallable = Callable[
[DesignSpaceDocument, InstanceDescriptor, StatNames], str
]
def defaultMakeInstanceFilename(
doc: DesignSpaceDocument, instance: InstanceDescriptor, statNames: StatNames
) -> str:
"""Default callable to synthesize an instance filename
when makeNames=True, for instances that don't specify an instance name
in the designspace. This part of the name generation can be overriden
because it's not specified by the STAT table.
"""
familyName = instance.familyName or statNames.familyNames.get("en")
styleName = instance.styleName or statNames.styleNames.get("en")
return f"{familyName}-{styleName}.ttf"
def splitInterpolable(
doc: DesignSpaceDocument,
makeNames: bool = True,
expandLocations: bool = True,
makeInstanceFilename: MakeInstanceFilenameCallable = defaultMakeInstanceFilename,
) -> Iterator[Tuple[SimpleLocationDict, DesignSpaceDocument]]:
"""Split the given DS5 into several interpolable sub-designspaces.
There are as many interpolable sub-spaces as there are combinations of
discrete axis values.
E.g. with axes:
- italic (discrete) Upright or Italic
- style (discrete) Sans or Serif
- weight (continuous) 100 to 900
There are 4 sub-spaces in which the Weight axis should interpolate:
(Upright, Sans), (Upright, Serif), (Italic, Sans) and (Italic, Serif).
The sub-designspaces still include the full axis definitions and STAT data,
but the rules, sources, variable fonts, instances are trimmed down to only
keep what falls within the interpolable sub-space.
Args:
- ``makeNames``: Whether to compute the instance family and style
names using the STAT data.
- ``expandLocations``: Whether to turn all locations into "full"
locations, including implicit default axis values where missing.
- ``makeInstanceFilename``: Callable to synthesize an instance filename
when makeNames=True, for instances that don't specify an instance name
in the designspace. This part of the name generation can be overridden
because it's not specified by the STAT table.
.. versionadded:: 5.0
"""
discreteAxes = []
interpolableUserRegion: Region = {}
for axis in doc.axes:
if isinstance(axis, DiscreteAxisDescriptor):
discreteAxes.append(axis)
else:
interpolableUserRegion[axis.name] = Range(
axis.minimum, axis.maximum, axis.default
)
valueCombinations = itertools.product(*[axis.values for axis in discreteAxes])
for values in valueCombinations:
discreteUserLocation = {
discreteAxis.name: value
for discreteAxis, value in zip(discreteAxes, values)
}
subDoc = _extractSubSpace(
doc,
{**interpolableUserRegion, **discreteUserLocation},
keepVFs=True,
makeNames=makeNames,
expandLocations=expandLocations,
makeInstanceFilename=makeInstanceFilename,
)
yield discreteUserLocation, subDoc
def splitVariableFonts(
doc: DesignSpaceDocument,
makeNames: bool = False,
expandLocations: bool = False,
makeInstanceFilename: MakeInstanceFilenameCallable = defaultMakeInstanceFilename,
) -> Iterator[Tuple[str, DesignSpaceDocument]]:
"""Convert each variable font listed in this document into a standalone
designspace. This can be used to compile all the variable fonts from a
format 5 designspace using tools that can only deal with 1 VF at a time.
Args:
- ``makeNames``: Whether to compute the instance family and style
names using the STAT data.
- ``expandLocations``: Whether to turn all locations into "full"
locations, including implicit default axis values where missing.
- ``makeInstanceFilename``: Callable to synthesize an instance filename
when makeNames=True, for instances that don't specify an instance name
in the designspace. This part of the name generation can be overridden
because it's not specified by the STAT table.
.. versionadded:: 5.0
"""
# Make one DesignspaceDoc v5 for each variable font
for vf in doc.getVariableFonts():
vfUserRegion = getVFUserRegion(doc, vf)
vfDoc = _extractSubSpace(
doc,
vfUserRegion,
keepVFs=False,
makeNames=makeNames,
expandLocations=expandLocations,
makeInstanceFilename=makeInstanceFilename,
)
vfDoc.lib = {**vfDoc.lib, **vf.lib}
yield vf.name, vfDoc
def convert5to4(
doc: DesignSpaceDocument,
) -> Dict[str, DesignSpaceDocument]:
"""Convert each variable font listed in this document into a standalone
format 4 designspace. This can be used to compile all the variable fonts
from a format 5 designspace using tools that only know about format 4.
.. versionadded:: 5.0
"""
vfs = {}
for _location, subDoc in splitInterpolable(doc):
for vfName, vfDoc in splitVariableFonts(subDoc):
vfDoc.formatVersion = "4.1"
vfs[vfName] = vfDoc
return vfs
def _extractSubSpace(
doc: DesignSpaceDocument,
userRegion: Region,
*,
keepVFs: bool,
makeNames: bool,
expandLocations: bool,
makeInstanceFilename: MakeInstanceFilenameCallable,
) -> DesignSpaceDocument:
subDoc = DesignSpaceDocument()
# Don't include STAT info
# FIXME: (Jany) let's think about it. Not include = OK because the point of
# the splitting is to build VFs and we'll use the STAT data of the full
# document to generate the STAT of the VFs, so "no need" to have STAT data
# in sub-docs. Counterpoint: what if someone wants to split this DS for
# other purposes? Maybe for that it would be useful to also subset the STAT
# data?
# subDoc.elidedFallbackName = doc.elidedFallbackName
def maybeExpandDesignLocation(object):
if expandLocations:
return object.getFullDesignLocation(doc)
else:
return object.designLocation
for axis in doc.axes:
range = userRegion[axis.name]
if isinstance(range, Range) and isinstance(axis, AxisDescriptor):
subDoc.addAxis(
AxisDescriptor(
# Same info
tag=axis.tag,
name=axis.name,
labelNames=axis.labelNames,
hidden=axis.hidden,
# Subset range
minimum=max(range.minimum, axis.minimum),
default=range.default or axis.default,
maximum=min(range.maximum, axis.maximum),
map=[
(user, design)
for user, design in axis.map
if range.minimum <= user <= range.maximum
],
# Don't include STAT info
axisOrdering=None,
axisLabels=None,
)
)
# Don't include STAT info
# subDoc.locationLabels = doc.locationLabels
# Rules: subset them based on conditions
designRegion = userRegionToDesignRegion(doc, userRegion)
subDoc.rules = _subsetRulesBasedOnConditions(doc.rules, designRegion)
subDoc.rulesProcessingLast = doc.rulesProcessingLast
# Sources: keep only the ones that fall within the kept axis ranges
for source in doc.sources:
if not locationInRegion(doc.map_backward(source.designLocation), userRegion):
continue
subDoc.addSource(
SourceDescriptor(
filename=source.filename,
path=source.path,
font=source.font,
name=source.name,
designLocation=_filterLocation(
userRegion, maybeExpandDesignLocation(source)
),
layerName=source.layerName,
familyName=source.familyName,
styleName=source.styleName,
muteKerning=source.muteKerning,
muteInfo=source.muteInfo,
mutedGlyphNames=source.mutedGlyphNames,
)
)
# Copy family name translations from the old default source to the new default
vfDefault = subDoc.findDefault()
oldDefault = doc.findDefault()
if vfDefault is not None and oldDefault is not None:
vfDefault.localisedFamilyName = oldDefault.localisedFamilyName
# Variable fonts: keep only the ones that fall within the kept axis ranges
if keepVFs:
# Note: call getVariableFont() to make the implicit VFs explicit
for vf in doc.getVariableFonts():
vfUserRegion = getVFUserRegion(doc, vf)
if regionInRegion(vfUserRegion, userRegion):
subDoc.addVariableFont(
VariableFontDescriptor(
name=vf.name,
filename=vf.filename,
axisSubsets=[
axisSubset
for axisSubset in vf.axisSubsets
if isinstance(userRegion[axisSubset.name], Range)
],
lib=vf.lib,
)
)
# Instances: same as Sources + compute missing names
for instance in doc.instances:
if not locationInRegion(instance.getFullUserLocation(doc), userRegion):
continue
if makeNames:
statNames = getStatNames(doc, instance.getFullUserLocation(doc))
familyName = instance.familyName or statNames.familyNames.get("en")
styleName = instance.styleName or statNames.styleNames.get("en")
subDoc.addInstance(
InstanceDescriptor(
filename=instance.filename
or makeInstanceFilename(doc, instance, statNames),
path=instance.path,
font=instance.font,
name=instance.name or f"{familyName} {styleName}",
userLocation={} if expandLocations else instance.userLocation,
designLocation=_filterLocation(
userRegion, maybeExpandDesignLocation(instance)
),
familyName=familyName,
styleName=styleName,
postScriptFontName=instance.postScriptFontName
or statNames.postScriptFontName,
styleMapFamilyName=instance.styleMapFamilyName
or statNames.styleMapFamilyNames.get("en"),
styleMapStyleName=instance.styleMapStyleName
or statNames.styleMapStyleName,
localisedFamilyName=instance.localisedFamilyName
or statNames.familyNames,
localisedStyleName=instance.localisedStyleName
or statNames.styleNames,
localisedStyleMapFamilyName=instance.localisedStyleMapFamilyName
or statNames.styleMapFamilyNames,
localisedStyleMapStyleName=instance.localisedStyleMapStyleName
or {},
lib=instance.lib,
)
)
else:
subDoc.addInstance(
InstanceDescriptor(
filename=instance.filename,
path=instance.path,
font=instance.font,
name=instance.name,
userLocation={} if expandLocations else instance.userLocation,
designLocation=_filterLocation(
userRegion, maybeExpandDesignLocation(instance)
),
familyName=instance.familyName,
styleName=instance.styleName,
postScriptFontName=instance.postScriptFontName,
styleMapFamilyName=instance.styleMapFamilyName,
styleMapStyleName=instance.styleMapStyleName,
localisedFamilyName=instance.localisedFamilyName,
localisedStyleName=instance.localisedStyleName,
localisedStyleMapFamilyName=instance.localisedStyleMapFamilyName,
localisedStyleMapStyleName=instance.localisedStyleMapStyleName,
lib=instance.lib,
)
)
subDoc.lib = doc.lib
return subDoc
def _conditionSetFrom(conditionSet: List[Dict[str, Any]]) -> ConditionSet:
c: Dict[str, Range] = {}
for condition in conditionSet:
c[condition["name"]] = Range(
condition.get("minimum", -math.inf),
condition.get("maximum", math.inf),
)
return c
def _subsetRulesBasedOnConditions(
rules: List[RuleDescriptor], designRegion: Region
) -> List[RuleDescriptor]:
# What rules to keep:
# - Keep the rule if any conditionset is relevant.
# - A conditionset is relevant if all conditions are relevant or it is empty.
# - A condition is relevant if
# - axis is point (C-AP),
# - and point in condition's range (C-AP-in)
# (in this case remove the condition because it's always true)
# - else (C-AP-out) whole conditionset can be discarded (condition false
# => conditionset false)
# - axis is range (C-AR),
# - (C-AR-all) and axis range fully contained in condition range: we can
# scrap the condition because it's always true
# - (C-AR-inter) and intersection(axis range, condition range) not empty:
# keep the condition with the smaller range (= intersection)
# - (C-AR-none) else, whole conditionset can be discarded
newRules: List[RuleDescriptor] = []
for rule in rules:
newRule: RuleDescriptor = RuleDescriptor(
name=rule.name, conditionSets=[], subs=rule.subs
)
for conditionset in rule.conditionSets:
cs = _conditionSetFrom(conditionset)
newConditionset: List[Dict[str, Any]] = []
discardConditionset = False
for selectionName, selectionValue in designRegion.items():
# TODO: Ensure that all(key in conditionset for key in region.keys())?
if selectionName not in cs:
# raise Exception("Selection has different axes than the rules")
continue
if isinstance(selectionValue, (float, int)): # is point
# Case C-AP-in
if selectionValue in cs[selectionName]:
pass # always matches, conditionset can stay empty for this one.
# Case C-AP-out
else:
discardConditionset = True
else: # is range
# Case C-AR-all
if selectionValue in cs[selectionName]:
pass # always matches, conditionset can stay empty for this one.
else:
intersection = cs[selectionName].intersection(selectionValue)
# Case C-AR-inter
if intersection is not None:
newConditionset.append(
{
"name": selectionName,
"minimum": intersection.minimum,
"maximum": intersection.maximum,
}
)
# Case C-AR-none
else:
discardConditionset = True
if not discardConditionset:
newRule.conditionSets.append(newConditionset)
if newRule.conditionSets:
newRules.append(newRule)
return newRules
def _filterLocation(
userRegion: Region,
location: Dict[str, float],
) -> Dict[str, float]:
return {
name: value
for name, value in location.items()
if name in userRegion and isinstance(userRegion[name], Range)
}

View File

@ -0,0 +1,224 @@
"""Compute name information for a given location in user-space coordinates
using STAT data. This can be used to fill-in automatically the names of an
instance:
.. code:: python
instance = doc.instances[0]
names = getStatNames(doc, instance.getFullUserLocation(doc))
print(names.styleNames)
"""
from __future__ import annotations
from dataclasses import dataclass
from typing import Dict, Optional, Tuple, Union
import logging
from fontTools.designspaceLib import (
AxisDescriptor,
AxisLabelDescriptor,
DesignSpaceDocument,
DesignSpaceDocumentError,
DiscreteAxisDescriptor,
SimpleLocationDict,
SourceDescriptor,
)
LOGGER = logging.getLogger(__name__)
# TODO(Python 3.8): use Literal
# RibbiStyleName = Union[Literal["regular"], Literal["bold"], Literal["italic"], Literal["bold italic"]]
RibbiStyle = str
BOLD_ITALIC_TO_RIBBI_STYLE = {
(False, False): "regular",
(False, True): "italic",
(True, False): "bold",
(True, True): "bold italic",
}
@dataclass
class StatNames:
"""Name data generated from the STAT table information."""
familyNames: Dict[str, str]
styleNames: Dict[str, str]
postScriptFontName: Optional[str]
styleMapFamilyNames: Dict[str, str]
styleMapStyleName: Optional[RibbiStyle]
def getStatNames(
doc: DesignSpaceDocument, userLocation: SimpleLocationDict
) -> StatNames:
"""Compute the family, style, PostScript names of the given ``userLocation``
using the document's STAT information.
Also computes localizations.
If not enough STAT data is available for a given name, either its dict of
localized names will be empty (family and style names), or the name will be
None (PostScript name).
.. versionadded:: 5.0
"""
familyNames: Dict[str, str] = {}
defaultSource: Optional[SourceDescriptor] = doc.findDefault()
if defaultSource is None:
LOGGER.warning("Cannot determine default source to look up family name.")
elif defaultSource.familyName is None:
LOGGER.warning(
"Cannot look up family name, assign the 'familyname' attribute to the default source."
)
else:
familyNames = {
"en": defaultSource.familyName,
**defaultSource.localisedFamilyName,
}
styleNames: Dict[str, str] = {}
# If a free-standing label matches the location, use it for name generation.
label = doc.labelForUserLocation(userLocation)
if label is not None:
styleNames = {"en": label.name, **label.labelNames}
# Otherwise, scour the axis labels for matches.
else:
# Gather all languages in which at least one translation is provided
# Then build names for all these languages, but fallback to English
# whenever a translation is missing.
labels = _getAxisLabelsForUserLocation(doc.axes, userLocation)
languages = set(language for label in labels for language in label.labelNames)
languages.add("en")
for language in languages:
styleName = " ".join(
label.labelNames.get(language, label.defaultName)
for label in labels
if not label.elidable
)
if not styleName and doc.elidedFallbackName is not None:
styleName = doc.elidedFallbackName
styleNames[language] = styleName
postScriptFontName = None
if "en" in familyNames and "en" in styleNames:
postScriptFontName = f"{familyNames['en']}-{styleNames['en']}".replace(" ", "")
styleMapStyleName, regularUserLocation = _getRibbiStyle(doc, userLocation)
styleNamesForStyleMap = styleNames
if regularUserLocation != userLocation:
regularStatNames = getStatNames(doc, regularUserLocation)
styleNamesForStyleMap = regularStatNames.styleNames
styleMapFamilyNames = {}
for language in set(familyNames).union(styleNames.keys()):
familyName = familyNames.get(language, familyNames["en"])
styleName = styleNamesForStyleMap.get(language, styleNamesForStyleMap["en"])
styleMapFamilyNames[language] = (familyName + " " + styleName).strip()
return StatNames(
familyNames=familyNames,
styleNames=styleNames,
postScriptFontName=postScriptFontName,
styleMapFamilyNames=styleMapFamilyNames,
styleMapStyleName=styleMapStyleName,
)
def _getSortedAxisLabels(
axes: list[Union[AxisDescriptor, DiscreteAxisDescriptor]],
) -> Dict[str, list[AxisLabelDescriptor]]:
"""Returns axis labels sorted by their ordering, with unordered ones appended as
they are listed."""
# First, get the axis labels with explicit ordering...
sortedAxes = sorted(
(axis for axis in axes if axis.axisOrdering is not None),
key=lambda a: a.axisOrdering,
)
sortedLabels: Dict[str, list[AxisLabelDescriptor]] = {
axis.name: axis.axisLabels for axis in sortedAxes
}
# ... then append the others in the order they appear.
# NOTE: This relies on Python 3.7+ dict's preserved insertion order.
for axis in axes:
if axis.axisOrdering is None:
sortedLabels[axis.name] = axis.axisLabels
return sortedLabels
def _getAxisLabelsForUserLocation(
axes: list[Union[AxisDescriptor, DiscreteAxisDescriptor]],
userLocation: SimpleLocationDict,
) -> list[AxisLabelDescriptor]:
labels: list[AxisLabelDescriptor] = []
allAxisLabels = _getSortedAxisLabels(axes)
if allAxisLabels.keys() != userLocation.keys():
LOGGER.warning(
f"Mismatch between user location '{userLocation.keys()}' and available "
f"labels for '{allAxisLabels.keys()}'."
)
for axisName, axisLabels in allAxisLabels.items():
userValue = userLocation[axisName]
label: Optional[AxisLabelDescriptor] = next(
(
l
for l in axisLabels
if l.userValue == userValue
or (
l.userMinimum is not None
and l.userMaximum is not None
and l.userMinimum <= userValue <= l.userMaximum
)
),
None,
)
if label is None:
LOGGER.debug(
f"Document needs a label for axis '{axisName}', user value '{userValue}'."
)
else:
labels.append(label)
return labels
def _getRibbiStyle(
self: DesignSpaceDocument, userLocation: SimpleLocationDict
) -> Tuple[RibbiStyle, SimpleLocationDict]:
"""Compute the RIBBI style name of the given user location,
return the location of the matching Regular in the RIBBI group.
.. versionadded:: 5.0
"""
regularUserLocation = {}
axes_by_tag = {axis.tag: axis for axis in self.axes}
bold: bool = False
italic: bool = False
axis = axes_by_tag.get("wght")
if axis is not None:
for regular_label in axis.axisLabels:
if regular_label.linkedUserValue == userLocation[axis.name]:
regularUserLocation[axis.name] = regular_label.userValue
bold = True
break
axis = axes_by_tag.get("ital") or axes_by_tag.get("slnt")
if axis is not None:
for urpright_label in axis.axisLabels:
if urpright_label.linkedUserValue == userLocation[axis.name]:
regularUserLocation[axis.name] = urpright_label.userValue
italic = True
break
return BOLD_ITALIC_TO_RIBBI_STYLE[bold, italic], {
**userLocation,
**regularUserLocation,
}

View File

@ -0,0 +1,122 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Dict, List, Optional, Union
from fontTools.designspaceLib import (
DesignSpaceDocument,
RangeAxisSubsetDescriptor,
SimpleLocationDict,
VariableFontDescriptor,
)
def clamp(value, minimum, maximum):
return min(max(value, minimum), maximum)
@dataclass
class Range:
minimum: float
"""Inclusive minimum of the range."""
maximum: float
"""Inclusive maximum of the range."""
default: float = 0
"""Default value"""
def __post__init__(self):
self.minimum, self.maximum = sorted((self.minimum, self.maximum))
self.default = clamp(self.default, self.minimum, self.maximum)
def __contains__(self, value: Union[float, Range]) -> bool:
if isinstance(value, Range):
return self.minimum <= value.minimum and value.maximum <= self.maximum
return self.minimum <= value <= self.maximum
def intersection(self, other: Range) -> Optional[Range]:
if self.maximum < other.minimum or self.minimum > other.maximum:
return None
else:
return Range(
max(self.minimum, other.minimum),
min(self.maximum, other.maximum),
self.default, # We don't care about the default in this use-case
)
# A region selection is either a range or a single value, as a Designspace v5
# axis-subset element only allows a single discrete value or a range for a
# variable-font element.
Region = Dict[str, Union[Range, float]]
# A conditionset is a set of named ranges.
ConditionSet = Dict[str, Range]
# A rule is a list of conditionsets where any has to be relevant for the whole rule to be relevant.
Rule = List[ConditionSet]
Rules = Dict[str, Rule]
def locationInRegion(location: SimpleLocationDict, region: Region) -> bool:
for name, value in location.items():
if name not in region:
return False
regionValue = region[name]
if isinstance(regionValue, (float, int)):
if value != regionValue:
return False
else:
if value not in regionValue:
return False
return True
def regionInRegion(region: Region, superRegion: Region) -> bool:
for name, value in region.items():
if not name in superRegion:
return False
superValue = superRegion[name]
if isinstance(superValue, (float, int)):
if value != superValue:
return False
else:
if value not in superValue:
return False
return True
def userRegionToDesignRegion(doc: DesignSpaceDocument, userRegion: Region) -> Region:
designRegion = {}
for name, value in userRegion.items():
axis = doc.getAxis(name)
if isinstance(value, (float, int)):
designRegion[name] = axis.map_forward(value)
else:
designRegion[name] = Range(
axis.map_forward(value.minimum),
axis.map_forward(value.maximum),
axis.map_forward(value.default),
)
return designRegion
def getVFUserRegion(doc: DesignSpaceDocument, vf: VariableFontDescriptor) -> Region:
vfUserRegion: Region = {}
# For each axis, 2 cases:
# - it has a range = it's an axis in the VF DS
# - it's a single location = use it to know which rules should apply in the VF
for axisSubset in vf.axisSubsets:
axis = doc.getAxis(axisSubset.name)
if isinstance(axisSubset, RangeAxisSubsetDescriptor):
vfUserRegion[axis.name] = Range(
max(axisSubset.userMinimum, axis.minimum),
min(axisSubset.userMaximum, axis.maximum),
axisSubset.userDefault or axis.default,
)
else:
vfUserRegion[axis.name] = axisSubset.userValue
# Any axis not mentioned explicitly has a single location = default value
for axis in doc.axes:
if axis.name not in vfUserRegion:
vfUserRegion[axis.name] = axis.default
return vfUserRegion

View File

@ -18,6 +18,7 @@ Then you can make a variable-font this way:
API *will* change in near future.
"""
from typing import List
from fontTools.misc.vector import Vector
from fontTools.misc.roundTools import noRound, otRound
from fontTools.misc.textTools import Tag, tostr
@ -33,7 +34,9 @@ from fontTools.varLib.merger import VariationMerger
from fontTools.varLib.mvar import MVAR_ENTRIES
from fontTools.varLib.iup import iup_delta_optimize
from fontTools.varLib.featureVars import addFeatureVariations
from fontTools.designspaceLib import DesignSpaceDocument
from fontTools.designspaceLib import DesignSpaceDocument, InstanceDescriptor
from fontTools.designspaceLib.split import splitInterpolable, splitVariableFonts
from fontTools.varLib.stat import buildVFStatTable
from functools import partial
from collections import OrderedDict, namedtuple
import os.path
@ -53,7 +56,7 @@ FEAVAR_FEATURETAG_LIB_KEY = "com.github.fonttools.varLib.featureVarsFeatureTag"
# Creation routines
#
def _add_fvar(font, axes, instances):
def _add_fvar(font, axes, instances: List[InstanceDescriptor]):
"""
Add 'fvar' table to font.
@ -81,7 +84,8 @@ def _add_fvar(font, axes, instances):
fvar.axes.append(axis)
for instance in instances:
coordinates = instance.location
# Filter out discrete axis locations
coordinates = {name: value for name, value in instance.location.items() if name in axes}
if "en" not in instance.localisedStyleName:
if not instance.styleName:
@ -198,11 +202,10 @@ def _add_avar(font, axes):
return avar
def _add_stat(font, axes):
# for now we just get the axis tags and nameIDs from the fvar,
# so we can reuse the same nameIDs which were defined in there.
# TODO make use of 'axes' once it adds style attributes info:
# https://github.com/LettError/designSpaceDocument/issues/8
def _add_stat(font):
# Note: this function only gets called by old code that calls `build()`
# directly. Newer code that wants to benefit from STAT data from the
# designspace should call `build_many()`
if "STAT" in font:
return
@ -759,7 +762,8 @@ def load_designspace(designspace):
# Check all master and instance locations are valid and fill in defaults
for obj in masters+instances:
obj_name = obj.name or obj.styleName or ''
loc = obj.location
loc = obj.getFullDesignLocation(ds)
obj.designLocation = loc
if loc is None:
raise VarLibValidationError(
f"Source or instance '{obj_name}' has no location."
@ -770,10 +774,6 @@ def load_designspace(designspace):
f"Location axis '{axis_name}' unknown for '{obj_name}'."
)
for axis_name,axis in axes.items():
if axis_name not in loc:
# NOTE: `axis.default` is always user-space, but `obj.location` always design-space.
loc[axis_name] = axis.map_forward(axis.default)
else:
v = axis.map_backward(loc[axis_name])
if not (axis.minimum <= v <= axis.maximum):
raise VarLibValidationError(
@ -785,7 +785,7 @@ def load_designspace(designspace):
# Normalize master locations
internal_master_locs = [o.location for o in masters]
internal_master_locs = [o.getFullDesignLocation(ds) for o in masters]
log.info("Internal master locations:\n%s", pformat(internal_master_locs))
# TODO This mapping should ideally be moved closer to logic in _add_fvar/avar
@ -865,6 +865,38 @@ def set_default_weight_width_slant(font, location):
font["post"].italicAngle = italicAngle
def build_many(designspace: DesignSpaceDocument, master_finder=lambda s:s, exclude=[], optimize=True, skip_vf=lambda vf_name: False):
"""
Build variable fonts from a designspace file, version 5 which can define
several VFs, or version 4 which has implicitly one VF covering the whole doc.
If master_finder is set, it should be a callable that takes master
filename as found in designspace file and map it to master font
binary as to be opened (eg. .ttf or .otf).
skip_vf can be used to skip building some of the variable fonts defined in
the input designspace. It's a predicate that takes as argument the name
of the variable font and returns `bool`.
Always returns a Dict[str, TTFont] keyed by VariableFontDescriptor.name
"""
res = {}
for _location, subDoc in splitInterpolable(designspace):
for name, vfDoc in splitVariableFonts(subDoc):
if skip_vf(name):
log.debug(f"Skipping variable TTF font: {name}")
continue
vf = build(
vfDoc,
master_finder,
exclude=list(exclude) + ["STAT"],
optimize=optimize
)[0]
if "STAT" not in exclude:
buildVFStatTable(vf, designspace, name)
res[name] = vf
return res
def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
"""
Build variation font from a designspace file.
@ -898,7 +930,7 @@ def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
# TODO append masters as named-instances as well; needs .designspace change.
fvar = _add_fvar(vf, ds.axes, ds.instances)
if 'STAT' not in exclude:
_add_stat(vf, ds.axes)
_add_stat(vf)
if 'avar' not in exclude:
_add_avar(vf, ds.axes)

View File

@ -0,0 +1,142 @@
"""Extra methods for DesignSpaceDocument to generate its STAT table data."""
from __future__ import annotations
from typing import Dict, List, Union
import fontTools.otlLib.builder
from fontTools.designspaceLib import (
AxisLabelDescriptor,
DesignSpaceDocument,
DesignSpaceDocumentError,
LocationLabelDescriptor,
)
from fontTools.designspaceLib.types import Region, getVFUserRegion, locationInRegion
from fontTools.ttLib import TTFont
def buildVFStatTable(ttFont: TTFont, doc: DesignSpaceDocument, vfName: str) -> None:
"""Build the STAT table for the variable font identified by its name in
the given document.
Knowing which variable we're building STAT data for is needed to subset
the STAT locations to only include what the variable font actually ships.
.. versionadded:: 5.0
.. seealso::
- :func:`getStatAxes()`
- :func:`getStatLocations()`
- :func:`fontTools.otlLib.builder.buildStatTable()`
"""
for vf in doc.getVariableFonts():
if vf.name == vfName:
break
else:
raise DesignSpaceDocumentError(
f"Cannot find the variable font by name {vfName}"
)
region = getVFUserRegion(doc, vf)
return fontTools.otlLib.builder.buildStatTable(
ttFont,
getStatAxes(doc, region),
getStatLocations(doc, region),
doc.elidedFallbackName if doc.elidedFallbackName is not None else 2,
)
def getStatAxes(doc: DesignSpaceDocument, userRegion: Region) -> List[Dict]:
"""Return a list of axis dicts suitable for use as the ``axes``
argument to :func:`fontTools.otlLib.builder.buildStatTable()`.
.. versionadded:: 5.0
"""
# First, get the axis labels with explicit ordering
# then append the others in the order they appear.
maxOrdering = max(
(axis.axisOrdering for axis in doc.axes if axis.axisOrdering is not None),
default=-1,
)
axisOrderings = []
for axis in doc.axes:
if axis.axisOrdering is not None:
axisOrderings.append(axis.axisOrdering)
else:
maxOrdering += 1
axisOrderings.append(maxOrdering)
return [
dict(
tag=axis.tag,
name={"en": axis.name, **axis.labelNames},
ordering=ordering,
values=[
_axisLabelToStatLocation(label)
for label in axis.axisLabels
if locationInRegion({axis.name: label.userValue}, userRegion)
],
)
for axis, ordering in zip(doc.axes, axisOrderings)
]
def getStatLocations(doc: DesignSpaceDocument, userRegion: Region) -> List[Dict]:
"""Return a list of location dicts suitable for use as the ``locations``
argument to :func:`fontTools.otlLib.builder.buildStatTable()`.
.. versionadded:: 5.0
"""
axesByName = {axis.name: axis for axis in doc.axes}
return [
dict(
name={"en": label.name, **label.labelNames},
# Location in the designspace is keyed by axis name
# Location in buildStatTable by axis tag
location={
axesByName[name].tag: value
for name, value in label.getFullUserLocation(doc).items()
},
flags=_labelToFlags(label),
)
for label in doc.locationLabels
if locationInRegion(label.getFullUserLocation(doc), userRegion)
]
def _labelToFlags(label: Union[AxisLabelDescriptor, LocationLabelDescriptor]) -> int:
flags = 0
if label.olderSibling:
flags |= 1
if label.elidable:
flags |= 2
return flags
def _axisLabelToStatLocation(
label: AxisLabelDescriptor,
) -> Dict:
label_format = label.getFormat()
name = {"en": label.name, **label.labelNames}
flags = _labelToFlags(label)
if label_format == 1:
return dict(name=name, value=label.userValue, flags=flags)
if label_format == 3:
return dict(
name=name,
value=label.userValue,
linkedValue=label.linkedUserValue,
flags=flags,
)
if label_format == 2:
res = dict(
name=name,
nominalValue=label.userValue,
flags=flags,
)
if label.userMinimum is not None:
res["rangeMinValue"] = label.userMinimum
if label.userMaximum is not None:
res["rangeMaxValue"] = label.userMaximum
return res
raise NotImplementedError("Unknown STAT label format")

View File

View File

@ -0,0 +1,114 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
</rules>
<sources>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,316 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,103 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
</axes>
<sources>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,307 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
</axes>
<rules processing="last">
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,670 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<conditionset>
<condition name="Italic" minimum="0.1" maximum="1"/>
</conditionset>
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,326 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<instances>
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>f.liga</string>
<string>f.ligalong</string>
<string>tonos.cap</string>
<string>dieresiscmb.tight</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,334 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<instances>
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
<kerning/>
<info/>
</instance>
</instances>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>tonos.cap</string>
<string>f.ligalong</string>
<string>dieresiscmb.tight</string>
<string>IJ</string>
<string>Tbar</string>
<string>colontriangularmod</string>
<string>crossmark</string>
<string>ij</string>
<string>overline</string>
<string>similar</string>
<string>tbar</string>
<string>triangularbullet</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,96 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
</rules>
<sources>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
</location>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,262 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,85 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
</axes>
<sources>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
</location>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,253 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
</axes>
<rules processing="last">
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</source>
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,562 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<conditionset>
<condition name="Italic" minimum="0.1" maximum="1"/>
</conditionset>
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<instances>
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,55 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
<map input="300" output="0"/>
<map input="500" output="500"/>
<map input="700" output="1000"/>
</axis>
</axes>
<rules>
<rule name="fold_I_serifs">
<sub name="I" with="I.narrow"/>
</rule>
<rule name="fold_S_terminals">
<conditionset>
<condition name="weight" minimum="0" maximum="500"/>
</conditionset>
<sub name="S" with="S.closed"/>
</rule>
</rules>
<sources>
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
<location>
<dimension name="weight" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
<location>
<dimension name="weight" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
<location>
<dimension name="weight" xvalue="700"/>
</location>
</source>
</sources>
<instances>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,129 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
<map input="300" output="0"/>
<map input="500" output="500"/>
<map input="700" output="1000"/>
</axis>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
</axis>
</axes>
<rules>
<rule name="fold_I_serifs">
<conditionset>
<condition name="width" minimum="0" maximum="328"/>
</conditionset>
<sub name="I" with="I.narrow"/>
</rule>
<rule name="fold_S_terminals">
<conditionset>
<condition name="weight" minimum="0" maximum="500"/>
</conditionset>
<sub name="S" with="S.closed"/>
</rule>
</rules>
<sources>
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="569.078"/>
</location>
</source>
</sources>
<instances>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold Extended" familyname="MutatorMathTest" stylename="Sans Bold Extended" filename="MutatorMathTest-Sans Bold Extended.ttf" postscriptfontname="MutatorMathTest-SansBoldExtended" stylemapfamilyname="MutatorMathTest Sans Bold Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="327"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="327"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold" familyname="MutatorMathTest" stylename="Sans Bold" filename="MutatorMathTest-Sans Bold.ttf" postscriptfontname="MutatorMathTest-SansBold" stylemapfamilyname="MutatorMathTest Sans Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="569.078"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium Extended" familyname="MutatorMathTest" stylename="Sans Medium Extended" filename="MutatorMathTest-Sans Medium Extended.ttf" postscriptfontname="MutatorMathTest-SansMediumExtended" stylemapfamilyname="MutatorMathTest Sans Medium Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,50 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
</axis>
</axes>
<rules>
<rule name="fold_I_serifs">
<conditionset>
<condition name="width" minimum="0" maximum="328"/>
</conditionset>
<sub name="I" with="I.narrow"/>
</rule>
<rule name="fold_S_terminals">
<sub name="S" with="S.closed"/>
</rule>
</rules>
<sources>
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
<location>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
<location>
<dimension name="width" xvalue="1000"/>
</location>
</source>
</sources>
<instances>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="width" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
<location>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="width" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,29 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
</axis>
</axes>
<sources>
<source filename="../MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
<location>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
<location>
<dimension name="width" xvalue="1000"/>
</location>
</source>
</sources>
<instances>
<instance name="MutatorMathTest Serif Light Condensed" familyname="MutatorMathTest" stylename="Serif Light Condensed" filename="MutatorMathTest-Serif Light Condensed.ttf" postscriptfontname="MutatorMathTest-SerifLightCondensed" stylemapfamilyname="MutatorMathTest Serif Light Condensed" stylemapstylename="regular">
<location>
<dimension name="width" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,266 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<instances>
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
</instances>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>f.liga</string>
<string>f.ligalong</string>
<string>tonos.cap</string>
<string>dieresiscmb.tight</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,274 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<instances>
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
</instances>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>tonos.cap</string>
<string>f.ligalong</string>
<string>dieresiscmb.tight</string>
<string>IJ</string>
<string>Tbar</string>
<string>colontriangularmod</string>
<string>crossmark</string>
<string>ij</string>
<string>overline</string>
<string>similar</string>
<string>tbar</string>
<string>triangularbullet</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,147 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
<map input="300" output="0"/>
<map input="500" output="500"/>
<map input="700" output="1000"/>
</axis>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
</axis>
</axes>
<rules>
<rule name="fold_I_serifs">
<conditionset>
<condition name="width" minimum="0" maximum="328"/>
</conditionset>
<sub name="I" with="I.narrow"/>
</rule>
<rule name="fold_S_terminals">
<conditionset>
<condition name="weight" minimum="0" maximum="500"/>
</conditionset>
<sub name="S" with="S.closed"/>
</rule>
</rules>
<sources>
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
<location>
<dimension name="weight" xvalue="700"/>
<dimension name="width" xvalue="569.078"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="MutatorSansVariable_Weight_Width">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
<variable-font name="MutatorSansVariable_Weight">
<axis-subsets>
<axis-subset name="weight"/>
</axis-subsets>
</variable-font>
<variable-font name="MutatorSansVariable_Width">
<axis-subsets>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold Extended" familyname="MutatorMathTest" stylename="Sans Bold Extended" filename="MutatorMathTest-Sans Bold Extended.ttf" postscriptfontname="MutatorMathTest-SansBoldExtended" stylemapfamilyname="MutatorMathTest Sans Bold Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="327"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="327"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Bold" familyname="MutatorMathTest" stylename="Sans Bold" filename="MutatorMathTest-Sans Bold.ttf" postscriptfontname="MutatorMathTest-SansBold" stylemapfamilyname="MutatorMathTest Sans Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="569.078"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Medium Extended" familyname="MutatorMathTest" stylename="Sans Medium Extended" filename="MutatorMathTest-Sans Medium Extended.ttf" postscriptfontname="MutatorMathTest-SansMediumExtended" stylemapfamilyname="MutatorMathTest Sans Medium Extended" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="1000"/>
</location>
</instance>
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,44 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
<map input="300" output="0"/>
<map input="500" output="500"/>
<map input="700" output="1000"/>
</axis>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
</axis>
</axes>
<sources>
<source filename="../MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</source>
<source filename="../MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="1000"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="MutatorSerifVariable_Width">
<axis-subsets>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance name="MutatorMathTest Serif Light Condensed" familyname="MutatorMathTest" stylename="Serif Light Condensed" filename="MutatorMathTest-Serif Light Condensed.ttf" postscriptfontname="MutatorMathTest-SerifLightCondensed" stylemapfamilyname="MutatorMathTest Serif Light Condensed" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="0"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,595 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<conditionset>
<condition name="Italic" minimum="0.1" maximum="1"/>
</conditionset>
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="AktivGroteskVF_WghtWdthItal">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
<axis-subset name="Italic"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_WghtWdth">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Wght">
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Italics_WghtWdth">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Italics_Wght">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,282 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="SourceSerif4Variable-Roman">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="optical"/>
</axis-subsets>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>tonos.cap</string>
<string>f.ligalong</string>
<string>dieresiscmb.tight</string>
<string>IJ</string>
<string>Tbar</string>
<string>colontriangularmod</string>
<string>crossmark</string>
<string>ij</string>
<string>overline</string>
<string>similar</string>
<string>tbar</string>
<string>triangularbullet</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</variable-font>
</variable-fonts>
<instances>
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,274 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
</axes>
<sources>
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</source>
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</source>
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="SourceSerif4Variable-Italic">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="optical"/>
</axis-subsets>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>f.liga</string>
<string>f.ligalong</string>
<string>tonos.cap</string>
<string>dieresiscmb.tight</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</variable-font>
</variable-fonts>
<instances>
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
</location>
</instance>
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
</location>
</instance>
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
</location>
</instance>
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -1,5 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="4.1">
<!-- NOTE: this file is kept at format 4, to check that round-tripping it
doesn't upgrade the format. -->
<axes>
<axis tag="wght" name="weight" minimum="0" maximum="1000" default="0">
<labelname xml:lang="en">Wéíght</labelname>
@ -50,6 +52,13 @@
</sources>
<instances>
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
<stylename xml:lang="fr">Demigras</stylename>
<stylename xml:lang="ja">半ば</stylename>
<familyname xml:lang="fr">Montserrat</familyname>
<familyname xml:lang="ja">モンセラート</familyname>
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="20"/>

View File

@ -0,0 +1,294 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes elidedfallbackname="Regular">
<axis tag="wght" name="weight" minimum="200" maximum="1000" default="200">
<labelname xml:lang="en">Wéíght</labelname>
<labelname xml:lang="fa-IR">قطر</labelname>
<map input="200" output="0"/>
<map input="300" output="100"/>
<map input="400" output="368"/>
<map input="600" output="600"/>
<map input="700" output="824"/>
<map input="900" output="1000"/>
<!-- All axes provide STAT information with the "labels" element. -->
<labels>
<label uservalue="200" userminimum="200" usermaximum="250" name="Extra Light">
<labelname xml:lang="de">Extraleicht</labelname>
<labelname xml:lang="fr">Extra léger</labelname>
</label>
<label uservalue="300" userminimum="250" usermaximum="350" name="Light"/>
<label uservalue="400" userminimum="350" usermaximum="450" name="Regular" elidable="true"/>
<label uservalue="600" userminimum="450" usermaximum="650" name="Semi Bold"/>
<label uservalue="700" userminimum="650" usermaximum="850" name="Bold"/>
<label uservalue="900" userminimum="850" usermaximum="900" name="Black"/>
</labels>
</axis>
<axis tag="wdth" name="width" minimum="50" maximum="150" default="100" hidden="1">
<labelname xml:lang="fr">Chasse</labelname>
<map input="50" output="10"/>
<map input="100" output="20"/>
<map input="125" output="66"/>
<map input="150" output="990"/>
<labels ordering="1">
<label uservalue="50" name="Condensed"/>
<label uservalue="100" name="Normal" elidable="true" oldersibling="true"/>
<label uservalue="125" name="Wide"/>
<!-- Allow specifying only one end of the range, the other is assumed to
be infinity as does otlLib buildStatTable -->
<label uservalue="150" userminimum="150" name="Extra Wide"/>
</labels>
</axis>
<!--
Discrete axes provide a list of discrete values.
No interpolation is allowed between these.
-->
<axis tag="ital" name="Italic" values="0 1" default="0">
<labels>
<!-- Discrete axes also provide STAT information. -->
<label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/>
<label uservalue="1" name="Italic"/>
</labels>
</axis>
</axes>
<!-- Freestanding labels are analogues of STAT format 4 entries.
They give names to freestyle locations. -->
<labels>
<label name="Some Style">
<labelname xml:lang="fr">Un Style</labelname>
<location>
<dimension name="weight" uservalue="300"/>
<dimension name="width" uservalue="50"/>
<dimension name="Italic" uservalue="0"/>
</location>
</label>
<label name="Other">
<location>
<dimension name="weight" uservalue="700"/>
<dimension name="width" uservalue="100"/>
<dimension name="Italic" uservalue="1"/>
</location>
</label>
</labels>
<rules processing="last">
<rule name="named.rule.1">
<conditionset>
<condition name="axisName_a" minimum="0" maximum="1"/>
<condition name="axisName_b" minimum="2" maximum="3"/>
</conditionset>
<sub name="a" with="a.alt"/>
</rule>
</rules>
<sources>
<source filename="masters/masterTest1.ufo" name="master.ufo1" familyname="MasterFamilyName" stylename="MasterStyleNameOne">
<familyname xml:lang="fr">Montserrat</familyname>
<familyname xml:lang="ja">モンセラート</familyname>
<lib copy="1"/>
<features copy="1"/>
<info copy="1"/>
<glyph name="A" mute="1"/>
<glyph name="Z" mute="1"/>
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="width" xvalue="20"/>
</location>
</source>
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="MasterStyleNameTwo">
<kerning mute="1"/>
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="20"/>
</location>
</source>
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="Supports" layer="supports">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="width" xvalue="20"/>
</location>
</source>
</sources>
<variable-fonts>
<!--
If this element is present, all output targets must be listed within it.
If it is not present, the full Designspace is the output, like in version 4.x.
Continuous axes can be included either:
* in full,
* or only on a reduced interval (different minimum-maximum),
* or only at 1 discrete location
Dicrete axes cannot be included in full, and we must specify a value
(or the compiler should assume the default value).
-->
<variable-font name="Test_WghtWdth" filename="Test_WghtWdth_different_from_name.ttf">
<!-- This one is the Roman (default location along ital),
with full range for the Weight axis. -->
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
</axis-subsets>
<lib>
<dict>
<key>com.vtt.source</key>
<string>sources/vtt/Test_WghtWdth.vtt</string>
</dict>
</lib>
</variable-font>
<variable-font name="Test_Wght">
<!-- This one is the Roman (default location along ital),
with full range for the Weight axis. -->
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
<lib>
<dict>
<key>com.vtt.source</key>
<string>sources/vtt/Test_Wght.vtt</string>
</dict>
</lib>
</variable-font>
<variable-font name="TestCd_Wght">
<!-- This one is the Roman (default location along ital),
with full range for the Weight axis. -->
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width" uservalue="0"/>
</axis-subsets>
</variable-font>
<variable-font name="TestWd_Wght">
<!-- This one is the Roman (default location along ital),
with full range for the Weight axis. -->
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width" uservalue="1000"/>
</axis-subsets>
</variable-font>
<variable-font name="TestItalic_Wght">
<!-- This one is the Italic, with full range for the Weight axis. -->
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
<variable-font name="TestRB_Wght">
<!-- As an example, this would be the Roman with a reduced range. -->
<axis-subsets>
<axis-subset name="Weight" userminimum="400" usermaximum="700" userdefault="400"/>
<axis-subset name="Italic" uservalue="0"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
<stylename xml:lang="fr">Demigras</stylename>
<stylename xml:lang="ja">半ば</stylename>
<familyname xml:lang="fr">Montserrat</familyname>
<familyname xml:lang="ja">モンセラート</familyname>
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="20"/>
</location>
<!-- The following elements are deprecated in v5.0. They can still be
read, but they won't be written out again (they don't roundtrip). -->
<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->
<glyphs>
<glyph mute="1" unicode="0x123 0x124 0x125" name="arrow"/>
</glyphs>
<kerning/>
<info/>
<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->
<lib>
<dict>
<key>com.coolDesignspaceApp.binaryData</key>
<data>
PGJpbmFyeSBndW5rPg==
</data>
<key>com.coolDesignspaceApp.specimenText</key>
<string>Hamburgerwhatever</string>
</dict>
</lib>
</instance>
<instance name="instance.ufo2" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest2.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="400" yvalue="300"/>
</location>
<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->
<glyphs>
<glyph unicode="0x65 0xc9 0x12d" name="arrow">
<location>
<dimension name="weight" xvalue="120"/>
<dimension name="width" xvalue="100"/>
</location>
<note>A note about this glyph</note>
<masters>
<master glyphname="BB" source="master.ufo1">
<location>
<dimension name="weight" xvalue="20"/>
<dimension name="width" xvalue="20"/>
</location>
</master>
<master glyphname="CC" source="master.ufo2">
<location>
<dimension name="weight" xvalue="900"/>
<dimension name="width" xvalue="900"/>
</location>
</master>
</masters>
</glyph>
<glyph name="arrow2"/>
</glyphs>
<kerning/>
<info/>
<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->
</instance>
<!--
These instances will derive all their data from the data above.
Instances can specify their location either:
- using the name of a location label
- with design coordinates (xvalue="")
- with user coordinates (uservalue="")
- with a mix of both coordinate systems
-->
<instance location="asdf"/>
<instance>
<location>
<dimension name="weight" xvalue="600"/>
<dimension name="width" xvalue="401" yvalue="420"/>
</location>
</instance>
<instance>
<location>
<dimension name="weight" xvalue="10"/>
<dimension name="width" uservalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance>
<location>
<dimension name="weight" uservalue="300"/>
<dimension name="width" uservalue="130"/>
<dimension name="Italic" uservalue="1"/>
</location>
</instance>
</instances>
<lib>
<dict>
<key>com.coolDesignspaceApp.previewSize</key>
<integer>30</integer>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,206 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes elidedfallbackname="Regular">
<axis tag="SRIF" name="serif" values="0 1" default="0">
<labels>
<label uservalue="0" name="Sans"/>
<label uservalue="1" name="Serif"/>
</labels>
</axis>
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
<map input="300" output="0"/>
<map input="500" output="500"/>
<map input="700" output="1000"/>
<labels>
<label uservalue="300" userminimum="300" usermaximum="400" name="Light"/>
<label uservalue="500" userminimum="400" usermaximum="600" name="Medium"/>
<label uservalue="700" userminimum="600" usermaximum="700" name="Bold"/>
</labels>
</axis>
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
<map input="50" output="0"/>
<map input="100" output="500"/>
<map input="200" output="1000"/>
<labels>
<label uservalue="50" userminimum="50" usermaximum="75" name="Condensed"/>
<label uservalue="100" userminimum="75" usermaximum="125" name="Normal" elidable="true"/>
<label uservalue="200" userminimum="125" usermaximum="200" name="Extended"/>
</labels>
</axis>
</axes>
<labels>
<label name="S1">
<location>
<dimension name="width" uservalue="158.9044"/>
<dimension name="weight" uservalue="610.2436"/>
</location>
</label>
<label name="S2">
<location>
<dimension name="width" uservalue="159.1956"/>
<dimension name="weight" uservalue="642.2196"/>
</location>
</label>
</labels>
<rules>
<rule name="fold_I_serifs">
<conditionset>
<condition name="width" minimum="0" maximum="328"/>
<condition name="serif" minimum="0" maximum="0"/>
</conditionset>
<sub name="I" with="I.narrow"/>
</rule>
<rule name="fold_S_terminals">
<conditionset>
<condition name="width" minimum="0" maximum="1000"/>
<condition name="weight" minimum="0" maximum="500"/>
<condition name="serif" minimum="0" maximum="0.5"/>
</conditionset>
<sub name="S" with="S.closed"/>
</rule>
</rules>
<sources>
<source filename="MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="0"/>
</location>
</source>
<source filename="MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="1000"/>
</location>
</source>
<source filename="MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="0"/>
</location>
</source>
<source filename="MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="1000"/>
</location>
</source>
<source filename="MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="700"/>
</location>
</source>
<source filename="MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="700"/>
</location>
</source>
<source filename="MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
<location>
<dimension name="width" xvalue="569.078000"/>
<dimension name="weight" xvalue="700"/>
</location>
</source>
<source filename="MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="0"/>
<dimension name="serif" xvalue="1"/>
</location>
</source>
<source filename="MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="0"/>
<dimension name="serif" xvalue="1"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="MutatorSansVariable_Weight_Width">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
<variable-font name="MutatorSansVariable_Weight">
<axis-subsets>
<axis-subset name="weight"/>
</axis-subsets>
</variable-font>
<variable-font name="MutatorSansVariable_Width">
<axis-subsets>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
<variable-font name="MutatorSerifVariable_Width">
<axis-subsets>
<axis-subset name="serif" uservalue="1"/>
<axis-subset name="width"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance>
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="0"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="0"/>
<dimension name="weight" xvalue="1000"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="0"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="1000"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="327"/>
<dimension name="weight" xvalue="500"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="327"/>
<dimension name="weight" xvalue="500"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="569.078"/>
<dimension name="weight" xvalue="1000"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="1000"/>
<dimension name="weight" xvalue="500"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="0"/>
<dimension name="serif" xvalue="0"/>
</location>
</instance>
<instance>
<location>
<dimension name="width" xvalue="0"/>
<dimension name="serif" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,621 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
<map input="100" output="22"/>
<map input="200" output="38"/>
<map input="300" output="57"/>
<map input="400" output="84"/>
<map input="500" output="98"/>
<map input="600" output="115"/>
<map input="700" output="133"/>
<map input="800" output="158"/>
<map input="900" output="185"/>
<labels ordering="1">
<label uservalue="100" name="Hair"/>
<label uservalue="200" name="Thin"/>
<label uservalue="300" name="Light"/>
<label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/>
<label uservalue="500" name="Medium"/>
<label uservalue="600" name="SemiBold"/>
<label uservalue="700" name="Bold"/>
<label uservalue="800" name="XBold"/>
<label uservalue="900" name="Black"/>
</labels>
</axis>
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100">
<labels ordering="0">
<label uservalue="75" name="Cd"/>
<label uservalue="100" name="Normal" elidable="true"/>
<label uservalue="125" name="Ex"/>
</labels>
</axis>
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0">
<labels ordering="2">
<label uservalue="0" name="Upright" elidable="true" linkeduservalue="1"/>
<label uservalue="1" name="Italic"/>
</labels>
</axis>
</axes>
<rules processing="last">
<rule name="BRACKET.CYR">
<conditionset>
<condition name="Italic" minimum="0.1" maximum="1"/>
</conditionset>
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
</rule>
<rule name="BRACKET.116.185">
<conditionset>
<condition name="Weight" minimum="116" maximum="185"/>
<condition name="Width" minimum="75" maximum="97.5"/>
</conditionset>
<sub name="cent" with="cent.BRACKET.130"/>
<sub name="dollar" with="dollar.BRACKET.130"/>
</rule>
</rules>
<sources>
<source filename="AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</source>
<source filename="AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="AktivGroteskVF_WghtWdthItal">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
<axis-subset name="Italic"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_WghtWdth">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Wght">
<axis-subsets>
<axis-subset name="Weight"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Italics_WghtWdth">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Width"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
<variable-font name="AktivGroteskVF_Italics_Wght">
<axis-subsets>
<axis-subset name="Weight"/>
<axis-subset name="Italic" uservalue="1"/>
</axis-subsets>
</variable-font>
</variable-fonts>
<instances>
<instance filename="instances/AktivGroteskCd_Hair.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_HairIt.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Hair.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_HairIt.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Hair.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_HairIt.ufo">
<location>
<dimension name="Weight" xvalue="22"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Th.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_ThIt.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Th.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_ThIt.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Th.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_ThIt.ufo">
<location>
<dimension name="Weight" xvalue="38"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Lt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_LtIt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Lt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_LtIt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Lt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_LtIt.ufo">
<location>
<dimension name="Weight" xvalue="57"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Rg.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_It.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Rg.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_It.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Rg.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_It.ufo">
<location>
<dimension name="Weight" xvalue="84"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Md.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_MdIt.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Md.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_MdIt.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Md.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_MdIt.ufo">
<location>
<dimension name="Weight" xvalue="98"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="../build/instances/AktivGroteskCd_SBd.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="../build/instances/AktivGroteskCd_SBdIt.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="../build/instances/AktivGrotesk_SBd.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="../build/instances/AktivGrotesk_SBdIt.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="../build/instances/AktivGroteskEx_SBd.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="../build/instances/AktivGroteskEx_SBdIt.ufo">
<location>
<dimension name="Weight" xvalue="115"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Bd.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_BdIt.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Bd.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_BdIt.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Bd.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_BdIt.ufo">
<location>
<dimension name="Weight" xvalue="133"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_XBd.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_XBdIt.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_XBd.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_XBdIt.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_XBd.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_XBdIt.ufo">
<location>
<dimension name="Weight" xvalue="158"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_Blk.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskCd_BlkIt.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_Blk.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGrotesk_BlkIt.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="100"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_Blk.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="0"/>
</location>
</instance>
<instance filename="instances/AktivGroteskEx_BlkIt.ufo">
<location>
<dimension name="Weight" xvalue="185"/>
<dimension name="Width" xvalue="125"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,242 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="BLDA" name="Inline" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMD" name="Shearded" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMC" name="Rounded Slab" minimum="0" maximum="1000" default="0"/>
<axis tag="SKLD" name="Stripes" minimum="0" maximum="1000" default="0"/>
<axis tag="TRML" name="Worm Terminal" minimum="0" maximum="1000" default="0"/>
<axis tag="SKLA" name="Inline Skeleton" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMF" name="Open Inline Terminal" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMK" name="Inline Terminal" minimum="0" maximum="1000" default="0"/>
<axis tag="BLDB" name="Worm" minimum="0" maximum="1000" default="0"/>
<axis tag="WMX2" name="Weight" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMB" name="Flared" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMA" name="Rounded" minimum="0" maximum="1000" default="0"/>
<axis tag="SKLB" name="Worm Skeleton" minimum="0" maximum="1000" default="0"/>
<axis tag="TRMG" name="Slab" minimum="0" maximum="1000" default="0"/>
<axis tag="TRME" name="Bifurcated" minimum="0" maximum="1000" default="0"/>
</axes>
<!-- Labels without location or just partly specified location are at the default location plus the explicitly given sub-locations. -->
<labels>
<label name="Default" elidable="true"/>
<label name="Open">
<labelname xml:lang="de">Offen</labelname>
<location>
<dimension name="Inline" uservalue="1000"/>
</location>
</label>
<label name="Worm">
<location>
<dimension name="Worm" uservalue="1000"/>
</location>
</label>
<label name="Checkered">
<location>
<dimension name="Inline Skeleton" uservalue="1000"/>
</location>
</label>
<label name="Checkered Reverse">
<location>
<dimension name="Inline Terminal" uservalue="1000"/>
</location>
</label>
<label name="Striped">
<location>
<dimension name="Stripes" uservalue="500"/>
</location>
</label>
<label name="Rounded">
<location>
<dimension name="Rounded" uservalue="1000"/>
</location>
</label>
<label name="Flared">
<location>
<dimension name="Flared" uservalue="1000"/>
</location>
</label>
<label name="Flared Open">
<location>
<dimension name="Inline Skeleton" uservalue="1000"/>
<dimension name="Flared" uservalue="1000"/>
</location>
</label>
<label name="Rounded Slab">
<location>
<dimension name="Rounded Slab" uservalue="1000"/>
</location>
</label>
<label name="Sheared">
<location>
<dimension name="Shearded" uservalue="1000"/>
</location>
</label>
<label name="Bifurcated">
<location>
<dimension name="Bifurcated" uservalue="1000"/>
</location>
</label>
<label name="Inline">
<location>
<dimension name="Inline Skeleton" uservalue="500"/>
<dimension name="Open Inline Terminal" uservalue="500"/>
</location>
</label>
<label name="Slab">
<location>
<dimension name="Slab" uservalue="1000"/>
</location>
</label>
<label name="Contrast">
<location>
<dimension name="Weight" uservalue="1000"/>
</location>
</label>
<label name="Fancy">
<location>
<dimension name="Inline Skeleton" uservalue="1000"/>
<dimension name="Weight" uservalue="1000"/>
<dimension name="Flared" uservalue="1000"/>
</location>
</label>
<label name="Mayhem">
<location>
<dimension name="Rounded Slab" uservalue="750"/>
<dimension name="Worm Terminal" uservalue="250"/>
<dimension name="Inline Skeleton" uservalue="1000"/>
<dimension name="Open Inline Terminal" uservalue="250"/>
<dimension name="Inline Terminal" uservalue="250"/>
<dimension name="Worm" uservalue="1000"/>
<dimension name="Weight" uservalue="750"/>
<dimension name="Flared" uservalue="500"/>
<dimension name="Rounded" uservalue="500"/>
<dimension name="Worm Skeleton" uservalue="1000"/>
<dimension name="Slab" uservalue="750"/>
<dimension name="Bifurcated" uservalue="500"/>
</location>
</label>
</labels>
<sources>
<source filename="DecovarAlpha-Regular24.ufo" name="master_Regular"/>
<source filename="DecovarAlpha-Regular24SkelA.ufo" name="master_sklA">
<location>
<dimension name="Inline Skeleton" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24SkelD2.ufo" name="master_sklD2">
<location>
<dimension name="Stripes" xvalue="500"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24SkelD4.ufo" name="master_sklD4">
<location>
<dimension name="Stripes" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24SkelB2.ufo" name="master_sklB2">
<location>
<dimension name="Worm Skeleton" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermA.ufo" name="master_trmA">
<location>
<dimension name="Rounded" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermB.ufo" name="master_trmB">
<location>
<dimension name="Flared" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermC.ufo" name="master_trmC">
<location>
<dimension name="Rounded Slab" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermD.ufo" name="master_trmD">
<location>
<dimension name="Shearded" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermE.ufo" name="master_trmE">
<location>
<dimension name="Bifurcated" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermF.ufo" name="master_trmF">
<location>
<dimension name="Open Inline Terminal" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermG.ufo" name="master_trmG">
<location>
<dimension name="Slab" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermSkelA.ufo" name="master_trmK">
<location>
<dimension name="Inline Terminal" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24TermSkelB.ufo" name="master_trmL">
<location>
<dimension name="Worm Terminal" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24WeightMax1.ufo" name="master_wmx1">
<location>
<dimension name="Weight" xvalue="5"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24WeightMax1.5.ufo" name="master_wmx1.5">
<location>
<dimension name="Weight" xvalue="507.806"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24WeightMax2.ufo" name="master_wmx2">
<location>
<dimension name="Weight" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24bldA.ufo" name="master_bldA">
<location>
<dimension name="Inline" xvalue="1000"/>
</location>
</source>
<source filename="DecovarAlpha-Regular24bldB.ufo" name="master_bldB">
<location>
<dimension name="Worm" xvalue="1000"/>
</location>
</source>
</sources>
<instances>
<!--
This designspace defines LocationLabels (STAT format 4) for various
points within the design space. In order to define instances at these
locations, DS version 5 provides the `location="..."` attribute which
means that the instance is in the same location as the LocationLabel
with the given name.
-->
<instance location="Default" filename="DecovarAlpha-Default.ufo"/>
<instance location="Open" filename="DecovarAlpha-Open.ufo"/>
<instance location="Worm" filename="DecovarAlpha-Worm.ufo"/>
<instance location="Checkered" filename="DecovarAlpha-Checkered.ufo"/>
<instance location="Checkered Reverse" filename="DecovarAlpha-CheckeredReverse.ufo"/>
<instance location="Striped" filename="DecovarAlpha-Striped.ufo"/>
<instance location="Rounded" filename="DecovarAlpha-Rounded.ufo"/>
<instance location="Flared" filename="DecovarAlpha-Flared.ufo"/>
<instance location="Flared Open" filename="DecovarAlpha-FlaredOpen.ufo"/>
<instance location="Rounded Slab" filename="DecovarAlpha-RoundedSlab.ufo"/>
<instance location="Sheared" filename="DecovarAlpha-Sheared.ufo"/>
<instance location="Bifurcated" filename="DecovarAlpha-Bifurcated.ufo"/>
<instance location="Inline" filename="DecovarAlpha-Inline.ufo"/>
<instance location="Slab" filename="DecovarAlpha-Slab.ufo"/>
<instance location="Contrast" filename="DecovarAlpha-Contrast.ufo"/>
<instance location="Fancy" filename="DecovarAlpha-Fancy.ufo"/>
<instance location="Mayhem" filename="DecovarAlpha-Mayhem.ufo"/>
</instances>
</designspace>

View File

@ -0,0 +1,139 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="Weight" values="400 700 900" default="400">
<labels>
<label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/>
<label uservalue="700" name="Bold"/>
<label uservalue="900" name="Black"/>
</labels>
</axis>
<axis tag="wdth" name="Width" values="75 100" default="100">
<labels>
<label uservalue="75" name="Narrow"/>
<label uservalue="100" name="Normal" elidable="true"/>
</labels>
</axis>
<axis tag="ital" name="Italic" values="0 1" default="0">
<labels>
<label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/>
<label uservalue="1" name="Italic"/>
</labels>
</axis>
</axes>
<sources>
<source filename="arial.ufo" name="Arial Regular">
<location>
<dimension name="Weight" xvalue="400"/>
</location>
</source>
<source filename="arialbd.ufo" name="Arial Bold">
<location>
<dimension name="Weight" xvalue="700"/>
</location>
</source>
<source filename="ariblk.ufo" name="Arial Black">
<location>
<dimension name="Weight" xvalue="900"/>
</location>
</source>
<source filename="ariali.ufo" name="Arial Italic">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="arialbi.ufo" name="Arial Bold Italic">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="ARIALN.ufo" name="Arial Narrow">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="ARIALNB.ufo" name="Arial Narrow Bold">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Width" xvalue="75"/>
</location>
</source>
<source filename="ARIALNBI.ufo" name="Arial Narrow Bold Italic">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
<source filename="ARIALNI.ufo" name="Arial Narrow Italic">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</source>
</sources>
<instances>
<instance name="Arial Regular">
<location>
<dimension name="Weight" xvalue="400"/>
</location>
</instance>
<instance name="Arial Bold">
<!-- Should be stylemapstylename="bold" -->
<location>
<dimension name="Weight" xvalue="700"/>
</location>
</instance>
<instance name="Arial Black">
<location>
<dimension name="Weight" xvalue="900"/>
</location>
</instance>
<instance name="Arial Italic">
<!-- Should be stylemapstylename="italic" -->
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Arial Bold Italic">
<!-- Should be stylemapstylename="bold italic" -->
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Arial Narrow">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Arial Narrow Bold">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Width" xvalue="75"/>
</location>
</instance>
<instance name="Arial Narrow Bold Italic">
<location>
<dimension name="Weight" xvalue="700"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
<instance name="Arial Narrow Italic">
<location>
<dimension name="Weight" xvalue="400"/>
<dimension name="Width" xvalue="75"/>
<dimension name="Italic" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,90 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<!--
NOTE: this file is the same as test_v4_original, except:
- the format is 5,
- source location width = 20 are not written out because it's the default
- instance <glyphs>, <kerning>, <info> are removed because deprecated
-->
<axes>
<axis tag="wght" name="weight" minimum="0" maximum="1000" default="0">
<labelname xml:lang="en">Wéíght</labelname>
<labelname xml:lang="fa-IR">قطر</labelname>
</axis>
<axis tag="wdth" name="width" minimum="0" maximum="1000" default="15" hidden="1">
<labelname xml:lang="fr">Chasse</labelname>
<map input="0" output="10"/>
<map input="15" output="20"/>
<map input="401" output="66"/>
<map input="1000" output="990"/>
</axis>
</axes>
<rules processing="last">
<rule name="named.rule.1">
<conditionset>
<condition name="axisName_a" minimum="0" maximum="1"/>
<condition name="axisName_b" minimum="2" maximum="3"/>
</conditionset>
<sub name="a" with="a.alt"/>
</rule>
</rules>
<sources>
<source filename="masters/masterTest1.ufo" name="master.ufo1" familyname="MasterFamilyName" stylename="MasterStyleNameOne">
<lib copy="1"/>
<features copy="1"/>
<info copy="1"/>
<glyph name="A" mute="1"/>
<glyph name="Z" mute="1"/>
<location>
<dimension name="weight" xvalue="0"/>
</location>
</source>
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="MasterStyleNameTwo">
<kerning mute="1"/>
<location>
<dimension name="weight" xvalue="1000"/>
</location>
</source>
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="Supports" layer="supports">
<location>
<dimension name="weight" xvalue="1000"/>
</location>
</source>
</sources>
<instances>
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
<stylename xml:lang="fr">Demigras</stylename>
<stylename xml:lang="ja">半ば</stylename>
<familyname xml:lang="fr">Montserrat</familyname>
<familyname xml:lang="ja">モンセラート</familyname>
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
<location>
<dimension name="weight" xvalue="500"/>
</location>
<lib>
<dict>
<key>com.coolDesignspaceApp.binaryData</key>
<data>
PGJpbmFyeSBndW5rPg==
</data>
<key>com.coolDesignspaceApp.specimenText</key>
<string>Hamburgerwhatever</string>
</dict>
</lib>
</instance>
<instance name="instance.ufo2" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest2.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
<location>
<dimension name="weight" xvalue="500"/>
<dimension name="width" xvalue="400" yvalue="300"/>
</location>
</instance>
</instances>
<lib>
<dict>
<key>com.coolDesignspaceApp.previewSize</key>
<integer>30</integer>
</dict>
</lib>
</designspace>

View File

@ -0,0 +1,646 @@
<?xml version='1.0' encoding='UTF-8'?>
<designspace format="5.0">
<axes>
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
<map input="200" output="0"/>
<map input="300" output="145"/>
<map input="400" output="394"/>
<map input="600" output="594"/>
<map input="700" output="823"/>
<map input="900" output="1000"/>
<labels ordering="1">
<label uservalue="200" userminimum="200" usermaximum="250" name="ExtraLight"/>
<label uservalue="300" userminimum="250" usermaximum="350" name="Light"/>
<label uservalue="400" userminimum="350" usermaximum="450" name="Regular" elidable="true"/>
<label uservalue="600" userminimum="550" usermaximum="650" name="Semibold"/>
<label uservalue="700" userminimum="650" usermaximum="750" name="Bold"/>
<label uservalue="775" userminimum="750" usermaximum="800" name="ExtraBold"/>
<label uservalue="900" userminimum="800" usermaximum="900" name="Black"/>
</labels>
</axis>
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20">
<labels ordering="0">
<label uservalue="8" userminimum="8" usermaximum="12" name="Caption"/>
<label uservalue="16" userminimum="12" usermaximum="18" name="SmallText"/>
<label uservalue="20" userminimum="18" usermaximum="26" name="Text" elidable="true"/>
<label uservalue="32" userminimum="26" usermaximum="48" name="Subhead"/>
<label uservalue="60" userminimum="48" usermaximum="60" name="Display"/>
</labels>
</axis>
<axis tag="ital" name="italic" values="0 1" default="0">
<labels ordering="2">
<label uservalue="0" name="Roman" elidable="true"/>
<label uservalue="1" name="Italic"/>
</labels>
</axis>
</axes>
<sources>
<source filename="caption/master_0/SourceSerif_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="caption/master_1/SourceSerif_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="caption/master_2/SourceSerif_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="text/master_0/SourceSerif_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="text/master_2/SourceSerif_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="display/master_0/SourceSerif_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="display/master_1/SourceSerif_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="display/master_2/SourceSerif_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</source>
<source filename="caption/master_0/SourceSerif-Italic_c0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="caption/master_1/SourceSerif-Italic_c1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="caption/master_2/SourceSerif-Italic_c2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="text/master_0/SourceSerif-Italic_0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="text/master_1/SourceSerif-Italic_1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="text/master_2/SourceSerif-Italic_2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="display/master_0/SourceSerif-Italic_d0.ufo">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="display/master_1/SourceSerif-Italic_d1.ufo">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
<source filename="display/master_2/SourceSerif-Italic_d2.ufo">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</source>
</sources>
<variable-fonts>
<variable-font name="SourceSerif4Variable-Roman">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="optical"/>
<axis-subset name="italic" uservalue="0"/>
</axis-subsets>
<!-- The per-variable-font lib is to be merged into the global lib on
conversion to a DS v4, overwriting keys in the global lib. -->
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>tonos.cap</string>
<string>f.ligalong</string>
<string>dieresiscmb.tight</string>
<string>IJ</string>
<string>Tbar</string>
<string>colontriangularmod</string>
<string>crossmark</string>
<string>ij</string>
<string>overline</string>
<string>similar</string>
<string>tbar</string>
<string>triangularbullet</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</variable-font>
<variable-font name="SourceSerif4Variable-Italic">
<axis-subsets>
<axis-subset name="weight"/>
<axis-subset name="optical"/>
<axis-subset name="italic" uservalue="1"/>
</axis-subsets>
<lib>
<dict>
<key>public.skipExportGlyphs</key>
<array>
<string>caron.alt</string>
<string>commabelowcmb.alt</string>
<string>f.liga</string>
<string>f.ligalong</string>
<string>tonos.cap</string>
<string>dieresiscmb.tight</string>
<string>turkicdsccmb</string>
</array>
</dict>
</lib>
</variable-font>
</variable-fonts>
<instances>
<instance postscriptfontname="SourceSerif4Roman-CaptionExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-CaptionLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-CaptionRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-CaptionSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-CaptionBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-CaptionBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText ExtraLight" postscriptfontname="SourceSerif4Roman-SmTextExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText Light" postscriptfontname="SourceSerif4Roman-SmTextLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText" postscriptfontname="SourceSerif4Roman-SmTextRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText Semibold" postscriptfontname="SourceSerif4Roman-SmTextSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText Bold" postscriptfontname="SourceSerif4Roman-SmTextBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="SmText Black" postscriptfontname="SourceSerif4Roman-SmTextBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-ExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-Light">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance stylename="Regular" postscriptfontname="SourceSerif4Roman-Regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-Semibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-Bold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-Black">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-SubheadBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplayExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplayLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplayRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplaySemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplayBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Roman-DisplayBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="0"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-CaptionBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="8"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText ExtraLight Italic" postscriptfontname="SourceSerif4Italic-SmTextExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText Light Italic" postscriptfontname="SourceSerif4Italic-SmTextLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText Italic" postscriptfontname="SourceSerif4Italic-SmTextRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText Semibold Italic" postscriptfontname="SourceSerif4Italic-SmTextSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText Bold Italic" postscriptfontname="SourceSerif4Italic-SmTextBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance stylename="SmText Black Italic" postscriptfontname="SourceSerif4Italic-SmTextBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="16"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-ExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-Light">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-Regular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-Semibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-Bold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-Black">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="20"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadSemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-SubheadBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="32"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplayExtraLight">
<location>
<dimension name="weight" xvalue="0"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplayLight">
<location>
<dimension name="weight" xvalue="145"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplayRegular">
<location>
<dimension name="weight" xvalue="394"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplaySemibold">
<location>
<dimension name="weight" xvalue="594"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplayBold">
<location>
<dimension name="weight" xvalue="823"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
<instance postscriptfontname="SourceSerif4Italic-DisplayBlack">
<location>
<dimension name="weight" xvalue="1000"/>
<dimension name="optical" xvalue="60"/>
<dimension name="italic" xvalue="1"/>
</location>
</instance>
</instances>
</designspace>

View File

@ -1,15 +1,25 @@
# coding=utf-8
import os
import sys
import pytest
import warnings
import re
from fontTools.misc import plistlib
from fontTools.designspaceLib import (
DesignSpaceDocument, SourceDescriptor, AxisDescriptor, RuleDescriptor,
InstanceDescriptor, evaluateRule, processRules, posix, DesignSpaceDocumentError)
import pytest
from fontTools import ttLib
from fontTools.designspaceLib import (
AxisDescriptor,
AxisLabelDescriptor,
DesignSpaceDocument,
DesignSpaceDocumentError,
DiscreteAxisDescriptor,
InstanceDescriptor,
RuleDescriptor,
SourceDescriptor,
evaluateRule,
posix,
processRules,
)
from fontTools.misc import plistlib
def _axesAsDict(axes):
"""
@ -30,19 +40,22 @@ def _axesAsDict(axes):
def assert_equals_test_file(path, test_filename):
with open(path) as fp:
with open(path, encoding="utf-8") as fp:
actual = fp.read()
test_path = os.path.join(os.path.dirname(__file__), test_filename)
with open(test_path) as fp:
with open(test_path, encoding="utf-8") as fp:
expected = fp.read()
expected = re.sub(r"<!--(.|\n)*?-->", "", expected)
expected = re.sub(r"\s*\n+", "\n", expected)
assert actual == expected
def test_fill_document(tmpdir):
tmpdir = str(tmpdir)
testDocPath = os.path.join(tmpdir, "test.designspace")
testDocPath = os.path.join(tmpdir, "test_v4.designspace")
testDocPath5 = os.path.join(tmpdir, "test_v5.designspace")
masterPath1 = os.path.join(tmpdir, "masters", "masterTest1.ufo")
masterPath2 = os.path.join(tmpdir, "masters", "masterTest2.ufo")
instancePath1 = os.path.join(tmpdir, "instances", "instanceTest1.ufo")
@ -121,6 +134,10 @@ def test_fill_document(tmpdir):
i1.postScriptFontName = "InstancePostscriptName"
i1.styleMapFamilyName = "InstanceStyleMapFamilyName"
i1.styleMapStyleName = "InstanceStyleMapStyleName"
i1.localisedStyleName = dict(fr="Demigras", ja="半ば")
i1.localisedFamilyName = dict(fr="Montserrat", ja="モンセラート")
i1.localisedStyleMapStyleName = dict(de="Standard")
i1.localisedStyleMapFamilyName = dict(de="Montserrat Halbfett", ja="モンセラート SemiBold")
glyphData = dict(name="arrow", mute=True, unicodes=[0x123, 0x124, 0x125])
i1.glyphs['arrow'] = glyphData
i1.lib['com.coolDesignspaceApp.binaryData'] = plistlib.Data(b'<binary gunk>')
@ -158,16 +175,21 @@ def test_fill_document(tmpdir):
])
r1.subs.append(("a", "a.alt"))
doc.addRule(r1)
# write the document
# write the document; without an explicit format it will be 5.0 by default
doc.write(testDocPath5)
assert os.path.exists(testDocPath5)
assert_equals_test_file(testDocPath5, 'data/test_v5_original.designspace')
# write again with an explicit format = 4.1
doc.formatVersion = "4.1"
doc.write(testDocPath)
assert os.path.exists(testDocPath)
assert_equals_test_file(testDocPath, 'data/test.designspace')
assert_equals_test_file(testDocPath, 'data/test_v4_original.designspace')
# import it again
new = DesignSpaceDocument()
new.read(testDocPath)
assert new.default.location == {'width': 20.0, 'weight': 0.0}
assert new.filename == 'test.designspace'
assert new.filename == 'test_v4.designspace'
assert new.lib == doc.lib
assert new.instances[0].lib == doc.instances[0].lib
@ -197,6 +219,7 @@ def test_unicodes(tmpdir):
instancePath1 = os.path.join(tmpdir, "instances", "instanceTest1.ufo")
instancePath2 = os.path.join(tmpdir, "instances", "instanceTest2.ufo")
doc = DesignSpaceDocument()
doc.formatVersion = "4.1" # This test about instance glyphs is deprecated in v5
# add master 1
s1 = SourceDescriptor()
s1.filename = os.path.relpath(masterPath1, os.path.dirname(testDocPath))
@ -832,7 +855,7 @@ def test_updatePaths(tmpdir):
def test_read_with_path_object():
import pathlib
source = (pathlib.Path(__file__) / "../data/test.designspace").resolve()
source = (pathlib.Path(__file__) / "../data/test_v4_original.designspace").resolve()
assert source.exists()
doc = DesignSpaceDocument()
doc.read(source)
@ -841,7 +864,7 @@ def test_read_with_path_object():
def test_with_with_path_object(tmpdir):
import pathlib
tmpdir = str(tmpdir)
dest = pathlib.Path(tmpdir) / "test.designspace"
dest = pathlib.Path(tmpdir) / "test_v4_original.designspace"
doc = DesignSpaceDocument()
doc.write(dest)
assert dest.exists()

View File

@ -0,0 +1,888 @@
import re
import shutil
from pathlib import Path
import pytest
from fontTools.designspaceLib import (
AxisDescriptor,
AxisLabelDescriptor,
DesignSpaceDocument,
DiscreteAxisDescriptor,
InstanceDescriptor,
LocationLabelDescriptor,
RangeAxisSubsetDescriptor,
SourceDescriptor,
ValueAxisSubsetDescriptor,
VariableFontDescriptor,
posix,
)
from .fixtures import datadir
def assert_descriptors_equal(actual, expected):
assert len(actual) == len(expected)
for a, e in zip(actual, expected):
assert a.asdict() == e.asdict()
def test_read_v5_document_simple(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
assert_descriptors_equal(
doc.axes,
[
AxisDescriptor(
tag="wght",
name="weight",
minimum=200,
maximum=1000,
default=200,
labelNames={"en": "Wéíght", "fa-IR": "قطر"},
map=[
(200, 0),
(300, 100),
(400, 368),
(600, 600),
(700, 824),
(900, 1000),
],
axisOrdering=None,
axisLabels=[
AxisLabelDescriptor(
name="Extra Light",
userMinimum=200,
userValue=200,
userMaximum=250,
labelNames={"de": "Extraleicht", "fr": "Extra léger"},
),
AxisLabelDescriptor(
name="Light", userMinimum=250, userValue=300, userMaximum=350
),
AxisLabelDescriptor(
name="Regular",
userMinimum=350,
userValue=400,
userMaximum=450,
elidable=True,
),
AxisLabelDescriptor(
name="Semi Bold",
userMinimum=450,
userValue=600,
userMaximum=650,
),
AxisLabelDescriptor(
name="Bold", userMinimum=650, userValue=700, userMaximum=850
),
AxisLabelDescriptor(
name="Black", userMinimum=850, userValue=900, userMaximum=900
),
],
),
AxisDescriptor(
tag="wdth",
name="width",
minimum=50,
maximum=150,
default=100,
hidden=True,
labelNames={"fr": "Chasse"},
map=[(50, 10), (100, 20), (125, 66), (150, 990)],
axisOrdering=1,
axisLabels=[
AxisLabelDescriptor(name="Condensed", userValue=50),
AxisLabelDescriptor(
name="Normal", elidable=True, olderSibling=True, userValue=100
),
AxisLabelDescriptor(name="Wide", userValue=125),
AxisLabelDescriptor(
name="Extra Wide", userValue=150, userMinimum=150
),
],
),
DiscreteAxisDescriptor(
tag="ital",
name="Italic",
values=[0, 1],
default=0,
axisOrdering=None,
axisLabels=[
AxisLabelDescriptor(
name="Roman", userValue=0, elidable=True, linkedUserValue=1
),
AxisLabelDescriptor(name="Italic", userValue=1),
],
),
],
)
assert_descriptors_equal(
doc.locationLabels,
[
LocationLabelDescriptor(
name="Some Style",
labelNames={"fr": "Un Style"},
userLocation={"weight": 300, "width": 50, "Italic": 0},
),
LocationLabelDescriptor(
name="Other", userLocation={"weight": 700, "width": 100, "Italic": 1}
),
],
)
assert_descriptors_equal(
doc.sources,
[
SourceDescriptor(
filename="masters/masterTest1.ufo",
path=posix(str((datadir / "masters/masterTest1.ufo").resolve())),
name="master.ufo1",
layerName=None,
location={"weight": 0.0, "width": 20.0},
copyLib=True,
copyInfo=True,
copyGroups=False,
copyFeatures=True,
muteKerning=False,
muteInfo=False,
mutedGlyphNames=["A", "Z"],
familyName="MasterFamilyName",
styleName="MasterStyleNameOne",
localisedFamilyName={"fr": "Montserrat", "ja": "モンセラート"},
),
SourceDescriptor(
filename="masters/masterTest2.ufo",
path=posix(str((datadir / "masters/masterTest2.ufo").resolve())),
name="master.ufo2",
layerName=None,
location={"weight": 1000.0, "width": 20.0},
copyLib=False,
copyInfo=False,
copyGroups=False,
copyFeatures=False,
muteKerning=True,
muteInfo=False,
mutedGlyphNames=[],
familyName="MasterFamilyName",
styleName="MasterStyleNameTwo",
localisedFamilyName={},
),
SourceDescriptor(
filename="masters/masterTest2.ufo",
path=posix(str((datadir / "masters/masterTest2.ufo").resolve())),
name="master.ufo2",
layerName="supports",
location={"weight": 1000.0, "width": 20.0},
copyLib=False,
copyInfo=False,
copyGroups=False,
copyFeatures=False,
muteKerning=False,
muteInfo=False,
mutedGlyphNames=[],
familyName="MasterFamilyName",
styleName="Supports",
localisedFamilyName={},
),
],
)
assert_descriptors_equal(
doc.variableFonts,
[
VariableFontDescriptor(
name="Test_WghtWdth",
filename="Test_WghtWdth_different_from_name.ttf",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
RangeAxisSubsetDescriptor(name="Width"),
],
lib={"com.vtt.source": "sources/vtt/Test_WghtWdth.vtt"},
),
VariableFontDescriptor(
name="Test_Wght",
axisSubsets=[RangeAxisSubsetDescriptor(name="Weight")],
lib={"com.vtt.source": "sources/vtt/Test_Wght.vtt"},
),
VariableFontDescriptor(
name="TestCd_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
ValueAxisSubsetDescriptor(name="Width", userValue=0),
],
),
VariableFontDescriptor(
name="TestWd_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
ValueAxisSubsetDescriptor(name="Width", userValue=1000),
],
),
VariableFontDescriptor(
name="TestItalic_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
],
),
VariableFontDescriptor(
name="TestRB_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(
name="Weight", userMinimum=400, userDefault=400, userMaximum=700
),
ValueAxisSubsetDescriptor(name="Italic", userValue=0),
],
),
],
)
assert_descriptors_equal(
doc.instances,
[
InstanceDescriptor(
filename="instances/instanceTest1.ufo",
path=posix(str((datadir / "instances/instanceTest1.ufo").resolve())),
name="instance.ufo1",
designLocation={"weight": 500.0, "width": 20.0},
familyName="InstanceFamilyName",
styleName="InstanceStyleName",
postScriptFontName="InstancePostscriptName",
styleMapFamilyName="InstanceStyleMapFamilyName",
styleMapStyleName="InstanceStyleMapStyleName",
localisedFamilyName={"fr": "Montserrat", "ja": "モンセラート"},
localisedStyleName={"fr": "Demigras", "ja": "半ば"},
localisedStyleMapFamilyName={
"de": "Montserrat Halbfett",
"ja": "モンセラート SemiBold",
},
localisedStyleMapStyleName={"de": "Standard"},
glyphs={"arrow": {"mute": True, "unicodes": [291, 292, 293]}},
lib={
"com.coolDesignspaceApp.binaryData": b"<binary gunk>",
"com.coolDesignspaceApp.specimenText": "Hamburgerwhatever",
},
),
InstanceDescriptor(
filename="instances/instanceTest2.ufo",
path=posix(str((datadir / "instances/instanceTest2.ufo").resolve())),
name="instance.ufo2",
designLocation={"weight": 500.0, "width": (400.0, 300.0)},
familyName="InstanceFamilyName",
styleName="InstanceStyleName",
postScriptFontName="InstancePostscriptName",
styleMapFamilyName="InstanceStyleMapFamilyName",
styleMapStyleName="InstanceStyleMapStyleName",
glyphs={
"arrow": {
"unicodes": [101, 201, 301],
"note": "A note about this glyph",
"instanceLocation": {"weight": 120.0, "width": 100.0},
"masters": [
{
"font": "master.ufo1",
"location": {"weight": 20.0, "width": 20.0},
"glyphName": "BB",
},
{
"font": "master.ufo2",
"location": {"weight": 900.0, "width": 900.0},
"glyphName": "CC",
},
],
},
"arrow2": {},
},
),
InstanceDescriptor(
locationLabel="asdf",
),
InstanceDescriptor(
designLocation={"weight": 600.0, "width": (401.0, 420.0)},
),
InstanceDescriptor(
designLocation={"weight": 10.0, "Italic": 0.0},
userLocation={"width": 100.0},
),
InstanceDescriptor(
userLocation={"weight": 300.0, "width": 130.0, "Italic": 1.0},
),
],
)
def test_read_v5_document_decovar(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_decovar.designspace")
assert not doc.variableFonts
assert_descriptors_equal(
doc.axes,
[
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Inline", tag="BLDA"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Shearded", tag="TRMD"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Rounded Slab", tag="TRMC"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Stripes", tag="SKLD"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Worm Terminal", tag="TRML"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Inline Skeleton", tag="SKLA"
),
AxisDescriptor(
default=0,
maximum=1000,
minimum=0,
name="Open Inline Terminal",
tag="TRMF",
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Inline Terminal", tag="TRMK"
),
AxisDescriptor(default=0, maximum=1000, minimum=0, name="Worm", tag="BLDB"),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Weight", tag="WMX2"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Flared", tag="TRMB"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Rounded", tag="TRMA"
),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Worm Skeleton", tag="SKLB"
),
AxisDescriptor(default=0, maximum=1000, minimum=0, name="Slab", tag="TRMG"),
AxisDescriptor(
default=0, maximum=1000, minimum=0, name="Bifurcated", tag="TRME"
),
],
)
assert_descriptors_equal(
doc.locationLabels,
[
LocationLabelDescriptor(name="Default", elidable=True, userLocation={}),
LocationLabelDescriptor(
name="Open", userLocation={"Inline": 1000}, labelNames={"de": "Offen"}
),
LocationLabelDescriptor(name="Worm", userLocation={"Worm": 1000}),
LocationLabelDescriptor(
name="Checkered", userLocation={"Inline Skeleton": 1000}
),
LocationLabelDescriptor(
name="Checkered Reverse", userLocation={"Inline Terminal": 1000}
),
LocationLabelDescriptor(name="Striped", userLocation={"Stripes": 500}),
LocationLabelDescriptor(name="Rounded", userLocation={"Rounded": 1000}),
LocationLabelDescriptor(name="Flared", userLocation={"Flared": 1000}),
LocationLabelDescriptor(
name="Flared Open",
userLocation={"Inline Skeleton": 1000, "Flared": 1000},
),
LocationLabelDescriptor(
name="Rounded Slab", userLocation={"Rounded Slab": 1000}
),
LocationLabelDescriptor(name="Sheared", userLocation={"Shearded": 1000}),
LocationLabelDescriptor(
name="Bifurcated", userLocation={"Bifurcated": 1000}
),
LocationLabelDescriptor(
name="Inline",
userLocation={"Inline Skeleton": 500, "Open Inline Terminal": 500},
),
LocationLabelDescriptor(name="Slab", userLocation={"Slab": 1000}),
LocationLabelDescriptor(name="Contrast", userLocation={"Weight": 1000}),
LocationLabelDescriptor(
name="Fancy",
userLocation={"Inline Skeleton": 1000, "Flared": 1000, "Weight": 1000},
),
LocationLabelDescriptor(
name="Mayhem",
userLocation={
"Inline Skeleton": 1000,
"Worm Skeleton": 1000,
"Rounded": 500,
"Flared": 500,
"Rounded Slab": 750,
"Bifurcated": 500,
"Open Inline Terminal": 250,
"Slab": 750,
"Inline Terminal": 250,
"Worm Terminal": 250,
"Weight": 750,
"Worm": 1000,
},
),
],
)
assert [i.locationLabel for i in doc.instances] == [
"Default",
"Open",
"Worm",
"Checkered",
"Checkered Reverse",
"Striped",
"Rounded",
"Flared",
"Flared Open",
"Rounded Slab",
"Sheared",
"Bifurcated",
"Inline",
"Slab",
"Contrast",
"Fancy",
"Mayhem",
]
def test_read_v5_document_discrete(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_discrete.designspace")
assert not doc.locationLabels
assert not doc.variableFonts
assert_descriptors_equal(
doc.axes,
[
DiscreteAxisDescriptor(
default=400,
values=[400, 700, 900],
name="Weight",
tag="wght",
axisLabels=[
AxisLabelDescriptor(
name="Regular",
userValue=400,
elidable=True,
linkedUserValue=700,
),
AxisLabelDescriptor(name="Bold", userValue=700),
AxisLabelDescriptor(name="Black", userValue=900),
],
),
DiscreteAxisDescriptor(
default=100,
values=[75, 100],
name="Width",
tag="wdth",
axisLabels=[
AxisLabelDescriptor(name="Narrow", userValue=75),
AxisLabelDescriptor(name="Normal", userValue=100, elidable=True),
],
),
DiscreteAxisDescriptor(
default=0,
values=[0, 1],
name="Italic",
tag="ital",
axisLabels=[
AxisLabelDescriptor(
name="Roman", userValue=0, elidable=True, linkedUserValue=1
),
AxisLabelDescriptor(name="Italic", userValue=1),
],
),
],
)
def test_read_v5_document_aktiv(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_aktiv.designspace")
assert not doc.locationLabels
assert_descriptors_equal(
doc.axes,
[
AxisDescriptor(
tag="wght",
name="Weight",
minimum=100,
default=400,
maximum=900,
map=[
(100, 22),
(200, 38),
(300, 57),
(400, 84),
(500, 98),
(600, 115),
(700, 133),
(800, 158),
(900, 185),
],
axisOrdering=1,
axisLabels=[
AxisLabelDescriptor(name="Hair", userValue=100),
AxisLabelDescriptor(userValue=200, name="Thin"),
AxisLabelDescriptor(userValue=300, name="Light"),
AxisLabelDescriptor(
userValue=400,
name="Regular",
elidable=True,
linkedUserValue=700,
),
AxisLabelDescriptor(userValue=500, name="Medium"),
AxisLabelDescriptor(userValue=600, name="SemiBold"),
AxisLabelDescriptor(userValue=700, name="Bold"),
AxisLabelDescriptor(userValue=800, name="XBold"),
AxisLabelDescriptor(userValue=900, name="Black"),
],
),
AxisDescriptor(
tag="wdth",
name="Width",
minimum=75,
default=100,
maximum=125,
axisOrdering=0,
axisLabels=[
AxisLabelDescriptor(name="Cd", userValue=75),
AxisLabelDescriptor(name="Normal", elidable=True, userValue=100),
AxisLabelDescriptor(name="Ex", userValue=125),
],
),
AxisDescriptor(
tag="ital",
name="Italic",
minimum=0,
default=0,
maximum=1,
axisOrdering=2,
axisLabels=[
AxisLabelDescriptor(
name="Upright", userValue=0, elidable=True, linkedUserValue=1
),
AxisLabelDescriptor(name="Italic", userValue=1),
],
),
],
)
assert_descriptors_equal(
doc.variableFonts,
[
VariableFontDescriptor(
name="AktivGroteskVF_WghtWdthItal",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
RangeAxisSubsetDescriptor(name="Width"),
RangeAxisSubsetDescriptor(name="Italic"),
],
),
VariableFontDescriptor(
name="AktivGroteskVF_WghtWdth",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
RangeAxisSubsetDescriptor(name="Width"),
],
),
VariableFontDescriptor(
name="AktivGroteskVF_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
],
),
VariableFontDescriptor(
name="AktivGroteskVF_Italics_WghtWdth",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
RangeAxisSubsetDescriptor(name="Width"),
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
],
),
VariableFontDescriptor(
name="AktivGroteskVF_Italics_Wght",
axisSubsets=[
RangeAxisSubsetDescriptor(name="Weight"),
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
],
),
],
)
@pytest.fixture
def map_doc():
"""Generate a document with a few axes to test the mapping functions"""
doc = DesignSpaceDocument()
doc.addAxis(
AxisDescriptor(
tag="wght",
name="Weight",
minimum=100,
maximum=900,
default=100,
map=[(100, 10), (900, 90)],
)
)
doc.addAxis(
AxisDescriptor(
tag="wdth",
name="Width",
minimum=75,
maximum=200,
default=100,
map=[(75, 7500), (100, 10000), (200, 20000)],
)
)
doc.addAxis(
AxisDescriptor(tag="CUST", name="Custom", minimum=1, maximum=2, default=1.5)
)
doc.addLocationLabel(
LocationLabelDescriptor(
name="Wonky", userLocation={"Weight": 800, "Custom": 1.2}
)
)
return doc
def test_doc_location_map_forward(map_doc: DesignSpaceDocument):
assert map_doc.map_forward({"Weight": 400, "Width": 150, "Custom": 2}) == {
"Weight": 40,
"Width": 15000,
"Custom": 2,
}, "The mappings should be used to compute the design locations"
assert map_doc.map_forward({"Weight": 400}) == {
"Weight": 40,
"Width": 10000,
"Custom": 1.5,
}, "Missing user locations should be assumed equal to the axis's default"
def test_doc_location_map_backward(map_doc: DesignSpaceDocument):
assert map_doc.map_backward({"Weight": 40, "Width": 15000, "Custom": 2}) == {
"Weight": 400,
"Width": 150,
"Custom": 2,
}, "The mappings should be used to compute the user locations"
assert map_doc.map_backward({"Weight": 40}) == {
"Weight": 400,
"Width": 100,
"Custom": 1.5,
}, "Missing design locations should be assumed equal to the axis's default"
assert map_doc.map_backward(
{"Weight": (40, 50), "Width": (15000, 100000), "Custom": (2, 1.5)}
) == {
"Weight": 400,
"Width": 150,
"Custom": 2,
}, "Only the xvalue of anisotropic locations is used"
def test_instance_location_from_label(map_doc):
inst = InstanceDescriptor(locationLabel="Wonky")
assert inst.getFullUserLocation(map_doc) == {
"Weight": 800,
"Width": 100,
"Custom": 1.2,
}, "an instance with a locationLabel uses the user location from that label, empty values on the label use axis defaults"
assert inst.getFullDesignLocation(map_doc) == {
"Weight": 80,
"Width": 10000,
"Custom": 1.2,
}, "an instance with a locationLabel computes the design location from that label, empty values on the label use axis defaults"
inst = InstanceDescriptor(locationLabel="Wonky", userLocation={"Width": 200})
assert inst.getFullUserLocation(map_doc) == {
"Weight": 800,
"Width": 100,
"Custom": 1.2,
}, "an instance with a locationLabel uses the user location from that label, other location values are ignored"
assert inst.getFullDesignLocation(map_doc) == {
"Weight": 80,
"Width": 10000,
"Custom": 1.2,
}, "an instance with a locationLabel computes the design location from that label, other location values are ignored"
def test_instance_location_no_data(map_doc):
inst = InstanceDescriptor()
assert inst.getFullUserLocation(map_doc) == {
"Weight": 100,
"Width": 100,
"Custom": 1.5,
}, "an instance without any location data has the default user location"
assert inst.getFullDesignLocation(map_doc) == {
"Weight": 10,
"Width": 10000,
"Custom": 1.5,
}, "an instance without any location data has the default design location"
def test_instance_location_design_first(map_doc):
inst = InstanceDescriptor(
designLocation={"Weight": (60, 61), "Width": 11000, "Custom": 1.2},
userLocation={"Weight": 700, "Width": 180, "Custom": 1.4},
)
assert inst.getFullUserLocation(map_doc) == {
"Weight": 600,
"Width": 110,
"Custom": 1.2,
}, "when both design and user location data are provided, design wins"
assert inst.getFullDesignLocation(map_doc) == {
"Weight": (60, 61),
"Width": 11000,
"Custom": 1.2,
}, "when both design and user location data are provided, design wins (incl. anisotropy)"
def test_instance_location_mix(map_doc):
inst = InstanceDescriptor(
designLocation={"Weight": (60, 61)},
userLocation={"Width": 180},
)
assert inst.getFullUserLocation(map_doc) == {
"Weight": 600,
"Width": 180,
"Custom": 1.5,
}, "instance location is a mix of design and user locations"
assert inst.getFullDesignLocation(map_doc) == {
"Weight": (60, 61),
"Width": 18000,
"Custom": 1.5,
}, "instance location is a mix of design and user location"
@pytest.mark.parametrize(
"filename",
[
"test_v4_original.designspace",
"test_v5_original.designspace",
"test_v5_aktiv.designspace",
"test_v5_decovar.designspace",
"test_v5_discrete.designspace",
"test_v5_sourceserif.designspace",
"test_v5.designspace",
],
)
def test_roundtrip(tmpdir, datadir, filename):
test_file = datadir / filename
output_path = tmpdir / filename
# Move the file to the tmpdir so that the filenames stay the same
# (they're relative to the file's path)
shutil.copy(test_file, output_path)
doc = DesignSpaceDocument.fromfile(output_path)
doc.write(output_path)
# The input XML has comments and empty lines for documentation purposes
xml = test_file.read_text(encoding="utf-8")
xml = re.sub(
r"<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->(.|\n)*?<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->",
"",
xml,
)
xml = re.sub(r"<!--(.|\n)*?-->", "", xml)
xml = re.sub(r"\s*\n+", "\n", xml)
assert output_path.read_text(encoding="utf-8") == xml
def test_using_v5_features_upgrades_format(tmpdir, datadir):
test_file = datadir / "test_v4_original.designspace"
output_4_path = tmpdir / "test_v4.designspace"
output_5_path = tmpdir / "test_v5.designspace"
shutil.copy(test_file, output_4_path)
doc = DesignSpaceDocument.fromfile(output_4_path)
doc.write(output_4_path)
assert 'format="4.1"' in output_4_path.read_text(encoding="utf-8")
doc.addVariableFont(VariableFontDescriptor(name="TestVF"))
doc.write(output_5_path)
assert 'format="5.0"' in output_5_path.read_text(encoding="utf-8")
def test_addAxisDescriptor_discrete():
ds = DesignSpaceDocument()
axis = ds.addAxisDescriptor(
name="Italic",
tag="ital",
values=[0, 1],
default=0,
hidden=True,
map=[(0, -12), (1, 0)],
axisOrdering=3,
axisLabels=[
AxisLabelDescriptor(
name="Roman",
userValue=0,
elidable=True,
olderSibling=True,
linkedUserValue=1,
labelNames={"fr": "Romain"},
)
],
)
assert ds.axes[0] is axis
assert_descriptors_equal(
[axis],
[
DiscreteAxisDescriptor(
tag="ital",
name="Italic",
values=[0, 1],
default=0,
hidden=True,
map=[(0, -12), (1, 0)],
axisOrdering=3,
axisLabels=[
AxisLabelDescriptor(
name="Roman",
userValue=0,
elidable=True,
olderSibling=True,
linkedUserValue=1,
labelNames={"fr": "Romain"},
)
],
)
],
)
def test_addLocationLabelDescriptor():
ds = DesignSpaceDocument()
label = ds.addLocationLabelDescriptor(
name="Somewhere",
userLocation={},
elidable=True,
olderSibling=True,
labelNames={"fr": "Quelque part"},
)
assert ds.locationLabels[0] is label
assert_descriptors_equal(
[label],
[
LocationLabelDescriptor(
name="Somewhere",
userLocation={},
elidable=True,
olderSibling=True,
labelNames={"fr": "Quelque part"},
)
],
)
def test_addVariableFontDescriptor():
ds = DesignSpaceDocument()
vf = ds.addVariableFontDescriptor(name="TestVF", filename="TestVF.ttf")
assert ds.variableFonts[0] is vf
assert_descriptors_equal(
[vf], [VariableFontDescriptor(name="TestVF", filename="TestVF.ttf")]
)

View File

@ -0,0 +1,8 @@
from pathlib import Path
import pytest
@pytest.fixture
def datadir():
return Path(__file__).parent / "data"

View File

@ -0,0 +1,150 @@
import shutil
from pathlib import Path
import pytest
from fontTools.designspaceLib import DesignSpaceDocument
from fontTools.designspaceLib.split import splitInterpolable, splitVariableFonts, convert5to4
from .fixtures import datadir
UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING = False
@pytest.mark.parametrize(
"test_ds,expected_interpolable_spaces",
[
(
"test_v5_aktiv.designspace",
[
(
{},
{
"AktivGroteskVF_Italics_Wght",
"AktivGroteskVF_Italics_WghtWdth",
"AktivGroteskVF_Wght",
"AktivGroteskVF_WghtWdth",
"AktivGroteskVF_WghtWdthItal",
},
)
],
),
(
"test_v5_sourceserif.designspace",
[
(
{"italic": 0},
{"SourceSerif4Variable-Roman"},
),
(
{"italic": 1},
{"SourceSerif4Variable-Italic"},
),
],
),
(
"test_v5_MutatorSans_and_Serif.designspace",
[
(
{"serif": 0},
{
"MutatorSansVariable_Weight_Width",
"MutatorSansVariable_Weight",
"MutatorSansVariable_Width",
},
),
(
{"serif": 1},
{
"MutatorSerifVariable_Width",
},
),
],
),
],
)
def test_split(datadir, tmpdir, test_ds, expected_interpolable_spaces):
data_in = datadir / test_ds
temp_in = Path(tmpdir) / test_ds
shutil.copy(data_in, temp_in)
doc = DesignSpaceDocument.fromfile(temp_in)
for i, (location, sub_doc) in enumerate(splitInterpolable(doc)):
expected_location, expected_vf_names = expected_interpolable_spaces[i]
assert location == expected_location
vfs = list(splitVariableFonts(sub_doc))
assert expected_vf_names == set(vf[0] for vf in vfs)
loc_str = "_".join(f"{name}_{value}"for name, value in sorted(location.items()))
data_out = datadir / "split_output" / f"{temp_in.stem}_{loc_str}.designspace"
temp_out = Path(tmpdir) / "out" / f"{temp_in.stem}_{loc_str}.designspace"
temp_out.parent.mkdir(exist_ok=True)
sub_doc.write(temp_out)
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
data_out.write_text(temp_out.read_text(encoding="utf-8"), encoding="utf-8")
else:
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
encoding="utf-8"
)
for vf_name, vf_doc in vfs:
data_out = (datadir / "split_output" / vf_name).with_suffix(".designspace")
temp_out = (Path(tmpdir) / "out" / vf_name).with_suffix(".designspace")
temp_out.parent.mkdir(exist_ok=True)
vf_doc.write(temp_out)
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
data_out.write_text(
temp_out.read_text(encoding="utf-8"), encoding="utf-8"
)
else:
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
encoding="utf-8"
)
@pytest.mark.parametrize(
"test_ds,expected_vfs",
[
(
"test_v5_aktiv.designspace",
{
"AktivGroteskVF_Italics_Wght",
"AktivGroteskVF_Italics_WghtWdth",
"AktivGroteskVF_Wght",
"AktivGroteskVF_WghtWdth",
"AktivGroteskVF_WghtWdthItal",
},
),
(
"test_v5_sourceserif.designspace",
{
"SourceSerif4Variable-Italic",
"SourceSerif4Variable-Roman",
},
),
],
)
def test_convert5to4(datadir, tmpdir, test_ds, expected_vfs):
data_in = datadir / test_ds
temp_in = tmpdir / test_ds
shutil.copy(data_in, temp_in)
doc = DesignSpaceDocument.fromfile(temp_in)
variable_fonts = convert5to4(doc)
assert variable_fonts.keys() == expected_vfs
for vf_name, vf in variable_fonts.items():
data_out = (datadir / "convert5to4_output" / vf_name).with_suffix(".designspace")
temp_out = (Path(tmpdir) / "out" / vf_name).with_suffix(".designspace")
temp_out.parent.mkdir(exist_ok=True)
vf.write(temp_out)
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
data_out.write_text(temp_out.read_text(encoding="utf-8"), encoding="utf-8")
else:
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
encoding="utf-8"
)

View File

@ -0,0 +1,61 @@
from fontTools.designspaceLib import DesignSpaceDocument
from fontTools.designspaceLib.statNames import StatNames, getStatNames
from .fixtures import datadir
def test_instance_getStatNames(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_sourceserif.designspace")
assert getStatNames(doc, doc.instances[0].getFullUserLocation(doc)) == StatNames(
familyNames={"en": "Source Serif 4"},
styleNames={"en": "Caption ExtraLight"},
postScriptFontName="SourceSerif4-CaptionExtraLight",
styleMapFamilyNames={"en": "Source Serif 4 Caption ExtraLight"},
styleMapStyleName="regular",
)
def test_not_all_ordering_specified_and_translations(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
assert getStatNames(doc, {"weight": 200, "width": 125, "Italic": 1}) == StatNames(
familyNames={
"en": "MasterFamilyName",
"fr": "Montserrat",
"ja": "モンセラート",
},
styleNames={
"fr": "Wide Extra léger Italic",
"de": "Wide Extraleicht Italic",
"en": "Wide Extra Light Italic",
},
postScriptFontName="MasterFamilyName-WideExtraLightItalic",
styleMapFamilyNames={
"en": "MasterFamilyName Wide Extra Light",
"fr": "Montserrat Wide Extra léger",
"de": "MasterFamilyName Wide Extraleicht",
"ja": "モンセラート Wide Extra Light",
},
styleMapStyleName="italic",
)
def test_detect_ribbi_aktiv(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_aktiv.designspace")
assert getStatNames(doc, {"Weight": 600, "Width": 125, "Italic": 1}) == StatNames(
familyNames={"en": "Aktiv Grotesk"},
styleNames={"en": "Ex SemiBold Italic"},
postScriptFontName="AktivGrotesk-ExSemiBoldItalic",
styleMapFamilyNames={"en": "Aktiv Grotesk Ex SemiBold"},
styleMapStyleName="italic",
)
assert getStatNames(doc, {"Weight": 700, "Width": 75, "Italic": 1}) == StatNames(
familyNames={"en": "Aktiv Grotesk"},
styleNames={"en": "Cd Bold Italic"},
postScriptFontName="AktivGrotesk-CdBoldItalic",
styleMapFamilyNames={"en": "Aktiv Grotesk Cd"},
styleMapStyleName="bold italic",
)

167
Tests/varLib/stat_test.py Normal file
View File

@ -0,0 +1,167 @@
from pathlib import Path
import pytest
from fontTools.designspaceLib import DesignSpaceDocument
from fontTools.designspaceLib.split import Range
from fontTools.varLib.stat import getStatAxes, getStatLocations
@pytest.fixture
def datadir():
return Path(__file__).parent / "../designspaceLib/data"
def test_getStatAxes(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
assert getStatAxes(
doc, {"Italic": 0, "width": Range(50, 150), "weight": Range(200, 900)}
) == [
{
"values": [
{
"flags": 0,
"name": {
"de": "Extraleicht",
"en": "Extra Light",
"fr": "Extra léger",
},
"nominalValue": 200.0,
"rangeMaxValue": 250.0,
"rangeMinValue": 200.0,
},
{
"flags": 0,
"name": {"en": "Light"},
"nominalValue": 300.0,
"rangeMaxValue": 350.0,
"rangeMinValue": 250.0,
},
{
"flags": 2,
"name": {"en": "Regular"},
"nominalValue": 400.0,
"rangeMaxValue": 450.0,
"rangeMinValue": 350.0,
},
{
"flags": 0,
"name": {"en": "Semi Bold"},
"nominalValue": 600.0,
"rangeMaxValue": 650.0,
"rangeMinValue": 450.0,
},
{
"flags": 0,
"name": {"en": "Bold"},
"nominalValue": 700.0,
"rangeMaxValue": 850.0,
"rangeMinValue": 650.0,
},
{
"flags": 0,
"name": {"en": "Black"},
"nominalValue": 900.0,
"rangeMaxValue": 900.0,
"rangeMinValue": 850.0,
},
],
"name": {"en": "Wéíght", "fa-IR": "قطر"},
"ordering": 2,
"tag": "wght",
},
{
"values": [
{"flags": 0, "name": {"en": "Condensed"}, "value": 50.0},
{"flags": 3, "name": {"en": "Normal"}, "value": 100.0},
{"flags": 0, "name": {"en": "Wide"}, "value": 125.0},
{
"flags": 0,
"name": {"en": "Extra Wide"},
"nominalValue": 150.0,
"rangeMinValue": 150.0,
},
],
"name": {"en": "width", "fr": "Chasse"},
"ordering": 1,
"tag": "wdth",
},
{
"values": [
{"flags": 2, "linkedValue": 1.0, "name": {"en": "Roman"}, "value": 0.0},
],
"name": {"en": "Italic"},
"ordering": 3,
"tag": "ital",
},
]
assert getStatAxes(doc, {"Italic": 1, "width": 100, "weight": Range(400, 700)}) == [
{
"values": [
{
"flags": 2,
"name": {"en": "Regular"},
"nominalValue": 400.0,
"rangeMaxValue": 450.0,
"rangeMinValue": 350.0,
},
{
"flags": 0,
"name": {"en": "Semi Bold"},
"nominalValue": 600.0,
"rangeMaxValue": 650.0,
"rangeMinValue": 450.0,
},
{
"flags": 0,
"name": {"en": "Bold"},
"nominalValue": 700.0,
"rangeMaxValue": 850.0,
"rangeMinValue": 650.0,
},
],
"name": {"en": "Wéíght", "fa-IR": "قطر"},
"ordering": 2,
"tag": "wght",
},
{
"values": [
{"flags": 3, "name": {"en": "Normal"}, "value": 100.0},
],
"name": {"en": "width", "fr": "Chasse"},
"ordering": 1,
"tag": "wdth",
},
{
"values": [
{"flags": 0, "name": {"en": "Italic"}, "value": 1.0},
],
"name": {"en": "Italic"},
"ordering": 3,
"tag": "ital",
},
]
def test_getStatLocations(datadir):
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
assert getStatLocations(
doc, {"Italic": 0, "width": Range(50, 150), "weight": Range(200, 900)}
) == [
{
"flags": 0,
"location": {"ital": 0.0, "wdth": 50.0, "wght": 300.0},
"name": {"en": "Some Style", "fr": "Un Style"},
},
]
assert getStatLocations(
doc, {"Italic": 1, "width": Range(50, 150), "weight": Range(200, 900)}
) == [
{
"flags": 0,
"location": {"ital": 1.0, "wdth": 100.0, "wght": 700.0},
"name": {"en": "Other"},
},
]