本文へ移動
uiify

検証の根拠

以下の各判定では、サイズ、速度、アクセシビリティの目標を満たさなければリリースを停止します。このサイトのすべての数値は、いずれかの判定に基づきます。

CIの判定条件

判定目標
gzip圧縮後のバンドルサイズ.size-limit.jsonのコンポーネント別上限
Tier 0のクライアントJavaScript0 kB — Reactフックの呼び出し禁止
JavaScript無効のテストスイートTier 0はすべて通過、Tier 1/2は明記された機能制限時の契約を遵守
axe違反Chromium、Firefox、WebKitですべて0件
ライブラリによる強制レイアウト操作トレースで0 ms
操作の遅延CPUを4倍遅くした条件で≤ 200 ms(Chromium)
レンダリング回数1操作あたりReactのコミット≤ 2回
Lighthouse(ドキュメントのルート)パフォーマンス≥ 0.95、アクセシビリティ1.00
Core Web VitalsLCP ≤ 2500 ms、CLS ≤ 0.1、TBT ≤ 200 ms

ローカルでの検証

npm run check:layout-reads    # banned geometry reads in packages
npm run checks                  # format, lint, typecheck, unit tests
npx playwright test --config=e2e/playwright-performance.config.ts
npm run bench                   # Radix comparison (local, not CI)

Tier 0コンポーネントはJavaScript無効のテストスイート(npm run test:no-js)もすべて通過する必要があります。Tierを見る

アクセシビリティ

  • axe-core — スタイル適用済みのハーネスルートとすべての公開ドキュメントページで、Playwrightを使い、Chromium、Firefox、WebKitの違反ゼロを確認します。
  • APGへの準拠 — ARIA複合ウィジェットはWAI-ARIA Authoring Practicesに従います。

アクセシビリティを見る

Radixベンチマークレポート

リポジトリのルートから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

Componentuiify mean ± σRadix mean ± σΔ (uiify vs Radix)
select0.00 ± 0.000.00 ± 0.00—

Interaction FPS (fps) — higher is better

Componentuiify mean ± σRadix mean ± σΔ (uiify vs Radix)
select59.62 ± 4.1259.64 ± 2.92-0.0%

Forced Style/Layout (ms) — lower is better

Componentuiify mean ± σRadix mean ± σΔ (uiify vs Radix)
select0.00 ± 0.000.15 ± 0.03-100.0%

Heap After GC (MB) — lower is better

Componentuiify mean ± σRadix mean ± σΔ (uiify vs Radix)
select13.62 ± 3.1011.43 ± 3.10+19.2%

Bundle Size (kB, gzipped)

ComponentuiifyRadix
select0.0533.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

(analyzeForcedLayout).

このページは機械翻訳によるもので、レビューは未実施です。