mrkeyoor.com_
Sat 05 Sept 07:56 UTC
Webevaluationupdated 05 Sept 2026

mantine review

Mantine is an MIT-licensed React library of components, hooks, forms, charts, notifications, editors, and other interface building blocks. It gives product teams a shared theme and accessible controls so they can build application screens without designing every input, overlay, or interaction from scratch.

Verdict

Our Mantine checkout installed 1,826 packages and used 1,411 MB, then its 40-second test step failed on one implicit-any error in the documentation app. The published packages are a good fit for React 19 product teams that want many styled controls and unusually detailed usage docs. Repository contributors face a heavy monorepo, and teams centered on Server Components, old browsers, or React 18 should choose another path.

We ran it

Lab card: what happened when we ran mantineScreenshot of mantine (mantine.dev)
Install✓ · 79s1826 packages · 1411 MB
Build✓ · 116s
Tests✗ · 40sran, no count parsed
Repo6585 files~425,724 lines of source · 24.5 MB · 2 CI workflows

Answers from our run

Does mantine build from source?

Dependencies installed in 79 seconds (1826 packages), and the build succeeded in 116 seconds. We cloned commit 3862b09 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mantine's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use mantine?

Applications staying on React 18: @mantine/core 9.6.0 declares React and React DOM 19.2 as peer dependencies.

What are the alternatives to mantine?

Material UI, Chakra UI, Radix Primitives. Our Mantine checkout installed 1,826 packages and used 1,411 MB, then its 40-second test step failed on one implicit-any error in the documentation app.

Setup3/5Consumer setup is short; the 1,411 MB monorepo check failed
Docs5/5Detailed component, styling, framework, and browser guidance
Community5/531,667 stars with issue activity through September 2026
Maturity4/5Version 9.6.0 is active, though fresh type checking failed

Who it’s for

React 19 teams that want styled application components with TypeScript types.
Product developers who need forms, overlays, dates, charts, notifications, and rich text under one theme.
Teams comfortable using CSS modules, CSS variables, and a provider for design decisions.
Applications that prefer separate add-on packages for features such as dates, charts, and dropzones.

Who it’s NOT for

Applications staying on React 18: @mantine/core 9.6.0 declares React and React DOM 19.2 as peer dependencies.
Next.js teams requiring UI elements to remain React Server Components: Mantine's help guide says all Mantine components are client components.
Products supporting Internet Explorer or browsers older than Chromium 108, Firefox 101, or Safari 15.4: those versions sit outside documented testing.
Teams adopting the new 9.6.0 lightbox without a reproduction test: issue 9166 reports that its published ESM import throws before rendering.
Contributors who need the checked-out commit to pass its root check immediately: our test stopped on an implicit any error in the documentation app.

Setup reality

Our sandbox installed commit 3862b09 in 79 seconds, adding 1,826 packages and using 1,411 MB. The build passed in 116 seconds. The test step failed with exit 2 after 40 seconds because TypeScript found an implicit any parameter in HomePageSponsors.tsx inside the documentation workspace.

Application setup needs React 19.2, matching Mantine packages, a core CSS import, and MantineProvider; it needs no hosted credentials. Repository work requires Node 22, Yarn 4.18, and the monorepo workspaces. Server-rendered applications also add the documented color-scheme script and HTML props.

Every Mantine component is a client component, although it can still render on the server. Supported browser floors start at Chromium 108, Firefox 101, and Safari 15.4. Styles depend on modern CSS features, and optional packages bring their own CSS files and third-party dependencies.

Mantine 9.6.0 covers core controls, hooks, forms, and add-ons

Version 9.6.0 organizes the library as a set of packages rather than one indivisible kit. @mantine/core contains more than 100 components, while @mantine/hooks lists more than 80 hooks. Forms, dates, charts, notifications, modals, rich text, carousels, dropzones, code highlighting, schedules, and other features live in separate packages. That arrangement lets an application install only the groups it needs, while the shared provider and CSS variables keep their appearance connected.

The source repository is much larger than a consumer installation suggests. We measured 6,585 files, roughly 425,724 lines of source, and 24.5 MB before dependencies. It is a Yarn workspace containing the published packages, two documentation applications, demonstrations, build scripts, and release tooling. Consumers can ignore most of that structure. Contributors changing a component may also touch tests, demos, styles, generated docs, or package exports inside the same change.

Mantine 9.6.0 requires React 19.2 and explicit CSS setup

The current @mantine/core package declares React and React DOM 19.2 as peer dependencies. A basic application imports the core stylesheet and wraps its tree in MantineProvider. Dates, charts, dropzones, code highlighting, and other add-ons require their corresponding packages and style files. With server rendering, the setup guide adds ColorSchemeScript and Mantine HTML properties to avoid a hydration warning. Existing React 18 applications face a framework migration alongside Mantine 9 adoption.

