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 также должны пройти все тесты без JavaScript (npm run test:no-js). См. Tier
Доступность
axe-core — отсутствие нарушений в Playwright в Chromium, Firefox и WebKit на маршрутах тестового стенда со стилями и на всех публичных страницах документации.
Формируется командой npm run bench из корня репозитория. Одинаковые сценарии взаимодействия запускаются на обоих стендах; абсолютные значения — только лабораторные измерения.
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