Font Subset Builder
Upload a local TTF or OTF that you are allowed to modify and redistribute. This tool normalizes entered text to NFC, checks the font's Unicode mapping, then uses HarfBuzz to rebuild its glyph and layout tables. It encodes the result as WOFF2 and packages a font fallback, @font-face CSS, license review note and JSON size/coverage report. Missing characters and restrictive embedding flags stop the build so a broken package is not saved silently.
Key features
- Build real TTF/OTF and WOFF2 subsets with HarfBuzz
- Normalize decomposed Hangul to composed NFC syllables and report coverage
- Preserve all layout features, keep HarfBuzz defaults with optional extras, or remove layout tables
- Check missing glyphs and OS/2 embedding restriction flags
- Download ZIP with fonts, @font-face CSS and a detailed JSON report
How to use
- Choose a licensed local TTF or OTF file no larger than 10 MiB.
- Enter representative characters and choose a layout mode; add optional features in standard mode.
- Review missing glyphs, the embedded license note and OS/2 embedding flags.
- Confirm that your license allows modification and web redistribution, then build the subset.
- Preview the result and download the ZIP; test it in your target browser and site.
Use cases
- Prepare a compact heading font for a page with a fixed character set
- Keep Korean syllables actually used in a small web interface
- Preserve ligatures and kerning while reducing a licensed display font
- Audit exactly which characters and bytes were retained in a webfont package
Frequently asked questions
Can I use any font found on my computer?
No. A local font file is not proof of web redistribution rights. Review its license and obtain permission to modify, subset and serve it as a webfont. The tool blocks restrictive OS/2 flags but cannot decide the complete legal terms.
What happens to decomposed Korean Jamo?
Entered text is normalized to Unicode NFC. A standard decomposed Hangul syllable becomes its composed code point before coverage checks and subsetting. If the chosen font lacks that code point, it appears as missing and export is blocked.
Will fi ligatures and kerning survive?
The default mode retains all layout features, including ligatures and kerning when the font contains them. Standard mode retains HarfBuzz defaults and can add optional features. No-layout mode removes GSUB and GPOS, so ligatures and positioning may change. Test the downloaded font in your target browser.
Why is a character reported missing?
The font's selected Unicode cmap has no nonzero glyph mapping for it. Choose a font containing that code point or remove the character from the requested set before building.
Does a smaller font always result?
No. Small input fonts and table overhead can make a subset larger. Compare source, subset SFNT and WOFF2 sizes in the report. The ZIP contains both the rebuilt SFNT and compressed WOFF2.
Can this process WOFF2 input or a font collection?
No. Input is a single SFNT TTF or OTF, at most 10 MiB. WOFF/WOFF2, TTC/OTC and unsupported cmap formats are outside this version.
Privacy
Your font and entered text stay in this browser. A local Web Worker processes the file; no font bytes or text are sent to this site's API. The engine binaries are loaded from this site's own static assets.
Comments & questions