mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Webevaluationupdated 27 Aug 2026

material-ui review

Material UI is a React component library that implements Google's Material Design, with theming and ready-made interface controls for product teams. It solves the repetitive work of building and maintaining common UI pieces, while leaving application behavior and visual customization to the developer.

+30 / 4dstars / 7d
Verdict

Our Material UI run passed all 6,483 executed tests after a 165-second install that put 1,955 packages and 1,320 MB on disk. Use it when a React team wants a deep Material Design component set and accepts the weight and migration work that come with that breadth. Choose a headless library when owning the entire visual system matters more than getting finished components quickly.

We ran it

Lab card: what happened when we ran material-uiScreenshot of material-ui (mui.com/material-ui)
Install✓ · 165s1955 packages · 1320 MB
Build✓ · 128s
Tests✓ · 219s6483 passed · 0 failed · 849 skipped of 7332 (vitest)
Repo41128 files~731,543 lines of source · 275.6 MB · 16 CI workflows · tests dir

Answers from our run

Does material-ui build from source?

Dependencies installed in 165 seconds (1955 packages), and the build succeeded in 128 seconds. We cloned commit 6bc2432 into a clean Debian container with 3 CPUs and no project-specific setup.

Do material-ui's tests pass?

Yes: 6483 of 7332 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 material-ui?

Vue, Svelte, or framework-neutral teams: the package requires React and React DOM as peers.

What are the alternatives to material-ui?

Ant Design, Chakra UI, Radix Primitives. Our Material UI run passed all 6,483 executed tests after a 165-second install that put 1,955 packages and 1,320 MB on disk.

Setup3/5165-second contributor install pulled 1,955 packages
Docs5/5Installation, browser targets, migrations, and codemods are explicit
Community5/598,944 stars with active August 2026 issue and release work
Maturity5/5A decade-old project with 6,483 executed tests passing

Discussed on

  1. hnMaterial-UI is releasing v5 and rebrands to mui.com42 points

Who it’s for

React teams that want a broad set of production components with one theme system.
Product groups that prefer Material Design as a dependable starting point.
Developers maintaining long-lived applications that need migration guides and codemods.
Organizations that value an MIT-licensed core with active releases and issue triage.

Who it’s NOT for

Vue, Svelte, or framework-neutral teams: the package requires React and React DOM as peers.
React 18 projects unwilling to pin an extra compatibility override: the installation guide requires react-is to match the React version.
Server-rendered applications committed to styled-components: MUI's guide says that combination is incompatible and recommends Emotion.
Teams that cannot budget for major-version migrations: the v9 guide removes deprecated props, GridLegacy, icon exports, and other public APIs.
Developers highly sensitive to module traversal during local builds: open issue 35840 still tracks flattening internal imports.

Setup reality

Our sandbox install succeeded in 165 seconds, adding 1,955 packages and occupying 1,320 MB. The build passed in 128 seconds, then Vitest passed 6,483 tests in 219 seconds, with 849 skipped and 0 failed out of 7,332.

Using the library in an app needs React, React DOM, and usually Emotion; it needs no service credentials. The full contributor checkout is a pnpm workspace monorepo, so its setup is much larger than adding @mui/material to an existing app.

React 18 and older require a matching react-is override. The docs warn that styled-components is incompatible with server-rendered Material UI projects and recommend Emotion there. Version 9 targets Chrome 117, Edge 121, Firefox 121, and Safari 17 or newer.

Material Design is the product decision built into the library

Material UI gives React applications finished controls that follow Google's Material Design. Buttons, dialogs, menus, forms, layout helpers, and theme tokens share conventions, so a team can assemble an interface without inventing every interaction and state. That speed has a visual consequence: even after changing colors and typography, component behavior and default proportions still come from Material Design. Teams wanting that familiarity get a useful head start. Teams with a sharply different design language may spend much of the saved time overriding it.

The core package is MIT licensed and works with React 17, 18, or 19. Emotion is the default styling engine, while React and React DOM remain peer dependencies. More specialized products such as the advanced components in MUI X sit outside the core library described here. That division keeps Material UI focused on general application controls, but adopters should map their whole interface before assuming one package covers data grids, charts, and every complex workflow.

What happened when we ran it

Our sandbox installed commit 6bc2432 in 165 seconds. Pnpm added 1,955 packages and used 1,320 MB on disk. The build completed successfully in 128 seconds. Those figures belong to the contributor monorepo, which contains 41,128 files and about 731,543 lines of source in a 275.6 MB checkout. They do not describe the bundle a browser receives from an application that imports a few components. They show that contributing to Material UI calls for real disk space and patience.

