AI agents: fetch the documentation index at llms.txt. Markdown versions are available by appending .md to any page URL, including this page's markdown.
Quickstart
Go from separate weights to one variable font.
Quickstart
1. Point it at your fonts
Go to a folder with your font files and run:
static-to-variable initIt finds your fonts, reads their weights, and writes an stv.config.json for you. Confirm the list and name the family. In a non-interactive shell (CI, agents) it writes a starter template to edit instead.
2. Build
static-to-variable buildYour variable font lands in build/. When you're happy with it, write the final TTF and WOFF2:
static-to-variable releaseGoing the other way
Already have a variable font and want the individual weights? split runs it in reverse: one static TTF + WOFF2 per weight, in static/.
static-to-variable split MyFamily-VF.ttfIf anything complains
Run the environment check. It verifies Node, Python, uv, and your config, then tells you what to fix.
static-to-variable doctor