Abaabil vs Headless UI
Both libraries, measured the same way on the same day: each entry point bundled with its own module graph, gzipped, React treated as external. All twenty-three abaabil components together come to 7,364 B. The same set from Headless UI, over the 13 it offers, comes to 68,004 B, or 9.2x the size.
What Headless UI is
Tailwind Labs’ unstyled component set, designed to pair with Tailwind CSS.
Per component, gzipped
abaabil's column is its a11y tier, the one most applications should use. 13 components are directly comparable; the widest gap is select at 66x. Headless UI has no equivalent for 10 of the twenty-three (tooltip, file, slider, toolbar, breadcrumb, pagination, progress, alert, avatar, badge), so those are left out rather than counted as a win.
| Component | abaabil | Headless UI | ratio |
|---|---|---|---|
| button | 557 | 7,119 | 13x |
| dialog | 580 | 16,725 | 29x |
| popover | 495 | 30,452 | 62x |
| menu | 1,120 | 32,840 | 29x |
| combobox | 1,097 | 43,943 | 40x |
| input | 501 | 8,352 | 17x |
| textarea | 506 | 8,352 | 17x |
| checkbox | 534 | 9,876 | 18x |
| radio | 444 | 12,067 | 27x |
| switch | 423 | 10,498 | 25x |
| select | 530 | 34,806 | 66x |
| accordion | 364 | 9,972 | 27x |
| tabs | 786 | 11,123 | 14x |
| all of them, one bundle | 7,364 | 68,004 | 9.2x |
The last row matters more than any single one above it. A library with a large shared runtime pays for it once, so the gap always narrows as you use more of it. Quoting only the widest row would be the easiest way to mislead you with real numbers.
abaabil's figures are JavaScript only, the same as every other column here, and unlike Headless UI it arrives already styled. That cost is real and tracked separately rather than folded in: the whole stylesheet is 5,217 B gzipped if you import all of it. The method, and every library at once, is on the Why page.
When to choose Headless UI instead
You are on Tailwind and want components from the same people, with the same conventions and documentation style. The set is small and focused, which is a virtue if it covers what you need.
abaabil is twenty-three components and stops there. It has no date picker, no data grid, no virtualised list, and no plans for any of them. If the thing you need is on that list, the size comparison above is irrelevant to your decision, and you should take the library that has it.
If abaabil is the right fit
Setup is four steps and the first one is npm i abaabil. Every component has its own page with a live example at the tier you would actually import. Or read when not to use it first, which is the section written to talk you out of it.