mui/material-ui
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
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
Frameworks
Infrastructure
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.
A quieter week focused almost entirely on dependency bumps and internal test/build tooling updates.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quieter week focused almost entirely on dependency bumps and internal test/build tooling updates.
Week of 2026-08-17
A busy week mixing accessibility fixes across several components with a large wave of dependency upgrades.
Week of 2026-08-10
Accessibility and polish took center stage, with Traditional Chinese localization completed and several website fixes.
Week of 2026-08-03
Two releases went out (v9.3.0 and v9.3.1) alongside focus-management fixes for Pagination and a stuck-transition bug fix.
Week of 2026-07-27
Keyboard navigation came to ToggleButtonGroup while security-driven dependency updates and docs corrections filled out the week.
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.
Dependencies and code review
Dependency advisories
Security Watch
2 vulnerable packages (4 advisories) across 63 scanned dependencies.
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.
- highGHSA-vp3h-ghgh-jr7gNx: Zip-Slip in the self-hosted remote cache
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.
- highGHSA-fx2h-pf6j-xcffvite: `server.fs.deny` bypass on Windows alternate paths
- highGHSA-p9ff-h696-f583Vite Vulnerable to Arbitrary File Read via Vite Dev Server WebSocket
- highGHSA-v2wj-q39q-566rVite: `server.fs.deny` bypassed with queries
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