mrkeyoor.com_
Mon 21 Sept 13:46 UTC
Webevaluationupdated 21 Sept 2026

chakra-ui review

Chakra UI is a TypeScript component system for building React interfaces and design systems. It supplies accessible component primitives, styling props, theme tokens, recipes, and framework guides so a product team does not have to assemble those pieces on its own.

Verdict

Our Chakra UI checkout installed 2,166 packages, built in 97 seconds, and passed all 1,063 tests, so the repository is healthy but expensive to work in. Use v3 when a React team wants one coherent component and theming system and can accept Emotion at runtime. Budget a real migration for v2 applications, and choose a source-owned alternative if runtime styling is off the table.

We ran it

Lab card: what happened when we ran chakra-uiScreenshot of chakra-ui (chakra-ui.com)
Install✓ · 54s2166 packages · 1712 MB
Build✓ · 97s
Tests✓ · 82s1063 passed · 0 failed of 1063 (vitest)
Repo3849 files~194,191 lines of source · 161.8 MB · 3 CI workflows

Answers from our run

Does chakra-ui build from source?

Dependencies installed in 54 seconds (2166 packages), and the build succeeded in 97 seconds. We cloned commit 55aee43 into a clean Debian container with 3 CPUs and no project-specific setup.

Do chakra-ui's tests pass?

Yes: 1063 of 1063 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use chakra-ui?

React 17 applications that cannot upgrade: @chakra-ui/react 3.37.0 declares React and React DOM 18 or newer as peer requirements.

What are the alternatives to chakra-ui?

Material UI, Mantine, shadcn/ui. Our Chakra UI checkout installed 2,166 packages, built in 97 seconds, and passed all 1,063 tests, so the repository is healthy but expensive to work in.

Setup3/52,166-package contributor install; app setup is much smaller
Docs5/5Current guides cover v3 setup, theming, migration, and frameworks
Community5/540,660 stars; pushed Sep 21 with an active fix PR
Maturity4/5v3.37.0, a full test pass, and ongoing accessibility fixes

Who it’s for

React teams building a shared design system rather than a one-off page.
Product engineers who want styled, accessible component primitives with direct control over tokens and recipes.
Next.js or Vite teams comfortable with a provider, Emotion at runtime, and generated UI snippets.
Maintainers who want an established MIT-licensed library with active releases and migration tooling.

Who it’s NOT for

React 17 applications that cannot upgrade: @chakra-ui/react 3.37.0 declares React and React DOM 18 or newer as peer requirements.
Teams that ban runtime CSS-in-JS: the installation guide says Chakra UI uses Emotion at runtime today and describes zero-runtime styling only as a long-term direction.
Large Chakra v2 applications expecting a drop-in package bump: the v3 guide changes providers, token shapes, boolean props, component composition, hooks, icons, and style configuration.
Contributors with tight disk or dependency budgets: our monorepo install pulled 2,166 packages and occupied 1,712 MB.
Products whose linked tabs must already be free of the current programmatic-selection bug: issue 11003 reports unwanted navigation, and its fix was still an open pull request when checked.

Setup reality

Our sandbox installed 2,166 pnpm packages in 54 seconds and used 1,712 MB on disk. The build passed in 97 seconds. Vitest then passed all 1,063 tests in 82 seconds, with 0 failures. Those are contributor-checkout numbers for commit 55aee43, not the cost of adding the published package to one app.

A consumer installs @chakra-ui/react and @emotion/react, adds the generated provider and optional snippets, and needs no hosted service or secret. The docs require Node.js 20 or newer, while this monorepo declares Node.js 22 or newer and pnpm 11.10.0.

Chakra UI 3.37.0 requires React 18 or newer and styles through Emotion at runtime. Custom themes use tokens, recipes, and generated types. Migrating from v2 is a code migration even with the supplied codemod.

Chakra UI 3.37.0 provides a complete design-system layer

Chakra UI 3.37.0 is for teams that want components and design rules to speak the same language. Buttons, dialogs, tabs, inputs, and layout primitives share style props, tokens, semantic tokens, recipes, and responsive conditions. The package depends on Ark UI for component behavior and Emotion for styling. That combination gives a product team one place to define color, spacing, variants, and interaction patterns instead of settling those choices separately in every feature.

The commitment is bigger than importing a button. Version 3 requires React and React DOM 18 or newer, while the installation guide sets Node.js 20 as the floor. A custom system can enforce strict tokens, generate TypeScript definitions, scope its CSS variables, and turn off or limit the default reset. Those controls matter in a shared design system. They are extra machinery for a small page whose components will never share more than a color palette.

Two packages still need a provider and project-owned snippets

