> ## Documentation Index
> [HTML page](https://static-to-variable.blode.md/)
> [Documentation index](https://static-to-variable.blode.md/llms.txt)
> Use the index to discover all available pages before exploring further.

# Overview

Turn separate font weight files into one variable font.

# static-to-variable

Got a font as thin, regular, and bold files? Point this at them and get back one file you can slide between.

You can't just merge the files, because each weight is drawn separately and nothing lines up. static-to-variable redraws them onto one shared structure so they blend, checks every letter, and skips anything it can't convert cleanly instead of breaking it.

## See what it produces

[blode.co/static-to-variable](https://blode.co/static-to-variable) has variable fonts built from Google Fonts families that never shipped one, so you can slide through the weights before installing anything.

## Install

```bash
npm install -g static-to-variable
```

Needs [Node](https://nodejs.org/en) 24.11+, [Python](https://www.python.org) 3.11+, and [uv](https://docs.astral.sh/uv/). The font engine sets itself up the first time you build.

## Next steps

- [Quickstart](quickstart) — go from separate weights to one variable font.
- [CLI reference](cli-reference) — every command, flag, and exit code.