Repository setup is considerably heavier. Yarn installed 1,826 packages in 79 seconds and left 1,411 MB on disk in our container. The root package requires Node 22 and records Yarn 4.18 as its package manager. Its workspaces include all packages and both docs applications, so one install pulls the tooling for formatting, linting, Jest, Storybook, TypeScript, publishing, documentation generation, and website builds. That cost matters for contributor laptops and disposable CI runners even if a production app imports only @mantine/core.

What happened when we ran it

Our measurement setup used commit 3862b09 in our fresh unprivileged Debian sandbox with 3 CPUs and 8 GB of RAM. Installation succeeded in 79 seconds, adding 1,826 packages and consuming 1,411 MB. The build then succeeded in 116 seconds. The checkout was a monorepo with 2 CI workflow files, no Dockerfile, and no top-level tests directory. Those structural signals do not say whether package-local tests exist.

The root test step failed with exit code 2 after 40 seconds. Its TypeScript chain checked the repository, entered apps/mantine.dev, and stopped in HomePageSponsors.tsx. The compiler reported that the item parameter on line 7 implicitly had an any type. Npm then identified the failed typecheck lifecycle in the docs workspace. The supplied log ended there, so it does not establish whether later lint or Jest stages would pass.

Mantine 9.6.0 components always enter the client boundary

The 9.6.0 help guide says every Mantine component is a client component and already carries the client directive. Next.js can still render those components on the server, but their code is included in the client bundle. Hooks, compound component syntax, render callbacks, and client logic impose further boundary rules. Teams trying to keep most of a page as React Server Components can isolate Mantine behind small client wrappers, though a UI built mostly from the library will move much of that tree into the client graph.

The 6,585-file monorepo reflects how many layers support that consumer API. It has generated docs, examples, styles, package exports, and separate sites in addition to the components. Our 116-second build passed, but the 40-second root check failed before reaching the rest of the scripted sequence. A contributor should run the package tests and the documentation typecheck for any touched surface, then confirm that the public ESM and CommonJS exports behave in a clean consumer project.

Browser support begins at Chromium 108, Firefox 101, and Safari 15.4

The tested minimums are Chromium 108, Firefox 101, and Safari 15.4 across desktop and mobile targets. Internet Explorer is unsupported. The styles use :where, CSS layers, flex gaps, dynamic viewport units, aspect ratio, and sometimes :has or container queries. Polyfills are left to the application. That is a reasonable floor for a current SaaS interface, but a public service with an older managed-device population needs its own browser matrix.

Styling offers component props, style props, CSS variables, a Styles API, and CSS modules. The docs recommend CSS modules for most custom work and warn against filling each component with many inline style props. This flexibility still asks teams to make a choice and enforce it. A 1,411 MB contributor install also provides no official Figma or Sketch library; Mantine points designers to community files whose freshness it does not guarantee. Design teams that require code and design assets to version together must build that bridge themselves.

The August 9.6.0 release is active, with a new ESM defect reported

Release 9.6.0 arrived on August 31, 2026, adding a lightbox package, an action bar, more chart types, richer editor controls, and schedule changes. Two days later, issue 9166 reported that importing @mantine/lightbox in a published ESM environment throws before rendering because of a circular dependency. The report includes a direct Node import reproduction and was updated on September 4. That is one package in a broad release, but teams using the new lightbox should test the exact bundler path or wait for a fix.

GitHub recorded the last push on September 1, 2026, with 31,667 stars and 56 combined issues and pull requests. Open issue activity continued into September, while other recent reports were marked for a patch. That health picture is current and busy. It does not cancel our source result: after a 79-second install and 116-second build, the 40-second check still failed on a docs type error. Mantine is easier to adopt as a package than to validate as a whole monorepo.

Alternatives

ProjectWhat it isPick it when
Material UI gh↗A React component library built around Google's Material Design system.pick this instead when Material Design conventions and its larger ecosystem match the product.
Chakra UIA React component system aimed at application interfaces and theme-based styling.pick this instead when Chakra's component API and styling model fit your team better.
Radix PrimitivesLow-level accessible React primitives with minimal visual opinions.pick this instead when your designers want to own the visual system and only need interaction primitives.

What people are saying

  1. [velocity-scout] mantinedev/mantine

Sources

  1. Mantine README
  2. Mantine 9.6.0 release
  3. Mantine getting started guide
  4. Mantine browser support
  5. Issue 9166: lightbox ESM import failure

More web reviews

handsontable · Web-Dev-For-Beginners · react-bits · tdesktop · editor · stylex · the whole board →