Numbers are gzipped, post-tree-shake bundle deltas for a single-component import in a fresh Vite + esbuild project. Library version captured below. React libraries are included for context — they ship a different runtime; the comparison is at the user's surface, not internal architecture. Update by running scripts/refresh-competitor-sizes.mjs (re-builds each fixture and re-measures).
Toggle
Kumiki subpath: @kumiki/components/toggle
Library
Version
Framework
gzip
Bar
Kumiki
0.x.x-preview
Svelte 5
1.1 KB
Bits UI
2.16
Svelte 5
800 B
Melt UI
0.86
Svelte 5
1.4 KB
React Aria
1.5
React
2.1 KB
Radix UI
1.1
React
1.7 KB
Dialog
Kumiki subpath: @kumiki/components/dialog
Library
Version
Framework
gzip
Bar
Kumiki
0.x.x-preview
Svelte 5
3.1 KB
Bits UI
2.16
Svelte 5
1.5 KB
Melt UI
0.86
Svelte 5
2.4 KB
React Aria
1.5
React
2.4 KB
Radix UI
1.1
React
3.1 KB
Zag.js
1.7
Framework-agnostic core
3.7 KB
Combobox
Kumiki subpath: @kumiki/components/combobox
Library
Version
Framework
gzip
Bar
Kumiki
0.x.x-preview
Svelte 5
4.1 KB
Bits UI
2.16
Svelte 5
4.4 KB
Melt UI
0.86
Svelte 5
5.7 KB
React Aria
1.5
React
4.8 KB
Zag.js
1.7
Framework-agnostic core
5.3 KB
Tabs
Kumiki subpath: @kumiki/components/tabs
Library
Version
Framework
gzip
Bar
Kumiki
0.x.x-preview
Svelte 5
2.2 KB
Bits UI
2.16
Svelte 5
1.3 KB
Melt UI
0.86
Svelte 5
2.1 KB
React Aria
1.5
React
2.3 KB
Radix UI
1.1
React
2.6 KB
Select
Kumiki subpath: @kumiki/components/select
Library
Version
Framework
gzip
Bar
Kumiki
0.x.x-preview
Svelte 5
2.8 KB
Bits UI
2.16
Svelte 5
3.0 KB
Melt UI
0.86
Svelte 5
4.3 KB
React Aria
1.5
React
3.6 KB
Radix UI
1.1
React
4.0 KB
Accessibility & i18n features
Headline capabilities each library ships out of the box. Sourced from docs/market-research.md §4.5–§7. As of .
Feature
Kumiki
Bits UI
Melt UI
Radix UI
React Aria
Zag.js
Headless UI
Standard Schema validation Kumiki's form-field accepts any Standard Schema validator (Zod / Valibot / ArkType) without per-library adapters.
✓
·
·
·
·
·
·
Non-Gregorian calendars Kumiki uses @internationalized/date as a peer dep; calendars (Islamic, Hebrew, Buddhist, …) are tree-shaken per consumer.
✓
·
·
·
✓
·
·
RTL keyboard inversion Kumiki inverts physical-direction keys (Tabs ArrowRight / Slider) inside the FSM, driven by LocaleProvider's `dir`. Bits / Melt / Headless UI rely on consumer-supplied `dir` and don't always flip the keyboard contract.
✓
◐
◐
✓
✓
✓
◐
APG keyboard tests in CI Kumiki ships per-component .kb.ts specs that exercise each WAI-ARIA APG keyboard interaction in Playwright on every PR.
✓
◐
◐
✓
✓
◐
·
Screen-reader CI (Guidepup) Kumiki schedules nightly Guidepup runs against macOS-VoiceOver + Windows-NVDA. Radix / React Aria document manual SR testing but do not gate CI on it.
✓
·
·
◑
◑
·
·
Target ARIA version Kumiki tracks WAI-ARIA 1.3 (suggestion / comment / switch role refinements). Per market-research §7.
1.3
1.2
1.1/1.2
1.2
1.2
1.2
1.2
Legend: ✓ shipped ◐ partial ◑ manual only / opt-in · not provided
Caveats
Sizes are 'incremental' — what the user pays after their first kumiki import (foundations like @kumiki/runtime are amortized). The first-import number is ~1 KB higher.
React libraries (Radix, React Aria) appear here for cross-ecosystem context, not as direct head-to-head competitors. Their numbers exclude React itself, which is already in a typical React user's bundle.
Numbers are gzip — Kumiki's CI gates use brotli, which is typically ~10–15% smaller. We use gzip here because it is the comparison the rest of the ecosystem publishes.
Competitor numbers are reproduced from the user-supplied market research (see docs/market-research.md §7). Refresh by running scripts/refresh-competitor-sizes.mjs against fresh installs of each package.
Bundle data last updated: . Feature matrix as of . Source data: apps/docs/src/data/competitor-sizes.json.