Skip to main content

CI Build Status PyPI

Google Fonts Tools

This project contains tools used for working with the Google Fonts collection, plus Google Fonts Glyph Set Documentation in the /encodings subdirectory. While these tools are primarily intended for contributors to the Google Fonts project, anyone who works with fonts could find them useful.

Additional documentation in /docs

The tools and files under this directory are available under the Apache License v2.0, for details see LICENSE

Google Fonts Official Glyph Sets

The glyph sets useful for type designers that were previously hosted in this repository have been moved to:

https://github.com/googlefonts/glyphsets/tree/main/GF_glyphsets

Tool Usage Examples

Compare fonts:

gftools compare-font font1.ttf font2.ttf

Add a METADATA.pb to a family directory

gftools add-font ../ofl/newfamily

Sanity check a family directory:

gftools sanity-check --repair_script=/tmp/fix.py ../ofl/josefinsans
gftools sanity-check --repair_script=/tmp/fix.py --fix_type=fsSelection ../ufl

Check a font family against the same family hosted on Google Fonts:

gftools qa [fonts.ttf] -gfb -a -o qa

Check a variable font family against the same family as static fonts:

gftools qa -f [vf_fonts] -fb [static_fonts] --diffenator --diffbrowsers -o ~/path/out

Fix a non hinted font

gftools fix-nonhinting font_in.ttf font_out.ttf

Package and PR a family update to google/fonts. Find much more detailed documentation in /docs/gftools-packager.

gftools packager "Family Sans" path/to/local/google/fonts -py

Tool Installation

Please note that gftools requires Python 3.7 or later.

Please install these tools using pip:

pip install gftools

If you would like to use gftools qa:

brew install pkg-config # needed for interpolation checks
pip install 'gftools[qa]'

Tool Requirements and Dependencies

gftools packager needs the command line git program in a version >= Git 2.5 (Q2 2015) in order to perform a shallow clone (--depth 1) of the font upstream repository and branch. This is not supported by pygit2/libgit2 yet.

gftools manage-traffic-jam requires two private files which contain sensitive data. Ask m4rc1e for them.

Google Fonts API Key

In order to use the scripts gftools qa and gftools family-html-snippet, you will need to generate a Google Fonts api key, https://developers.google.com/fonts/. You will then need to create a new text file located on your system at ~/.gf-api-key (where ~ is your home directory), which contains the following:

[Credentials]
key = your-newly-generated-googlefonts-api-key

Upstream project repos

Developers

Releasing a New Version

  1. Commit and push your final changes for the new version.
  2. Create an annotated Git tag of the version number, with a prepended "v", like so: git tag -a v3.1.1
  3. Write the release notes into the tag message. They will show up as release notes on the release page in GitHub.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gftools-0.9.998.tar.gz (8.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gftools-0.9.998-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file gftools-0.9.998.tar.gz.

File metadata

  • Download URL: gftools-0.9.998.tar.gz
  • Upload date:
  • Size: 8.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gftools-0.9.998.tar.gz
Algorithm Hash digest
SHA256 d8f47b2a114a29b408b1c27adbf6e1cb25d1179b6f931bc41c701d396be52535
MD5 d6cb71abc4029d4c76a0a552f4e56ec3
BLAKE2b-256 cdce657b07b24a66c4fcf16eed1a26bf18f9baf72e555bb8a1fe9efc16c3ee25

See more details on using hashes here.

Provenance

The following attestation bundles were made for gftools-0.9.998.tar.gz:

Publisher: publish-release.yml on googlefonts/gftools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gftools-0.9.998-py3-none-any.whl.

File metadata

  • Download URL: gftools-0.9.998-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gftools-0.9.998-py3-none-any.whl
Algorithm Hash digest
SHA256 1f4f0ea3777340e73b14608ada453916396043c0bfbd719222aff6cf37f07daa
MD5 4412dcad123ede59b0edc5739178d98f
BLAKE2b-256 a424639f3b3df55b9f534b106127a542e1c0c80403d0d60593d950d889c307fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for gftools-0.9.998-py3-none-any.whl:

Publisher: publish-release.yml on googlefonts/gftools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page