Google Fonts Guide

google/fonts repository explained

πŸ¦‰ google/fonts is the GitHub repository that is used as a staging area to upload font families to Google Fonts. The first step to contributing your font to Google Fonts is to submit your contribution as a Pull Request to google/fonts. This section will help users understand which are the directories, files, and python modules included in the Google/Fonts repository and how they are related.

Table of contents

google/fonts repository explained

Repository structure

.
β”œβ”€β”€ AUTHORS
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ CONTRIBUTING.md
β”œβ”€β”€ CONTRIBUTORS
β”œβ”€β”€ README.md
β”œβ”€β”€ TRIVIA.md
β”œβ”€β”€ apache
β”œβ”€β”€ axisregistry
β”œβ”€β”€ catalog
β”œβ”€β”€ knowledge
β”œβ”€β”€ lang
β”œβ”€β”€ ofl
β”œβ”€β”€ ufl
β”œβ”€β”€ to_production.txt
└── to_sandbox.txt

Family directories

TheΒ ofl,Β uflΒ andΒ apacheΒ directories contain font families. There is a directory per family published by GF and each directory has the following structure:

.
β”œβ”€β”€ DESCRIPTION.en_us.html
β”œβ”€β”€ METADATA.pb
β”œβ”€β”€ License (OFL.txt, UFL.txt, License.txt)
β”œβ”€β”€ FontFamily-Regular.ttf
└── upstream.yaml

Each file has the following purpose:

If the family is a variable font family, another directory called static can be included to contain the static (non-variable) fonts for the family:

.
β”œβ”€β”€ DESCRIPTION.en_us.html
β”œβ”€β”€ METADATA.pb
β”œβ”€β”€ License (OFL.txt, UFL.txt, License.txt)
β”œβ”€β”€ FontFamily[axis].ttf
β”œβ”€β”€ static
β”‚   β”œβ”€β”€ FontFamily-Regular.ttf
β”‚       └── FontFamily-Bold.ttf
└── upstream.yaml

This static directory is mandatoryΒ if the static fonts are manually hinted; otherwise, it should not be added at all.

Designers catalog

.
β”œβ”€β”€ info.pb
β”œβ”€β”€ bio.html
└── image.png

Each credited entity on Google Fonts should have a registered profile in google/fonts/catalog/designers. This profile appears in the about section of the specimen page.

You can request the addition or modification of your name, bio, and image using this form.

Find more information about the requirements for these files in the designer profile chapter.

Axis registry

Google Fonts supports all theΒ Microsoft registered axes for variable fonts, but it has its own Axis Registry, which defines the names and ranges of additional axes supported by the API. This registry is used to generate the static instances of each variable family (which you can find in the downloadable zip file); the API will generate only those locations registered in the registry.

Lang directory

This python module provides the API with data about languages/regions/scripts for use in the language-support categorization of the font families in the Google Fonts collection.

As with the axis registry, the Lang directory also has its own repository, and all issues related to language data should be opened there.

Push lists