static-to-variable
v0.1.1
Published
Convert a family of static fonts into a single variable font, guided by a config and an audited pipeline.
Maintainers
Readme
static-to-variable
Convert a family of static fonts into a single variable font, guided by an stv.config.json. The CLI rebuilds interpolation-compatible masters, normalizes them, builds the variable font with fontmake, checks per-weight fidelity, and finalizes the OpenType metadata — orchestrating a Python engine (fontTools / glyphsLib / fontmake).
Runs inside a
static-to-variablecheckout, where it locates the engine and the uv-managed Python environment. See the repository README for setup.
Commands
static-to-variable init # scaffold ./stv.config.json
static-to-variable build --config stv.config.json # rebuild -> normalize -> build
static-to-variable release --config stv.config.json # finalize + WOFF2
static-to-variable doctor # environment readiness
static-to-variable --version
static-to-variable --help| Command | Purpose |
| --- | --- |
| init | Scaffold a starter stv.config.json. |
| build | Rebuild masters, normalize, and build the variable font(s). |
| release | Finalize metadata and emit release TTF + WOFF2. |
| doctor | Report environment readiness (node, python, uv, config). |
| list / run / step / status | Advanced QA pipeline: inventory, compatibility, repair, audit, and a promotion-gate report. |
Conventions
--jsonprints machine-readable output to stdout; progress goes to stderr.- Exit codes:
0success,1failure,2usage error,3environment error. - Errors carry a stable
STV_*code and a suggested fix;NO_COLORis respected.
Configuration
Everything font-specific lives in stv.config.json (schema v3): family metadata, axes and named instances, per-style donors and masters, vertical metrics, per-glyph repair strategies, and output paths. See schemas/stv-config.schema.json and the examples/glide/ worked example.