The basic application install names 2 packages: @chakra-ui/react and @emotion/react. Setup also adds a provider at the root. The generated provider combines ChakraProvider with next-themes for color mode, while the CLI can copy prebuilt component snippets into the application. No account, API key, database, or hosted Chakra service sits in that path.

Snippets change the ownership boundary in a useful way. Chakra maintains the primitives, but the generated provider and compositions live in your source tree, where your team can edit them. The theme system goes deeper through recipes, slot recipes, semantic tokens, breakpoints, and type generation. If you adopt those pieces, Chakra can hold a product's UI rules together. If you only want a few isolated widgets, carrying the v3 system and Emotion runtime makes less sense.

What happened when we ran it

Our sandbox installed the Chakra UI monorepo in 54 seconds, pulling 2,166 pnpm packages and occupying 1,712 MB. The build completed in 97 seconds. Vitest then finished in 82 seconds with 1,063 passed and 0 failed. All three steps succeeded on commit 55aee43 in an unprivileged container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets.

Those figures describe contributor setup, not a consumer installing 2 published packages. The checkout itself contained 3,849 files, about 194,191 lines of source, and used 161.8 MB before installation. We found a workspace monorepo and 3 CI workflow files. There was no Dockerfile or top-level tests directory, although the Vitest command still found and passed 1,063 co-located tests. The clean run is strong evidence that this exact checkout works in the stated environment.

Moving from v2 changes APIs as well as packages

Chakra's v3 guide treats migration as a source rewrite. The codemod handles renamed components, prop changes, imports, and compound component structures, and it has a dry-run mode. Manual work can still be broad: isOpen becomes open, colorScheme becomes colorPalette, Modal becomes a compound Dialog, token values gain value wrappers, and style configs give way to recipes. The old icons package and several hooks and components are removed.

The August 28 release of @chakra-ui/react 3.37.0 shows why the current codemod matters. The same release batch updated the codemod's preview and fixed transforms that could touch the wrong imports or misread TypeScript files. Run the preview first, review its report, then put application tests and visual checks around the result. A green 1,063-test upstream suite cannot prove that a custom v2 theme or wrapper still looks right after those application-level changes.

Emotion remains a runtime dependency in v3

The installation guide says plainly that Chakra uses Emotion at runtime today. It describes a zero-runtime model inspired by Panda CSS as a long-term direction, not an available replacement or a dated promise. Teams with a rule against runtime CSS-in-JS should stop there. Chakra's own package metadata still requires @emotion/react 11 or newer, alongside React 18 or newer.

For teams that accept that tradeoff, v3 has a coherent styling model rather than a loose set of component themes. CSS variables carry tokens, recipes define variants, and strict token mode can reject raw values in TypeScript. That is the strongest reason to choose Chakra over source-owned components. The benefit appears when several engineers must apply the same product rules, not when one developer needs a dialog on a single route.

September activity is current, with 2 open user issues

GitHub recorded a push on September 21, 2026, and listed 40,660 stars plus 14 combined issues and pull requests. The open queue contained 2 user issues and 12 pull requests. Issue 11003, opened September 14 and updated September 21, reports that programmatic tab selection can activate a linked trigger and navigate away. Pull request 11011 targets that behavior and was still open when checked.

The other open issue asks for accessibleWhenDisabled on Button, with a corresponding pull request also open. Meanwhile, version 3.37.0 shipped on August 28 with focus, keyboard, overlay, form, and date-input fixes. That is active maintenance, though accessible defaults still need application tests around the exact components you use. Choose Chakra for a React 18 design system you intend to maintain. For a v2 migration, treat the codemod report and your visual regression suite as release requirements.

Alternatives

ProjectWhat it isPick it when
Material UI gh↗A React component library built around Google's Material Design system.pick this instead when the product should follow Material Design and you want that larger component ecosystem.
Mantine gh↗A full-featured React component library with components and hooks in one project.pick this instead when you prefer Mantine's component and hooks model over Chakra's token and recipe system.
shadcn/ui gh↗A collection of accessible component source code that your application can own and change.pick this instead when copying components into the app is preferable to depending on a runtime styling system.

What people are saying

  1. [velocity-scout] chakra-ui/chakra-ui

Sources

  1. Chakra UI repository and README
  2. Measured Chakra UI commit 55aee43
  3. Chakra UI installation guide
  4. Chakra UI v3 migration guide
  5. Chakra UI 3.37.0 release
  6. Tabs programmatic-selection issue 11003
  7. Button accessibleWhenDisabled issue 10929

More web reviews

vueuse · react-redux · anime · element-plus · recharts · WebKit · the whole board →