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 · ColrV1 Visual Paint · Named Palettes · Colr V1 masterless variable · Animated Emoji by Paint Transform· Convert Existing Colr v0 Font
Troubleshooting: MacOS Installation · Windows Installation
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.
| Linux | Linux | Microsoft Windows | Mac Os | |||
|---|---|---|---|---|---|---|
| (x86_64) | (arm64) | (10 and 11) | (Apple Silicon M1/M2/M3/M4 and Intel) | |||
Readymade app{.tar.gz} |
Readymade app{.tar.gz} |
Portable App | App, zipped | |||
| snap | snap | Setup installer | Homebrew | |||
| Flatpak | Flatpak | msi installer | - |
Read Installation instruction before installing
No installation of Python or any other dependency is required — Color Pak ships as a self-contained binary.
- COLRv1 Paint Graph Editor — visually compose
PaintSolid,PaintLinearGradient,PaintRadialGradient,PaintSweepGradient,PaintGlyph,PaintTranslate,PaintScale,PaintRotate,PaintSkew, andPaintTransformnodes per glyph. - COLRv0 Layer Mapping — manage color layer stacks with palette index assignments for simpler color fonts.
- One-click COLRv0 → COLRv1 Upgrade — automatically convert an existing v0 layer mapping into an equivalent COLRv1
PaintColrLayersstructure. - Masterless COLRv1 Variation — author variable color parameters (gradient stops, transform values, alpha) as independent per-axis keyframes, without requiring separate outline masters.
- Live Canvas Rendering — see COLRv1 paint effects rendered in real time on the glyph canvas as you edit.
- Palette Management — define and switch between multiple color palettes; the active palette is reflected immediately in the canvas preview.
- Full Fontra Editing Core — all standard Fontra editing features (glyph drawing, variable font axes, anchors, components, etc.) are included.
| Format | Read | Write | ColorV0 | ColorV1 |
|---|---|---|---|---|
.fontra |
✅ | ✅ | - | ✅ |
.ufo |
✅ | ✅ | ✅ | - |
.designspace |
✅ | ✅ | ✅ | - |
.rcjk |
✅ | ✅ | - | - |
.glyphs / .glyphspackage |
✅ | ✅ (partial) | - | - |
.ttf |
✅ | ✅ | ✅ | ✅ |
.otf |
✅ | ✅ | ✅ | - |
.woff |
✅ | — | - | - |
.woff2 |
✅ | ✅ | ✅ | ✅ |
.ttx |
✅ | — | - | - |
- Python 3.11+
make(GNU Make)- Note: Virtual environment creation,
pipupdates, andPyInstallerare handled automatically by the Makefile.
# 1. Clone this repository
git clone https://github.com/mitradranirban/colr-pak
cd colr-pak
# 2. Build the application
makeThe default make command (which runs make build) will automatically:
- Create a virtual environment (
venv) if it doesn't already exist. - Install and upgrade dependencies from
requirements.txt(pulling the color-support forks of fontra and fontra-compile). - Build the binary using the
ColrPak.specfile.
The output binary will be placed in dist/Color Pak/ (macOS/Windows) or dist/colorpak (Linux).
You can also use the following commands to manage your build environment:
make clean # Removes the build, dist, and __pycache__ directories
make rebuild # Cleans the environment and builds the binary again
make help # Lists all available Make targets and variables(Note for Windows users: Ensure you have a make utility installed via MSYS2, MinGW, Chocolatey, or run the commands within WSL or a compatible bash environment, as the Makefile uses Windows-specific paths internally when detected).
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 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.
- Open a font — drag and drop a font file onto the window, or use
New Font…to start from scratch. - Select a glyph — click into any glyph in the font overview.
- Open the Color Layers panel — use the panel sidebar to add COLRv0 color layers or build a COLRv1 paint graph.
- Edit paint nodes — adjust parameters (palette index, gradient coordinates, transform values) directly in the panel form.
- Preview — the canvas renders your COLRv1 paint in real time using the active palette.
- Export — use
File > Export As…to compile to.ttfor.otf, or save to any supported source format.
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.
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.