report / 133 sites
The Invisible UI, by the numbers
We tore down the design systems of 133 top sites into real tokens: color roles, fonts, type scale, radii, spacing. AI-built UI isn’t ugly. It’s identical. Here’s the proof.
or, in your IDE: npx -y uiscanner-mcp
twelve pages. one template.
method
How we measured
133 top sites. Each one run through the same teardown that powers uiscanner: we read the rendered DOM for computed color roles, font stacks, type scale, radii, spacing, and section structure. No opinions, no adjectives. Just the tokens each site actually ships.
describes and tokenizes, never re-hosts assets.
type
The web has a house font, and it's Inter
Inter is the single most-used real web font across all 133. system-ui, -apple-system, Geist, and Geist Mono make up most of the rest.
ranked by frequency across 133 sites
radii
Every corner is an 8px corner
Ranked by frequency across 133 sites, the radius tokens go: 8px, 4px, 12px, 6px, 16px, then fully-round pills. The 8px grid isn’t folklore. It’s the measured default.
hover to morph
color
The tell of a considered palette
~30% of these sites (40 of 133) still ship pure #000000 black text. ~26% (35 of 133) sit on a pure #ffffff white surface. The tasteful majority go off-black on off-white, the small move you feel but can’t name.
Black text
40 / 133White surface
35 / 133Accent restraint
Only ~9% (12 of 133) are truly monochrome. Almost everyone else runs a near-monochrome palette with exactly one accent.
Only ~9% run zero accent
12 / 133 monochromestructure
The shape of an average page
~10 sections. ~8 type-scale steps. That’s the default skeleton, useful, and everyone’s.
10 sections · an 8-step type ramp
the turn
Averaged design doesn’t convert
None of this is bad taste. It’s no taste, because it’s the average, and the average is invisible. Your AI builder was trained on the web, so it ships the web’s mean. The market can’t tell you apart, so it scrolls past. When everyone has the same model, taste is the only moat left. And taste isn’t a vibe you prompt for. It’s a reference you feed in.
“Clean and modern” is what invisible looks like.
the gesture
See the tokens your AI keeps defaulting to
Measure your own site the same way we measured these 133. Then measure one you admire, and feed the difference to your builder.
Prepend the URL
Put uiscanner.com/ before any link you admire.
Or call it in your IDE
Works inside Claude Code, Cursor, Codex.
$ npx -y uiscanner-mcp5 free scans/month. Indie $12/mo. Studio $39/mo.