← All reportsPublic report

mui/material-ui

Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.

99k stars JavaScript View on GitHubprofiled 11d ago
Try GitZoid
132PRs this week
29Contributors
63Deps scanned
2Issues found
01 · Repo overview

How material-ui is put together

mui/material-ui is a pnpm-workspace monorepo (managed with Lerna and Nx) containing the Material UI React component library (@mui/material, @mui/system, @mui/icons-material, @mui/codemod, etc.) alongside its Next.js-based documentation site (docs/) and a large set of internal tooling packages under packages-internal/. Primary languages are TypeScript and JavaScript (JSX/TSX); components are built with Babel/Vite pipelines and tested with Vitest (node + browser via Playwright), Playwright E2E, and visual regression tests. A docs pipeline parses component source with react-docgen/Babel to generate API pages and translations into docs/pages and docs/data, and the site is deployed to Netlify via netlify.toml with serverless/edge functions. No databases or persistent datastores are present; the repo is a library + static documentation build.

Languages

TypeScriptJavaScriptMDX/Markdown

Frameworks

ReactNext.jsViteVitestPlaywrightBabelEmotion (peer-dep styling)@pigment-css/react

Infrastructure

Netlify (docs hosting, netlify.toml, serverless + edge functions)CircleCI (.circleci/config.yml)CodecovArgos visual regressionCrowdin (crowdin.yml)

Major components

packages/mui-material

The core Material UI React component library whose source (e.g., src/Button/Button.js) is parsed to generate API docs.

packages-internal/api-docs-builder-core

Project-specific settings connecting Material UI and MUI System packages to the shared API-docs generator, mapping components to API pages, demos, translations, and utility-class generation.

packages-internal/api-docs-builder

Generic API documentation engine that extracts props/classes/hooks from TypeScript entry points using Babel, react-docgen, and remark.

packages-internal/core-docs

Shared documentation building blocks (ApiPage rendering, translations, fonts) published as @mui/internal-core-docs with peer deps on MUI packages, Emotion, styled-components, and Next.

packages-internal/markdown

Markdown parsing/loading pipeline (prepareMarkdown, extractImports, Prism highlighting) used by the docs site to render demo pages.

docs/

The Next.js documentation website consuming generated API manifests (docs/data/material/pages.ts, pagesApi.js) and markdown content.

netlify/

Netlify serverless functions (deploy-succeeded, feedback-management) and an edge function (og-image.tsx) supporting deployment notifications, user feedback intake, and Open Graph image generation.

packages/mui-icons-material & packages/mui-codemod

Icon package with a builder script generating icon components (custom/legacy variants) and codemods for automated migrations.

The last five weeks on the MUI repository were dominated by routine dependency updates and infrastructure upkeep, punctuated by a steady stream of accessibility improvements across components like ButtonGroup, Tabs, Pagination, Tooltip, and Table. Two releases shipped (v9.3.0 and v9.3.1), alongside fixes for sticky transitions, prop merging in utils, and documentation cleanups including Traditional Chinese localization. The overall arc shows the team polishing quality-of-life details—especially keyboard and screen-reader support—while keeping tooling current.

Week by week

2026-08-24A quieter week focused almost entirely on dependency bumps and internal test/build tooling updates.latest6 changes

Chore

Test font loading unified

Tests now share a single font-loading helper from the internal test utilities package instead of duplicating logic.

Docs

Hidden carousel slides made non-focusable

Documentation templates no longer let keyboard users tab into links inside hidden carousel slides.

Chore

Docs tooling upgraded to TypeScript 6

The documentation build now uses the newer TypeScript 6 package for its tooling.

Chore

Vitest config modernized

The test runner configuration switched to ESM current-directory syntax for better compatibility.

Chore

Batch of dependency updates

Roughly a dozen libraries (pnpm, lerna, es-toolkit, postcss-import, Netlify functions, GitHub Actions, and more) were bumped to newer versions.

Chore

Website team page synced

The about page's list of team members was refreshed to match current staff.

2026-08-17A busy week mixing accessibility fixes across several components with a large wave of dependency upgrades.6 changes

Fix

ButtonGroup touch hover fix

Buttons in a group no longer show a stuck hover border after being tapped on touch devices.

