Dzzz

Font subsetter

Keep only the characters you need — say Arabic and basic Latin — and drop the rest, so the font file your website loads is smaller.

Subsetting uses the full font engine, an optional one-time download (~8 MB) from this site that is kept on this device for next time. After that, your fonts are subset on this device and are never uploaded.

A font usually carries far more characters than one website needs. Subsetting keeps the ones you choose — preset sets such as Arabic, Latin basic and digits, the exact characters of your own text, or hexadecimal Unicode ranges — and removes the rest, along with any glyphs only they used. Arabic joining forms and the layout rules that connect letters stay with the letters you keep. The result can be saved as WOFF2, WOFF or a desktop font and gets a new family name, so it never clashes with the original on a computer. The tool shows the measured size before and after, lists any requested characters the font never had, and writes an @font-face rule whose unicode-range is taken from what the subset really contains. Every file is checked by your browser's own font validator before it is offered. The work uses an optional one-time engine download from this site; your fonts are never uploaded.

About this tool

What you provide

  • One font file — .ttf, .otf, .woff or .woff2, up to 30 MB (12 MB on a phone) — or several at once.
  • The characters to keep: preset sets (Arabic, Latin basic, Latin extended, digits, punctuation, currency), your own text, or hexadecimal Unicode ranges.

What you get

  • Each font cut down to those characters, as WOFF2, WOFF or a desktop .ttf/.otf, with a new family name; several fonts download as one .zip.
  • An @font-face rule per font whose unicode-range lists the characters the subset really contains, plus the measured size before and after.

Limits

  • Needs the full font engine, a one-time download (~8 MB) from this site to your browser; the app shows the website route instead.
  • Nothing is uploaded: that engine download is the only network transfer, and your fonts stay on your device.
  • Characters the font never had cannot be added; they are listed after the run.
  • Font collections (.ttc) are not supported.
  • You confirm you have the right to modify the font; the tool does not grant that right.

How to use it

  1. Choose fonts

    Tap “Choose a font file” or drop one or more .ttf, .otf, .woff or .woff2 files.

  2. Pick the characters

    Tick the sets to keep, paste your own text, or enter hexadecimal Unicode ranges. Choose WOFF2, WOFF or a desktop font.

  3. Confirm the licence and name

    Read the font's licence text, tick the box, and check the new family name.

  4. Download

    Tap “Subset”. Once your browser's font validator accepts each file, download it on its own or all of them as a .zip, and copy the @font-face CSS.

Frequently asked questions

Is my font uploaded?

No. Only the font engine is downloaded, once, from this site. Your font is subset in your browser and the new file is built there; it is not sent to a server.

How much smaller will my font get?

It depends on how many characters the font has and how many you keep. The tool measures the file before and after and shows the real difference for each font rather than promising a figure.

Does subsetting break Arabic letter joining?

The joining forms and the layout rules for the Arabic letters you keep stay in the font. If the engine's own check finds a joining problem in the result, the file is not offered.

What does "Drop hinting" do?

It removes the instructions that adjust outlines to the pixel grid. The file gets smaller, but text can look softer in older Windows programs at small sizes. It is off by default.

Why does the font get a new name?

A subset is missing characters the original has, so it gets its own family name. That way it never replaces or clashes with the full font installed on a computer.

Am I allowed to subset my font?

That depends on the font's licence, and only you can confirm it. The tool shows the licence text the font carries and asks you to confirm before subsetting — it can't grant you that right.