Cada control de esta página bloquea la publicación si no se cumple un objetivo de tamaño, velocidad o accesibilidad. Todas las cifras del sitio provienen de estos controles.
Controles de CI
Control
Objetivo
Tamaño del bundle comprimido con gzip
Límites por componente en .size-limit.json
JavaScript de cliente en Tier 0
0 kB — no se permite llamar a ningún hook de React
Pruebas sin JavaScript
Tier 0 las supera por completo; Tier 1/2 cumplen un contrato reducido documentado
Infracciones de axe
0 en Chromium, Firefox y WebKit
Disposición forzada por la biblioteca
0 ms en las trazas de interacción
Latencia de interacción
≤ 200 ms con CPU ralentizada 4× (Chromium)
Número de renderizados
≤ 2 commits de React por interacción
Lighthouse (rutas de documentación)
≥ 0.95 en rendimiento, 1.00 en accesibilidad
Core Web Vitals
LCP ≤ 2500 ms, CLS ≤ 0.1, TBT ≤ 200 ms
Verificación local
npmruncheck:layout-reads# banned geometry reads in packagesnpmrunchecks# format, lint, typecheck, unit testsnpxplaywrighttest--config=e2e/playwright-performance.config.tsnpmrunbench# Radix comparison (local, not CI)
Los componentes Tier 0 también deben superar las pruebas sin JavaScript (npm run test:no-js). Consulta Niveles
Accesibilidad
axe-core — cero infracciones en Playwright con Chromium, Firefox y WebKit, en las rutas de pruebas con estilos y en todas las páginas públicas de documentación.
Se genera con npm run bench desde la raíz del repositorio. Los mismos scripts de interacción controlan ambos entornos; las cifras absolutas son solo mediciones de laboratorio.
Performance Benchmark: uiify/components vs Radix UI
Methodology
Hardware: Apple M4 · darwin 25.5.0 · 16.0 GB RAM
Node: v24.18.0
uiify version: 0.0.0
Radix version: 2.3.7
Date: 2026-09-11
Warmup: 5 iterations (discarded)
Recorded: 50 iterations per metric
Trim: top/bottom 5%
Statistics: mean, stddev (median in results/*.json)
Hosts: uiify via apps/site/components/[slug]/test?profiler=true&controls=false (Next.js prod build); Radix via
benchmarks/app (Vite prod build, vite preview)
Headed Chromium, workers: 1, CPU throttle = 1 (raw rendering)
Results
React Commit Duration (ms) — lower is better
Component
uiify mean ± σ
Radix mean ± σ
Δ (uiify vs Radix)
select
0.00 ± 0.00
0.00 ± 0.00
—
Interaction FPS (fps) — higher is better
Component
uiify mean ± σ
Radix mean ± σ
Δ (uiify vs Radix)
select
59.62 ± 4.12
59.64 ± 2.92
-0.0%
Forced Style/Layout (ms) — lower is better
Component
uiify mean ± σ
Radix mean ± σ
Δ (uiify vs Radix)
select
0.00 ± 0.00
0.15 ± 0.03
-100.0%
Heap After GC (MB) — lower is better
Component
uiify mean ± σ
Radix mean ± σ
Δ (uiify vs Radix)
select
13.62 ± 3.10
11.43 ± 3.10
+19.2%
Bundle Size (kB, gzipped)
Component
uiify
Radix
select
0.05
33.91
Notes
All measurements on headed Chrome (full GPU pipeline).
Variance reflects OS scheduler, GC, and browser internals.
The two hosts differ (Next.js SSR+hydration vs a standalone client app); both
are production builds driven by the same harness and BenchProfiler, but absolute numbers are lab-only and field behavior may differ.
Forced style/layout is measured in ms via the e2e CDP trace pipeline