Vitest finished in 219 seconds with 6,483 passed, 0 failed, and 849 skipped out of 7,332 tests. The repository also had a tests directory and 16 CI workflow files. No Dockerfile was present, so the repository does not provide one canonical container for contributors. On the measured commit, install, build, and tests all completed successfully in our unprivileged Node 22 sandbox with 3 CPUs and 8 GB of RAM.

React 18 needs one override, and SSR narrows the styling choice

Installing Material UI in an application is much smaller in concept than preparing its repository: add @mui/material, Emotion, React, and React DOM. There are no API keys or hosted services. The installation guide adds an exception for React 18 and older. Because Material UI uses react-is 19, those applications must install a matching react-is version and set an override or resolution to prevent runtime prop-type errors. That is documented, though it is easy to miss when copying only the first command.

Styling also has a firm server-rendering caveat. MUI documents a styled-components adapter, then says styled-components has been incompatible with server-rendered Material UI projects since late 2021 because its Babel plugin cannot process the styled() calls inside MUI packages. Emotion is the recommended SSR path. If an organization has standardized on styled-components for a Next.js estate, this warning is a valid reason to choose another component system rather than maintain a special styling lane.

Version 9 raises browser floors and removes old APIs

The v9 migration guide is candid about breaking changes. It covers a direct move from v7 to v9 and removes GridLegacy, deprecated component props, old system props, and 23 duplicate icon exports. Several components also change DOM structure, event behavior, keyboard handling, or TypeScript types. Codemods cover many deprecated prop replacements, which lowers mechanical effort. A large app still needs visual and interaction regression tests because a codemod cannot decide whether changed focus, menu, or modal behavior is correct for its users.

Browser support moved as well. Version 9 targets Chrome 117, Edge 121, Firefox 121, and Safari 17 on macOS and iOS. That is a sensible floor for many current web products, but it rules out teams contractually supporting older managed devices. The same guide changes TablePagination number formatting through Intl.NumberFormat and updates several accessibility semantics. These are defensible defaults. They can still produce visible or test-breaking changes in an established product.

The component breadth has a contributor and bundler cost

Our 1,320 MB installation is the clearest local warning, yet browser and development costs depend on imports and tooling. The project advises production users against its CDN build because clients would download the entire library. An open performance issue, number 35840, asks maintainers to flatten internal imports so bundlers traverse fewer modules even when applications use path imports. The issue remains open and was updated in August 2026, so teams with slow development builds should test their own framework configuration rather than rely on tree shaking as a complete answer.

Accessibility work is active rather than finished once a component renders. Open pull request 48916 proposes a WCAG 2.2 report for Button and lists partial support around contrast, focus indicators when ripple is disabled, and the loading state's lack of a live region. Another long-running open issue, 19450, concerns aria-hidden on non-portal modals. Neither report proves that every MUI application has those defects. They show why teams with strict conformance requirements must test their chosen variants, colors, wrappers, and interaction paths.

Current pushes and v9.3.1 point to active maintenance

GitHub recorded a push on August 27, 2026, and the latest release was v9.3.1 from August 6. The repository had 98,944 stars and 1,485 combined open issues and pull requests when fetched. A separate issue-only search returned 1,376 open issues. That is a large queue, but current commits, releases, and same-month issue updates show an operating project rather than an abandoned package with a popular name.

Material UI is the practical choice when a React team accepts Material Design and wants depth, documentation, and migration tooling in one place. The successful 6,483-test run supports confidence in the measured commit, while the 1,955-package contributor install sets expectations about scale. Before adopting it, prototype one real screen, measure local build behavior, exercise keyboard and screen-reader paths, and estimate the cost of future major migrations. If those checks pass, the library can remove a great deal of routine UI work.

Alternatives

ProjectWhat it isPick it when
Ant Design gh↗A React component system with its own enterprise-oriented visual language.pick this instead when Ant Design's denser defaults and component conventions match the product better than Material Design.
Chakra UIA React component library centered on composable primitives and style props.pick this instead when you want accessible building blocks with less Material Design character in the defaults.
Radix PrimitivesLow-level React primitives that supply behavior and accessibility without a finished theme.pick this instead when your designers want full control over appearance and can build the visual system themselves.

What people are saying

  1. [velocity-scout] mui/material-ui

Sources

  1. Material UI README
  2. Material UI installation guide
  3. Upgrade to Material UI v9
  4. Material UI v9.3.1 release
  5. Open internal import-flattening issue
  6. Open Button accessibility report pull request

More web reviews

axios · super-productivity · Graphite · fastify · tabler · go-zero · the whole board →