Skip to content

Latest commit

 

History

History
222 lines (179 loc) · 8.42 KB

README.md

File metadata and controls

222 lines (179 loc) · 8.42 KB

RobotoA2

Alpha version of RobotoFlex made with avar2 data. (work in progress)

Table of contents

File Size Comparison

File glyphs file-size bytes per glyph
RobotoA2-avar2-VF.ttf 1,042 GitHub file size in bytes 476
RobotoFlex[...].ttf 948 GitHub file size in bytes 1,885.33

1,885.3291139241/476.072 = 3.96x smaller

476.072/1,885.3291139241 = 25.25140022%

Current folder structure

RobotoA2
├── docs/
├── fonts/
├── OFL.txt
├── source/
├── README.md
├── requirements.txt
├── tools/
Fonts
This folder contains variable font binaries for testing, in subfolders for different stages of the project.
Source
This folder contains various source files used to design and build the variable fonts. Source files include UFO font sources, designspace files, Python scripts, as well as additional text files with data for glyph sets, glyph constructions, measurements, parametric blends, and fences.
docs
This folder is meant to contain font proof tests.

Fonts Folder

The Fonts folder currently contains two subfolders which correspond to different development stages of the project.

Fonts
├── AsciiAlpha/
├── LGCAlpha/
├── TechAlpha/
AsciiAlpha
Our second (successful) attempt at building an avar2 font, ascii only.
LGCAlpha
THIS contains the latest WIP fonts.
TechAlpha
Our first (failed) attempt at building an avar2 font. ⚠️ These files are no longer useful and can probably be archived in a branch.

ASCII Alpha

AsciiAlpha
├── RobotoA2-avar1-VF.ttf
├── RobotoA2-avar2-VF.ttf
└── RobotoA2-avar2-fences-VF.ttf
RobotoA2-Roman_avar1.ttf
Variable font in avar1 format. Blended axes are created by instantiating their extrema from parametric axes, and inserting them into the designspace as sources.
RobotoA2-Roman_avar2.ttf
Variable font in avar2 format. Blended axes are created by defining mappings from parametric axes to extrema input values.
RobotoA2-Roman_avar2_fences.ttf
Attempt to build an avar2 font with “fences” to restrict the limits of parametric values at blended extrema locations. ⚠️ The added fences work at the default location, but not at the blended extrema.*

* see Implementing fences

LGC Alpha

LGCAlpha
├── RobotoA2-avar2-VF.ttf
└── RobotoA2-avar2-fences-VF.ttf
RobotoA2-avar2.ttf
Variable font in avar2 format. Blended axes are created by defining mappings from parametric axes to extrema input values, **with fencing mappings**
RobotoA2-avar2-no-fences.ttf
Variable font in avar2 format. Blended axes are created by defining mappings from parametric axes to extrema input values, **without fencing mappings**

Source folder

Just like the Fonts folder, the Sources folder contains subfolders which correspond to different stages of the project:

Source
├── TechAlpha/
└── Parametric-avar2/
TechAlpha
Sources in the TechAlpha folder were derived from the original RobotoFlexavar1 parametric sources. A measurements file in JSON format is included, as well as the original extrema sources in a subfolder. With the exception of the `extrema` sources and the measurements file (which are used in the initial blends calculation, see below), all other files are no longer useful and can probably be archived in a branch.
Parametric-avar2
Sources in the Parametric-avar2 folder were recreated from a revised default. These are the current WIP files.
tools
This folder collects various small scripts which were used during development of TechAlpha and/or Parametric-avar2 sources. Most of them are no longer needed. The most relevant ones are listed below.

Parametric-avar2

Folder containing source files, designspace, and features.

Roman
├── *.ufo
├── measurements.json
├── blends.json
├── fences.json
├── features
│   └── *.fea
├── instances
│   ├── RobotoA2-opsz8.ufo
│   ├── RobotoA2-opsz144.ufo
│   ├── RobotoA2-wdth25.ufo
│   ├── RobotoA2-wdth151.ufo
│   ├── RobotoA2-wght200.ufo
│   └── RobotoA2-wght800.ufo
├── RobotoA2-avar2.designspace
└── RobotoA2-avar2-no-fences.designspace
*.ufo
Font sources in UFO format, with files named according to their variation parameters.
measurements.json
Standalone JSON file containing definitions for various font- and glyph-level measurements. Created using the Measurements tool from the VariableValues extension. See Measurements format for documentation of the data format.
blends.json
Standalone JSON file containing definitions of blended axes and blended sources from parametric axes. This data is used to build the avar2 designspace.
fences.json
Standalone JSON file containing definitions of min/max fence values for parametric values at blended sources. This data is used to add mappings for fences to the avar2 designspace (experimental).
features
Subfolder with files containing OpenType code which can be linked to the source fonts. Currently not used when building the variable fonts.
instances
Subfolder containing instances generated from the parametric sources, which are used to add blended axes to the avar1 designspace. Also useful for comparison with the original RobotoFlex var1 sources for blended extrema.
RobotoA2-avar2.designspace
Designspace for building avar2 variable font. Includes avar2 mappings which define blended sources from parametric values.
RobotoA2-avar2-no-fences.designspace
Designspace for building avar2 variable font. Does not includes avar2 fencing mappings, so we can see the parametric axes’ full range
Scratch folder
Parametric axis from RobotoFlex public version.

* All variable fonts are built into the Fonts/LGCAlpha folder.

Tools folder

A selection of production scripts which are worth mentioning:

glyphConstruction folder
Contains all the glyphconstruction recipes by script
copyGlyphsToSources.py
Copy base glyphs from the default to the parametric sources.
fixGlyphs.py
Used make miscellaneous fixes needed glyphs on all the defined sources.
getRecipe.py
Used to get the current glyph construction recipes, without anchors.
mark-components.py
Mark glyphs in the current font containing components with different colors depending on their components' nesting level.

The designspace and variable font builder

The different Variable Fonts are built by a single build-RobotoAvar2.sh shell script.

First make virtualenv.

virtualenv tools/robotoflexA2-env

Then install dependencies.

source tools/robotoflexA2-env/bin/activate
pip install -r requirements.txt
deactivate

Finally build Variable Fonts.

sh source/Parametric-avar2/build-RobotoAvar2.sh