Font preview tool

Stage copy on a dark specimen board, tune metrics, then flip into a three-column compare lane. Everything runs locally in your browser: search the short library, load Google stylesheets on demand, copy CSS, or grab a PNG when you need a static receipt.

Pick a typeface
Select a font from the library

22 px
1.45
0 px

Your phone lies about type (on purpose)

System rasterizers hint differently than desktop design apps. A face you love inside Figma often feels heavier, tighter, or oddly tall once social crops and mobile subpixels enter the room.

This page exists so you rehearse strings in a browser instead of trusting static mockups alone. You paste the caption you argued about in Slack, bump weight, watch tracking, then decide whether the brand font survives a dark-mode screenshot.

Inside the lane: what actually runs here

Pick a row in the library. System families resolve immediately from the OS stack. Google families trigger a stylesheet fetch the first time you touch them, so the first paint might lag a beat on slow networks.

Single mode drives the large specimen plus the four lighter cards below (display, subhead, body, micro). Compare mode keeps your global metrics but routes the same paragraph through three parallel columns until you fill each slot.

PNG export rasterizes with the HTML canvas. Complex scripts, color fonts, or OpenType features your OS ignores will not magically appear. Treat exports as quick share artifacts, not print proofs.

Privacy. Text you type stays in this tab. We do not upload sentences to a server. Google font requests go straight from your browser to Google’s CDN when you select those rows.

Where teams use this before shipping

ScenarioInputOutcome
Social caption QAFinal Instagram line + emojiCheck legibility at 375px width before you paste into the Instagram post generator.
Link card rehearsalTitle case headlineMatch typographic tone with blurbs from the meta description generator so SERP snippets feel coherent.
Campaign week planningThree headline variantsCompare weights side by side, then slot winners into the content calendar generator.
Share image handoffShort hero copyExport a PNG stub for designers while OG tags get drafted in the Open Graph meta generator.

Stop expecting miracles from the short list

The catalog here is intentionally small: common system faces plus a curated slice of Google Fonts. You will not browse the entire library, enable variable axes, or preview local WOFF files you dropped on disk.

Subsetting, licensing, and performance budgets still belong to your build pipeline. We recommend pairing subjective taste checks here with hard metrics from your staging environment once real CSS lands.

Random pair: when the dice help

Pairing is subjective, yet teams stall because infinite choice feels safer than committing. The random pair button does not replace art direction; it hands you a contrasting heading and body suggestion you would not have typed yourself, then you accept, reject, or tweak inside compare mode.

Most pairs skew toward a serif display plus a neutral sans body, or the inverse. If a suggestion feels off-brand, treat the output as a reminder to document why your stack differs, not as an order to redesign the site.

Terms worth five seconds each

Tracking
Letter spacing measured in pixels here. Positive values open headlines; negative values tighten logos but punish long paragraphs.
Line height
Unitless multiplier in CSS. Social captions often survive 1.35–1.55; long articles want more air unless you intentionally chase density.
Synthetic bold
What the browser fakes when you request a weight the font file never shipped. It looks smeared on small screens, which is why compare mode at phone width matters.

Judgment call

For brand-critical launches, proof on target devices with the same font files you intend to serve. This lab accelerates early decisions; production validation still wins when budgets exceed a single afternoon.

Font lab: quick answers

Specimens, compare mode, and exports without marketing fluff.

Why does my Google font flash or load late the first time?

The tool injects Google’s stylesheet when you first select a family. Until the file finishes downloading, the browser may show a fallback. Scroll the list again after a second if the sample looked wrong.

How do I compare more than one font?

Switch the stage to Compare, then tap up to three rows in the library. Each tap pushes the oldest slot out once you pass three picks. Metrics sliders apply to every column at once.

Does PNG export embed the real web font?

Canvas text uses whatever font name the browser resolved. If the face failed to load, the PNG shows the fallback. Always eyeball the specimen board before exporting.

Is confidential client copy safe to paste?

Nothing leaves your machine through Toolexe while you type. Google fonts still request files from Google when you select those rows, so air-gapped workflows should stick to system families only.

Why do weights above 600 look identical on some fonts?

Many families ship a limited set of masters. If a weight file does not exist, the browser synthesizes a faux bold that looks muddy. Swap to a variable font upstream when you need fine steps.