Font viewer: preview TTF, OTF and WOFF fonts without installing them
Drop a font file to read what is inside it: the family and style names, version, designer, the copyright and licence text the font carries, what its embedding permission allows, how many glyphs it has and which Unicode ranges it covers. Every glyph is drawn from its outline, and you can type your own text in the font at six sizes. The font is parsed by opentype.js 2.0.0 and drawn by your browser, inside this tab.
The font is opened on your device. It is never uploaded or installed.
What it shows
- Names and metadata from the font's
nametable: family, style, full and PostScript names, version, designer and manufacturer, and the copyright, trademark and licence text exactly as written in the file. - Embedding permission from the OS/2
fsTypefield: whether the font may be installed, only embedded for preview and print (for example in a PDF), or is restricted. It is what the font says about itself, not legal advice; the licence text is what binds you. - Glyph count and units per em, the outline type (TrueType quadratic curves or CFF PostScript curves), and a variable font's axes with their ranges.
- Unicode coverage, counted from the characters the font actually maps, grouped by block: “Latin-1 Supplement: 96 of 128” tells you at once whether é, ß and ø are there, and “Cyrillic” or “Greek” show up only if the font really has them.
- Every glyph, drawn from its outline in the order the font stores them, 200 to a page so fonts with thousands of glyphs stay fast. This includes glyphs no key produces, such as ligatures, small caps and alternates. Click one to enlarge it with its name, code point and advance width.
- Your own text at 12, 16, 24, 36, 48 and 72 px, set by your browser's text engine from the file in memory. Characters the font lacks are listed, since the browser silently draws them in a fallback font.
What it cannot open
- WOFF2 in full. WOFF2 compresses the tables with Brotli and re-encodes the glyph data, and opentype.js cannot unpack it; no permissively licensed WOFF2 decoder is bundled here. A WOFF2 file still opens with the type-your-own-text preview, because your browser decodes WOFF2 itself, and the page says that names, metadata and the glyph grid need the TTF, OTF or WOFF version of the font.
- Font collections (.ttc and .otc, several fonts in one file, common for CJK system fonts) are recognised but not opened yet. Windows and macOS install them with a double-click.
- Bitmap and SVG colour glyphs. Emoji fonts that store glyphs as images (CBDT, sbix) or SVG may show blank or outline-only cells in the grid; the typed preview still shows them in colour where your browser supports that format.
- Fonts your browser refuses. Browsers run every font through a strict safety check (the OpenType Sanitizer). A font that fails it still shows its metadata and glyphs here, and the page tells you the text preview was refused.
- Old Mac fonts: suitcase files and PostScript Type 1 fonts (.pfb, .pfm, .lwfn) are not OpenType and cannot be read.
- Hinting and OpenType features are not shown in the glyph grid, which draws raw outlines. The typed preview does apply kerning and default ligatures.
Useful to know about font files
- TTF or OTF?
- The extension does not decide it. A file starting with the bytes
00 01 00 00has TrueType outlines; one starting withOTTOhas CFF (PostScript) outlines. Some .otf files are TrueType inside, and viewhack names what the bytes say. Both install and work the same way on Windows, macOS and Linux. - WOFF and WOFF2
- These are web packagings of the same font data: WOFF compresses each table with zlib, WOFF2 with Brotli, on average about 30% smaller than WOFF. Browsers load them via CSS
@font-face; desktop apps need the TTF or OTF. - Checking a font before you use it
- Look at the licence text and the embedding permission first: a font marked “preview & print only” can go into a PDF but not into an editable document. Then check Unicode coverage for the languages you need. A font that stops at Basic Latin has no accented letters at all.