Font Viewer
ImagesEverything runs locally in your browser — nothing is uploaded
**Coverage is read from the font’s own cmap table**, not guessed from rendering — the answer to “which glyphs does this font contain” is written in the file. `.ttf` / `.otf` give an exact list; `.woff` / `.woff2` store their tables compressed (zlib / Brotli), which the browser cannot decompress, so those two are a rendering preview only, with no coverage. Fonts are licensed: previewing here does not make one usable commercially.
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
- Drop a font file onto the dashed area (or click it)
- Judge the sizes in the specimen, replacing the text with your own if you like
- Pick a range in the glyph grid and page through looking for icons
- 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
App Icon Generator
ImagesGenerate the full iOS AppIcon set, Android mipmaps and adaptive icons, and a macOS .icns from one image. Adjustable corners and padding, flattened for iOS.
SVG Editor
ImagesWrite SVG on the left, see it render on the right. Switch backdrops (checkerboard, light, dark) and get checks for xmlns, viewBox and external references.
CSS Colour Names
LookupsThe 148 CSS named colours: look up a value from a name, or find out whether a value has a standard name. Includes the nine same-colour pairs.
Image Converter
ImagesConvert between PNG, JPEG, WebP, AVIF, BMP and TIFF, with adjustable quality and size. JPEG output lays a background, so transparency never turns black.
Image Slicer
ImagesSlice an image into a grid for nine-tile posts or a tall image. Six grid shapes, per-tile padding, and names padded for posting in order.
Image Watermark
ImagesAdd a text watermark to a photo: nine positions plus tiling, with the size scaled to the image so it looks the same at any resolution.