Picking a React component library is one of the bigger architectural calls in a project, and the honest answer to “which one” depends entirely on what you’re building. We maintain bestax, a component library for Bulma v1, so we spend a lot of time studying the field. This post maps it out fairly and in the open: every user-facing capability across seven React libraries, with each cell linking straight to that library’s own documentation so you can check our work.
It’s a point-in-time capture — the first edition of a series we’ll refresh regularly. We’re calling it The State of React, with a nod to Armin’s long-running radio show. Over time we’d like it to grow into a wider read on the React ecosystem; for now, it stays focused on component libraries.
Snapshot — July 2026
The table below reflects each library as of July 27, 2026. Component catalogs move fast — the latest edition of The State of React always has the freshest data.
Each row is a capability; read across to see who ships it. ✓ is a dedicated component, ◐ is available via a prop or by composition, and a muted dash means no first-party equivalent. The columns are abbreviated (hover a header for the full name); hover any cell for the component name, or click it to open that component’s docs.
Rows are capabilities, not raw exports — sub-parts are folded into their parent and internal utilities dropped, so a column approximates each library’s user-facing catalog.
◐ means the capability exists via a prop or by composing primitives, not as a dedicated named component; it is treated as “absent” when judging what a library uniquely ships.
Official companion packages count as first-party (Mantine @mantine/*, MUI @mui/lab & @mui/x-*). shadcn/ui is a copy-paste registry powered by Radix, cmdk, TanStack Table, and react-day-picker — not an npm dependency.
Matched by purpose, not name (e.g. bestax Badge → Mantine Indicator / MUI Badge). Competitor links are best-effort; a few resolve to a library’s component index rather than an exact page.
Within the Bulma world there isn’t much contest left. react-bulma-components covers Bulma-core only and has been inactive since ~2021. bestax matches essentially all of it (bar Bulma’s Tile) and adds roughly 50 more components — date/time pickers, autocomplete, rating, tag input, slider, switch, Carousel, Steps, Avatar, Badge, Toast, Tooltip, Skeleton, Sidebar, Dialog, and Reveal.
A few honest takeaways across the wider field:
Mantine has the widest first-party catalog — rich inputs (color, PIN, JSON), plus Spotlight, ScrollArea, HoverCard, and a full app-shell layout system.
MUI owns heavy data and app-frame surfaces through its X packages: Data Grid, Charts, Tree View, and Date Pickers, plus FAB, Speed Dial, and Transfer List.
Chakra UI is the closest peer to bestax’s prop-driven styling model and is deep on form controls — but ships no date pickers, charts, carousel, or data grid.
React-Bootstrap is the smallest set: a faithful Bootstrap wrapper with no date/time pickers, rating, autocomplete, stepper, or tag input.
bestax covers the mainstream set and adds Bulma-idiomatic layout — Hero, Level, Media, Section, Panel — that most libraries leave to composition.
shadcn/ui plays by different rules
shadcn/ui looks broad because it’s a copy-paste registry, not an npm dependency: its behavior comes from Radix UI, cmdk, TanStack Table, and react-day-picker. You own the code it drops into your project — powerful, but a different maintenance model than the others here.
We compiled this by hand from each library’s component source and documentation, so it will have edges — a mislabelled cell, a capability we scoped wrong, or a competitor link that’s drifted. It’s meant to be honest, not perfect.
Spot something off?
Please open an issue — corrections make the next edition better.