Each gate below fails a release when a size, speed or accessibility target is missed. Every number on this site comes from one of them.
CI gates
Gate
Target
Gzipped bundle size
Per-component limits in .size-limit.json
Tier 0 client JavaScript
0 kB — no React hook may be called
No-JavaScript suite
Tier 0 passes in full; Tier 1/2 meet a documented degraded contract
Axe violations
0 across Chromium, Firefox, and WebKit
Library forced layout
0 ms on interaction traces
Interaction latency
≤ 200 ms @ 4× CPU throttle (Chromium)
Render count
≤ 2 React commits per interaction
Lighthouse (doc routes)
≥ 0.95 performance, 1.00 accessibility
Core Web Vitals
LCP ≤ 2500 ms, CLS ≤ 0.1, TBT ≤ 200 ms
Local verification
npmruncheck:layout-reads# banned geometry reads in packagesnpmrunchecks# format, lint, typecheck, unit testsnpxplaywrighttest--config=e2e/playwright-performance.config.tsnpmrunbench# Radix comparison (local, not CI)
Tier 0 components must also pass the no-JavaScript suite (npm run test:no-js). See Tiers
Accessibility
axe-core — zero violations in Playwright across Chromium, Firefox and WebKit, on styled harness routes and every public docs page.