FontParts

github.com ↗

An environment-neutral Python API for font-development objects.

SI Score
75/100
Pricing
Open Source AI reading, not confirmed
Free plan
Yes AI reading, not confirmed
Sign-up required
Not required AI reading, not confirmed

Ask SI about FontParts

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the FontParts homepage

What it does

FontParts provides Python objects for creating and editing fonts during type development. Its shared interface works across supported editors, with an included implementation for scripts that run outside an editor.

A script using FontParts needs an implementation beneath its common interface. The included fontshell supplies command-line access through defcon, while editor integrations provide their own environment objects. This lets a foundry reuse much of its repetitive font-development logic between tools.

Install the package with pip install fontParts in Python 3.10 or later. The Getting Started example imports OpenFont from fontParts.world, opens a UFO font source, and adds ten units to both sidebearings of every glyph. That is a concrete starting point for a spacing script.

Host behavior still matters. FontParts supplies shared tests, but each editor environment needs its own test setup. It replaces RoboFab without preserving every part of that older interface, and some converted examples remain unfinished. The MIT licence permits free use and modification, including in commercial work.

Strengths

  • A shared API supports scripts across multiple font-development environments.
  • The included fontshell works from the command line without a font editor.

Watch out for

  • RoboFab scripts are not all compatible, and some converted examples need further work.
  • Editor integrations need checks in their own host environment.

Best for

  • Type designers writing reusable Python scripts

Sources