Measured Expression Benchmarks

Computed-style measurements of 49 live brand homepages against their 49 StyleGallery brand studies, with the systematic gaps that made the studies read as less expressive.

FROM PRINCIPLE TO PRACTICE

이 원리로 만든 예제 1

예제를 열어 직접 조작하고, 관찰한 동작을 이 문서의 원리와 비교해 보세요.

원문 가이드 ENGLISH

Primary role: measured reference values and the gap diagnosis behind the Expression directions.

Repository Boundary

These are observations of public homepages and of showcase/ studies, taken on 2026-09-28. They calibrate Expression directions and review. They are not tokens, not Layout inputs, and not a claim about how any brand builds its site.

Reusable Method

Every original homepage in site-compiler/candidates.json and its study in showcase/<slug>/ was loaded in headless Chromium at 1440x900, scrolled top to bottom in 450px steps, and profiled from getComputedStyle on every visible element. Text measures are weighted by character count; surface measures by painted area. Five originals could not be measured: ohou and tesla-model3 returned an access-denied page, and baemin, perplexity, and lusion scroll inside a container, so the document never grows past one viewport. The table covers the remaining 49 pairs.

What The Originals Do (Median Of 49)

Measure Originals p25 / median / p75 Studies median Studies off by 20%+
Body text size 13 / 14px / 16 13px lower 5, higher 4
Largest text size 40 / 56px / 72 70px higher 20
Largest size / body size 2.8 / 3.95 / 5.5 5.2 higher 22
Share of characters set at display size 0.4% / 4.7% / 8.2% 8.6% higher 34
Display weight 413 / 574 / 646 611 higher 11
Display tracking -0.023 / -0.012em / 0 -0.029em tighter 30
Body tracking -0.005 / 0em / 0 -0.01em tighter 35
Display line height 1.06 / 1.15 / 1.29 1.25
Body line height 1.37 / 1.44 / 1.49 1.53
Font families in use 1 / 2 / 4 3 more 27
Distinct weights 3 / 4 / 5 5 more 19
Raster images, video, and background images, % of page area 31 / 53% / 108 0% lower 49
Gradient-painted area 0 / 3.9% / 17 26% higher 35
Distinct background colors 5 / 8 / 15 13 more 28
Background band changes down the page 0 / 3 / 9 6 more 24
Page length in viewports 6.3 / 9.1 / 13.7 4.4 shorter 44
Elements with 1px borders 3 / 24 / 65 13 fewer 28
Elements with mask or clip-path 1 / 12 / 27 0 fewer 42
Elements with soft (24px+ blur) shadows 0 / 0 / 1 2 more 22
Elements with transitions 38 / 76 / 139 8 fewer 40
Elements whose transform, opacity, clip, or filter changed during a scroll 4 / 17 / 107 6 fewer 34
Most common transition duration per site 150 / 200ms / 300 400ms longer 28

Area percentages can exceed 100% because nested and overlapping media are each counted.

By Direction (Original / Study Medians)

Direction n Body Max size Ratio Display weight Display tracking Raster area Gradient area Viewports Transitions Scroll-changed Top duration
Fintech Clarity 11 14 / 15 58 / 80 3.7 / 5.0 625 / 700 -0.009 / -0.032 72% / 0 9% / 37% 9.6 / 5.2 83 / 8 19 / 9 300 / 400ms
Hardware Catalogue 5 12 / 14 80 / 102 6.7 / 7.9 574 / 606 0 / -0.035 101% / 0 1% / 44% 17.5 / 3.9 66 / 10 18 / 6 200 / 400ms
Developer Tool 10 14 / 13 64 / 77 4.6 / 5.9 460 / 500 -0.020 / -0.032 34% / 0 25% / 10% 9.1 / 5.0 139 / 10 163 / 12 150 / 300ms
Korean Service 15 14 / 12 32 / 44 2.0 / 3.4 590 / 715 -0.001 / -0.023 87% / 0 0% / 19% 6.3 / 3.7 49 / 7 5 / 1 200 / 300ms
Product and creative tools 8 16 / 13 88 / 77 5.5 / 5.9 660 / 763 -0.027 / -0.024 46% / 0 4% / 20% 10 / 5.9 56 / 6 15 / 9 200 / 400ms

