An open-source GUI application to create custom font design spaces from variable fonts

fonts, ttf, ttf-fonts, typeface, variable-fonts
pip install slicegui==0.7.1



An open-source application to create custom font design spaces from variable fonts


Slice is an open-source, cross-platform GUI app that generates fonts with custom design sub-spaces from variable font inputs.


Please see the Installation docs for additional details, including available package manager installation/upgrade approaches.

User documentation

User docs are available at

Axis definitions

Slice currently supports combinations of the following axis definition types in output fonts:

  • Fixed instance locations
  • Level 3 restricted axis ranges (must include original axis default value in the new, smaller axis range)[1]
  • Full, original variable axis ranges

Define your font axes with the syntax in the table below.

Axis definition Axis Editor Syntax Example
Fixed axis location Integer or float value 400.0
Restricted axis range Colon-delimited min:max integer or float range 200:700
Full axis range Leave editor row blank n/a


Please file issues on the project tracker.


Source contributions are welcome. Please see the Slice application developer documentation for instructions on how to set up a local development environment and test your source changes. Submit a pull request with any changes that you would like to share upstream.

The Slice documentation is maintained in a separate GitHub repository. Please see the Slice documentation developer docs for additional details about how to modify documentation content and set up a local testing environment.

Contributions to this project are accepted under the licenses specified in the Licenses section below.


The Slice project is licensed under the GNU General Public License version 3. Please see the LICENSE document for details.

Please see the thirdparty directory for additional details about third-party licenses.


❤️ Slice slices with the fantastic fonttools Python library.

❤️ Slice uses the wonderful Recursive (sliced with Slice!) and IBM Plex typefaces in the UI.

Slice docs are powered by Netlify (doc sources).

Deploys by Netlify

1: Default axis locations are required to compile valid variable font format files. The default axis value defined in the original font must be included in the restricted axis range due to the lack of compiler support for default axis location moves during the slicing process. We intend to support default axis location moves when it is possible to do so. This issue is being tracked on our GitHub tracker.