ColrPak

A desktop color font editor for COLRv0 and COLRv1 fonts


Project maintained by mitradranirban Hosted on GitHub Pages — Theme by mattgraham

Colr Pak

Color Pak Icon

A standalone desktop font editor for authoring COLRv0 and COLRv1 color fonts — built on Fontra with first-class color support.

Documentation: New Project · Color Palettes · V0 layers · ColrV0 Variable Font ·

Troubleshooting: MacOS Installation · Windows Installation

[!NOTE] ColrPak documentation is a work in progress. —


What is Colr Pak?

Colr Pak is a cross-platform desktop application for designing and editing color fonts. It is a fork of Fontra Pak, extended with dedicated tooling for COLRv0 and COLRv1 color font authoring — including a visual paint graph editor, palette management, and gradient handles directly on the canvas.

Your fonts stay entirely on your computer and are never uploaded anywhere.

colrpak screenshot

Key Features


Supported File Formats

Format Read Write ColorV0 ColorV1
.fontra -
.ufo -
.designspace -
.rcjk - -
.glyphs / .glyphspackage ✅ (partial) - -
.ttf
.otf -
.woff - -
.woff2
.ttx - -

Installation

Download the latest release for your platform from the Releases page

Read Installation instruction before installing

No installation of Python or any other dependency is required — Color Pak ships as a self-contained binary.


Building from Source

Prerequisites

Steps

# 1. Clone this repository
git clone https://github.com/mitradranirban/colr-pak
cd colr-pak

# 2. Create and activate a virtual environment
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

# 3. Install dependencies (pulls color-support forks of fontra and fontra-compile)
pip install -r requirements.txt

# 4. Build the binary
pyinstaller ColrPak.spec

The output binary will be placed in dist/Color Pak/ (macOS/Windows) or dist/colorpak (Linux).


Architecture & Color Support

Color Pak is powered by two forked packages on the fontra-color-support branch:

Package Fork
fontra mitradranirban/fontra@fontra-color-support
fontra-compile mitradranirban/fontra-compile@fontra-color-support

COLRv1 Data Model

COLRv1 paint data is stored in each glyph layer’s customData under the key colorv1, as a JSON paint graph tree. This format is intended to be authored exclusively through Color Pak’s visual paint graph editor — direct hand-editing of the JSON is not recommended, as the structure is tightly coupled to the editor’s internal representation.

For variable color fonts, the colorv1 paint graph is stored per variation layer (e.g., a layer named COLOR=100 for a COLOR axis at value 100). Each variation layer carries its own full paint graph with the axis-specific parameter values (gradient coordinates, transform values, alpha, etc.). At compile time, fontra-compile reads the colorv1 blocks across all variation layers and synthesizes a masterless variation — meaning color parameters vary independently along design axes without requiring separate outline masters. The compiled font uses COLRv1’s ItemVariationStore to encode the per-parameter deltas.

This separation — variation data in named layers, masterless output from the compiler — keeps the .fontra source editable per-axis in Color Pak while producing a fully spec-compliant variable COLRv1 font on export.


Usage

  1. Open a font — drag and drop a font file onto the window, or use New Font… to start from scratch.
  2. Select a glyph — click into any glyph in the font overview.
  3. Open the Color Layers panel — use the panel sidebar to add COLRv0 color layers or build a COLRv1 paint graph.
  4. Edit paint nodes — adjust parameters (palette index, gradient coordinates, transform values) directly in the panel form.
  5. Preview — the canvas renders your COLRv1 paint in real time using the active palette.
  6. Export — use File > Export As… to compile to .ttf or .otf, or save to any supported source format.

Relationship to Fontra

Color Pak is a downstream fork of Fontra Pak and Fontra. All core editing functionality is inherited from the upstream Fontra project. Color Pak adds the COLRv1/COLRv0 authoring layer on top and will periodically merge upstream improvements.

Contributions to the upstream project that are not color-specific should ideally be made there first.


License

Color Pak inherits the GPL3 license of the Fontra project. See LICENSE for details.

Original Fontra © Google LLC, Just van Rossum. Color Pak extensions 🄯 contributors of this fork.