The Measured Gaps

  1. No imagery, so gradients filled the space. Originals give roughly half their page area to photography, product renders, and video; the studies gave none and painted six times more gradient area instead. Gradients read as atmosphere, not content, so whole sections felt empty. See Image Weight.
  2. Type shouted instead of scaling. Studies set more text at display size, larger, heavier, and tighter than the originals, and used an extra family and weight. The originals hold display type near 0em tracking at Korean and system faces and keep the display-to-body ratio near 4. See Display Type Calibration.
  3. Surfaces lacked finishing detail. Originals use about twelve masks or clip-paths per page (edge-fade masks on scrollers, rounded inset clips on media, wipes) and twice as many hairlines; studies used none, and substituted soft shadows. See Masks, Clips, And Hairlines.
  4. Too few things responded. Originals put transitions on about 76 elements, mostly opacity, color, transform, and background-color, and most sites' dominant duration is 150-300ms. Studies transitioned about 8 elements at 400ms, so the page felt static between big set pieces and sluggish when it did move.
  5. Pages were compressed. Studies are about half as long and change background band twice as often, so each idea got a single short beat instead of a paced sequence.

Motion Density To Hand To Motion

Expression names the density; Motion techniques implement it. Measured across the originals:

  • Hover and state transitions: 100-320ms. Frequent curves: ease, cubic-bezier(0.23, 1, 0.32, 1), cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.25, 1, 0.5, 1), cubic-bezier(0.25, 0.46, 0.45, 0.94).
  • Reveals: 400-500ms, cubic-bezier(0.33, 1, 0.68, 1) (Stripe) or scroll-scrubbed with no transition at all (Apple, Toss), translating 30px or less.
  • Libraries are rare: of 49 originals, WebGL appears on 8, Lenis smooth scroll on 4, GSAP on 3, Lottie on 2, Framer on 2. The expressiveness is mostly plain CSS applied to many elements.

Opinionated Guidance

Spend expression on content and response, not on scale. The studies tried to be striking with bigger type and more gradients; the originals are striking because every card has a picture, every link answers the pointer within a fifth of a second, and the type stays calm enough to let both show.

Treat the medians as a floor for a finished page, not a target to exceed: a showcase page with fewer than about 40 transitioning elements, no masks, and no raster or rendered imagery will read as a wireframe regardless of its palette.

Platform-Specific Guidance

The numbers come from desktop Chromium at 1440x900 with an en-US locale. Mobile layouts, Safari font rendering, and logged-in states were not measured. Character-weighted type measures favour dense listing pages; the per-direction table separates those from landing pages.

A condensed version of the measurement, runnable in the console of any page after scrolling it:

const runs = [...document.querySelectorAll('body *')].flatMap((el) => {
  const text = [...el.childNodes].filter((n) => n.nodeType === 3).map((n) => n.textContent).join('').trim()
  if (!text || !el.getClientRects().length) return []
  const s = getComputedStyle(el), fs = parseFloat(s.fontSize)
  return [{ n: text.length, fs, fw: +s.fontWeight, ls: s.letterSpacing === 'normal' ? 0 : parseFloat(s.letterSpacing) / fs }]
})
const body = Object.entries(runs.reduce((m, r) => ((m[Math.round(r.fs)] = (m[Math.round(r.fs)] || 0) + r.n), m), {})).sort((a, b) => b[1] - a[1])[0][0]
const transitions = [...document.querySelectorAll('body *')].filter((el) => parseFloat(getComputedStyle(el).transitionDuration) > 0).length
const clipped = [...document.querySelectorAll('body *')].filter((el) => { const s = getComputedStyle(el); return s.clipPath !== 'none' || (s.maskImage && s.maskImage !== 'none') }).length
console.table({ body, max: Math.max(...runs.map((r) => r.fs)), ratio: Math.max(...runs.map((r) => r.fs)) / body, transitions, clipped })

Unsupported Absolutes

One snapshot per site, one viewport, one day. Sites change weekly, and consent banners, A/B tests, and lazy-loaded media shift individual numbers. Medians over 49 sites are stable enough to direct work; a single site's row is not a specification of that brand.

Verification Contract

When a showcase study or a direction is revised against these benchmarks, re-run the console measurement on the study and record the before and after values in the study's brief.md. Re-measure the originals before quoting any single-site value older than a quarter.

Source, License, And Attribution

Locally authored from measurements of publicly served homepages. Only computed style values and counts were recorded; no markup, copy, images, or code from the measured sites is reproduced.

IA Navigation

Parent: Expression. Next: Image Weight.