A State of React Libs — July 2026
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 six 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 something we plan to refresh regularly. Call it A State of React Libs (with apologies to Armin).
The table below reflects each library as of July 27, 2026. Component catalogs move fast; for the newest edition, see the latest A State of React Libs.
In the ring: bestax (Bulma v1), Mantine, MUI, Chakra UI, shadcn/ui, and React-Bootstrap.
Read a column top-to-bottom for one library’s catalog; read a row across to see who ships what. ✓ is a dedicated component, ◐ is available via a prop or by composition, and a muted dash means no first-party equivalent. Click any ✓ or ◐ to open that component’s docs.
How this was compiled — method & caveats
- 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→ MantineIndicator/ MUIBadge). Competitor links are best-effort; a few resolve to a library’s component index rather than an exact page.
What the matrix says
bestax matches the components you reach for every day and adds a Bulma-idiomatic layout kit — Hero, Level, Media, Section, Panel — that most libraries leave to composition, plus a full form suite (date/time pickers, rating, tag input, autocomplete, stepped number input) that React-Bootstrap has no answer for.
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 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.
Corrections welcome
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.
Please open an issue — corrections make the next edition better.
See you in the next one.
