Build a variable TTF
Upload two or more static TTF masters from the same family. The converter detects a filename, weight values, and an italic axis when the font data provides them. Review the suggested design space, then edit it when your family uses different coordinates.
Your font files are processed locally in your browser and are never uploaded.
Add two or more static .ttf masters
Choose files from the same family. They stay on your device.
Native Rust/WASM engine
The converter runs entirely in your browser with a native Rust/WASM engine. It checks the masters before writing an output and keeps your font files on your device.
Before you build
Use masters that belong to one design family and share the same glyph set, glyph order, and units per em. One master must sit at the default value for every axis—usually the regular face at wght 400.
Use an italic axis only when the upright and italic files are intended to interpolate together. An upright family and a separate italic family often need separate variable fonts instead.
Preview and download
After building, enter sample text and move the axis sliders to inspect the generated font before downloading it. The preview uses the generated TTF, so it is a quick way to spot a bad transition before you use the file.
For a website, convert the downloaded variable TTF to a smaller webfont with the variable font TTF to WOFF2 converter.
Outline differences
Static files can look like one family while their glyph outlines cannot safely interpolate. The native engine can repair safe differences such as shifted start points, reordered contours, and some changed contour structures. When a transition cannot be made reliably, it keeps that glyph at the default outline instead of writing a distorted interpolation.
The generated font keeps the default master's character map, names, layout features, and compatible font data.
Optional glyph rules
Most files need no manual repair. For an intentional $ or ¢ design with open bar stubs, add an Open bar rule and name the target glyph plus its bare-letter donor ($ and S, or ¢ and c). You can also freeze a named glyph at the default outline. Rules accept a production glyph name, one character, or a Unicode selector such as U+0024.