Home

Awesome

Source Sans Pro

Source Sans Pro is a set of OpenType fonts that have been designed to work well in user interface (UI) environments.

Getting involved

Open an issue or send a suggestion to Source Sans' designer Paul D. Hunt, for consideration.

Releases

Building the fonts from source

Requirements

To build the binary font files from source, you need to have installed the Adobe Font Development Kit for OpenType (AFDKO).

Building one font

The key to building the OTF fonts is makeotf, which is part of the AFDKO toolset. Information and usage instructions can be found by executing makeotf -h. The TTFs are generated with the otf2ttf and ttfcomponentizer tools.

Commands to build the Regular style OTF font:

$ cd Upright/Instances/Regular/
$ makeotf -r -gs -omitMacNames

Commands to generate the Regular style TTF font:

$ otf2ttf SourceSansPro-Regular.otf
$ ttfcomponentizer SourceSansPro-Regular.ttf

Building all non-variable fonts

For convenience, a shell script named build.sh is provided in the root directory. It builds all OTFs and TTFs, and can be executed by typing:

$ ./build.sh

or this on Windows:

> build.cmd

Building the variable fonts

To build the variable TTFs you must install fontmake using this command:

$ pip install fontmake

A shell script named buildVFs.sh is provided in the root directory. It generates four variable fonts (two CFF2-OTFs and two TTFs), and can be executed by typing:

$ ./buildVFs.sh

Building with make

If you want to build directly from poles instead of the instances stored in the repository, or to avoid building all files repetitively, run:

$ make

and it will get everything up to date. To generate only the font.ufo instances from the poles, run:

$ make instances

Note: because font.ufo instances are stored in the repository, you may have to delete them first from your working tree before building from poles; see below.

To clean up makeotf's defaults and other log files, run:

$ make clean

or to remove all build artefacts, including target font binaries:

$ make cleanall

Because font.ufo instances are committed into the repository, they are not removed on make clean. If that is necessary, run:

$ make cleaninstances