piapia123
en

Font Viewer

Images

Everything runs locally in your browser — nothing is uploaded

Drop a font file and look at it: the specimen lays the text out across a 12–48px size ladder for judging body copy and small print, while the glyph grid spreads code points into a table so you can see what the font actually carries. The grid earns its keep with icon fonts: lay out the Private Use Area (U+E000–F8FF), see which cells hold a glyph and which are dimmed, and click one to copy its HTML entity — a design file gives an icon no name, only a `U+E600`, and this table is how you match it up. There is no API for coverage (browsers offer no way to query a font’s character set), so this uses the only reliable method: draw everything twice — once with this font, once with a system font — and treat identical results as the fallback being used, i.e. the glyph is missing. Its known blind spot is blank code points: a space renders nothing either way, so “present but blank” and “absent” cannot be told apart, and those cells are labelled “blank”. ⚠️ One thing that has to be said: fonts are licensed, and previewing one here does not make it usable commercially. Many free fonts are personal-use only. Also, browsers cannot read a font’s internal family name (no such API), so the name shown comes from the file name.

Features

  • Drop a .ttf / .otf / .woff / .woff2 to preview it; the file is never uploaded
  • Specimen across seven sizes from 12 to 48px, with your own text
  • Language-appropriate default samples (Chinese, English or Japanese)
  • Glyph grid over five ranges: Private Use Area (icon fonts), ASCII, Latin-1, punctuation, CJK
  • Measured coverage: present glyphs render normally, missing ones are dimmed, blank ones get a dashed frame
  • 256 cells per page with paging; the Private Use Area runs to 25 pages
  • Click a cell to copy its decimal entity (``); hover for hex and the CSS escape
  • Per-page counts: how many have a glyph, how many are missing, how many are blank

How to use

  1. Drop a font file onto the dashed area (or click it)
  2. Judge the sizes in the specimen, replacing the text with your own if you like
  3. Pick a range in the glyph grid and page through looking for icons
  4. Click a cell to copy its code point, ready to paste into your HTML

FAQ

How is “missing glyph” decided?
By reading the font’s own cmap table — the mapping from code points to glyphs, which is the authoritative answer, and one that `.ttf` / `.otf` give exactly. ⚠️ Worth recording the detour: this tool first tried two ways of guessing (compare against a system font; compare against the rendering of a code point no font contains), and both failed on Windows. The first was fooled by the shape of the font’s own `.notdef` box (every missing code point read as present); the second by system fonts that ship Private Use Area glyphs of their own (Segoe draws real icons, just not this font’s). The root cause is that a browser never tells you which font a glyph came from, and its fallback chain is not stable — so it cannot be guessed, only read.
Why is there no coverage for .woff / .woff2?
Because both formats store each table compressed (zlib for woff, Brotli for woff2) and must be decompressed before use — and while browsers do have `DecompressionStream`, it only understands gzip and deflate, not Brotli. So for those two the grid is a rendering preview with no present/missing marks, and the page says why: a guessed answer would be worse than none. For an exact glyph list, use the `.ttf` or `.otf` build of the same font, which is almost always available.
Why is the name shown the file name rather than the real font name?
Because browsers cannot read a font’s internal family name — `FontFace` takes the name you give it, with no reverse lookup. Reading the `name` table would mean parsing the binary yourself (and woff2 is compressed, so it needs inflating first), which is a different tool. What this page shows is the file name and the rendering; to confirm the real name, installing the font and opening your system font viewer is the direct route.
Why can .ttc and .eot not be loaded?
Browsers support neither. A `.ttc` is a font collection (several fonts in one file, common on macOS) and the browser has no way to pick one out — extract a single font first. `.eot` is an IE-era private format only old IE understands. The tool refuses both up front with the reason, rather than leaving you staring at an interface where nothing happens.

Related tools