Fix

Table screen-reader row count corrected

Tables now report the correct number of rows to assistive technology like screen readers.

Fix

Props merging fixed for function-based slot props

A utility that combines component settings now correctly merges slot properties defined as functions.

Docs

Tabs focus and keep-mounted examples

Tab panels are now focusable, and docs show examples of keeping inactive tab content mounted.

Chore

Accessibility testing harness improved

The automated accessibility regression checker gained an 'assertions' mode, and tests moved to Vitest's built-in expect instead of chai.

Docs

Banner link contrast fixed

The website announcement banner link was restyled so its focus outline meets contrast requirements for keyboard users.

2026-08-10Accessibility and polish took center stage, with Traditional Chinese localization completed and several website fixes.6 changes

Feature

Traditional Chinese localization complete

The library's translations for Traditional Chinese are now fully finished.

Fix

MenuList scrollbar padding preserved

Dropdown menus keep custom padding when space is reserved for a scrollbar instead of losing it.

Fix

Tooltip disabled-button support improved

Tooltips now work better when attached to disabled buttons, including keeping fake pointers away from them during tests.

Docs

Skip link moves focus properly

Using the website's 'skip to content' link now actually moves keyboard focus to the main content area.

Fix

Website WCAG fixes

Code copy buttons met accessibility criteria and a duplicated heading caused by an overline label was removed.

Chore

Font-load failures fail tests

Regression test runs now report an error if a web font fails to load rather than silently continuing.

2026-08-03Two releases went out (v9.3.0 and v9.3.1) alongside focus-management fixes for Pagination and a stuck-transition bug fix.6 changes

Feature

v9.3.0 and v9.3.1 released

Two new versions of the library shipped this week, bundling recent fixes and improvements.

Fix

Pagination focus management

When first/last/next/previous buttons become disabled, keyboard focus is automatically moved somewhere sensible.

Fix

Exit transitions no longer get stuck

Animations that play when elements disappear can no longer freeze partway through.

Fix

Codemod published correctly

The automated code-upgrade tool now includes all of its transformation scripts in the published package.

Fix

Select input focus style added

The dropdown used in table pagination now shows a visible focus style for keyboard users.

Chore

Security-related dependency bumps

PostCSS and other dependencies were updated, some specifically to address security issues.

2026-07-27Keyboard navigation came to ToggleButtonGroup while security-driven dependency updates and docs corrections filled out the week.6 changes

Feature

ToggleButtonGroup keyboard navigation

Toggle button groups now support roving tabindex, letting users move between buttons with arrow keys.

Docs

Grid v9 upgrade guide updated

The upgrade guide now documents that the Grid component's column direction option was removed in v9.

Fix

Design Kits redirect loop fixed

Visiting the Design Kits page no longer gets caught in an endless redirect.

Fix

Autocomplete adornment docs clarified

Documentation now explains how to add custom icons or elements at the start and end of autocomplete inputs.

Chore

Security dependency updates

Next.js and react-router were bumped specifically to address security vulnerabilities.

Refactor

eval() removed from codemod

The code-upgrade tooling no longer uses JavaScript's eval() function, which is safer and more predictable.

03 · Security check

Dependencies and code review

63 dependencies scanned

Dependency advisories

Security Watch

2 vulnerable packages (4 advisories) across 63 scanned dependencies.

warninghigh · npmfixed in 22.7.7

nx 22.7.6

1 advisory. Fixed in 22.7.7.

How it can be abusedIf the team runs its own self-hosted remote cache server for Nx, an attacker who can write to that cache could plant malicious archive entries with paths like ../../ to write files outside the intended folder when developers download cached build outputs, potentially placing code into the repo or CI machine that runs during later builds. Only projects using a self-hosted remote cache with untrusted contributors are affected.

warninghigh · npmfixed in 8.0.16

vite 8.0.0

3 advisories. Fixed in 8.0.16.

How it can be abusedAn attacker could trick a developer who is running this repo's Vite-powered dev server into visiting a malicious website, letting that site read arbitrary files from their machine through the dev server's WebSocket or file-access filters. Only developers working on the repo are affected; the published npm packages and the deployed documentation site are not exposed.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required