Atlas expedition 6 angles ↓

Which React UI component kit should itenium-ui adopt in 2026?

Four candidates turned out to be three, then two: shadcn/ui now ships Base UI by default, so the real question is whether a Tailwind-4 monorepo should own its component code or vendor a library that must be talked out of overriding its own utilities.

6 succeeded 16 sources ~3 min read #7

Decision. Adopt shadcn/ui on Base UI for itenium-ui. It is the only candidate that costs nothing in cascade negotiation, nothing in token duplication, and nothing in license fees — and the three sibling decisions this series already made (TanStack Table, React Hook Form, a standalone toast) are its native idiom rather than a duplication of it. Take Mantine instead if the team would rather trade brand precision for 120 components it never has to write. Do not take MUI on this stack.

The four-way question collapsed while the research ran. In July 2026 shadcn init began defaulting to Base UI rather than Radix [1], a change every one of the six angles independently rediscovered. “shadcn/ui vs Base UI 1.0” is therefore not a choice: shadcn is a pre-styled Tailwind layer over Base UI [2], and the honest fork is owned code vs vendored library.

What decides that fork is the cascade. Tailwind 4 places every utility inside a named layer [3], and per the CSS spec unlayered author styles beat layered ones unconditionally [4]. So MUI’s runtime-injected Emotion CSS and Mantine’s default styles.css both silently outrank the utilities you write [5] — a real, shipped-to-production failure mode [6]. Both kits offer an opt-in fix (MUI’s first-party enableCssLayer integration [7], Mantine’s parallel styles.layer.css [8]), so this is a tax, not a wall. shadcn-on-Base-UI simply never levies it.

The same asymmetry reappears one level up. shadcn and Base UI put brand tokens directly in Tailwind’s @theme, where a CSS variable is the token is the utility [9]; MUI and Mantine keep a JS theme object as the source of truth and emit CSS variables downstream, leaving a hand-maintained bridge and a permanently double-defined palette. For a publishable design-system library carrying the Itenium brand, that duplication is the whole job done twice.

MUI fails on a third axis too. Emotion is still a hard dependency in v9, and Pigment CSS — the zero-runtime escape — is officially paused in alpha [10]; do not plan around it. Meanwhile the grid features an admin console actually needs (row virtualisation, column pinning, grouping, Excel export) sit behind MUI X Pro/Premium at $299–599/dev/yr [11] [12] — paying to duplicate the TanStack Table this series already chose.

Two honest counterweights. Mantine is the best-maintained project in the field by a distance: ⭐ 31k against a 12-issue open tracker [13], where shadcn/ui carries 1,019 and closes roughly one issue for every three opened [14], and MUI has an accessibility backlog open since 2019 [15]. Stars and maintenance health are close to inverted here. And the copy-in model has a governance cost Nx makes worse: shared-lib components need a private registry to receive updates at all, and Tailwind 4 emits zero CSS for libs/** until you hand-write @source directives [16] — a tax that lands on all four candidates equally and is the largest single piece of plumbing in this decision.

Which leaves the sharpest open question: Base UI is now load-bearing for two of the four options and is maintained by MUI the company. Choosing shadcn to avoid MUI’s styling engine still routes the runtime through MUI’s engineers — and nobody in this field ships a VPAT.

Sub-topics