What changed in Material UI from 7 to 9

9 releases numbered after v7.3.11 up to and including v9.4.0, stable releases only. v7.3.11 and v9.4.0 are the newest stable releases of 7 and 9 we track; this page follows them as new ones ship.

100 changes across 9 releases

Added 16

v9.4.0

  • Add theme.focusVisible opt-in keyboard focus ring across components
  • Complete Traditional Chinese localization

v9.3.1

  • Add more unit tests for pagination

v9.3.0

  • Autocomplete announces its loading and no options messages through a new status slot
  • Form Control Label has missing labelPlacementEnd class
  • Menu Item includes aria-checked attribute for checkbox and radio menu items
  • Table Pagination adds focus style to default InputBase used in Select

v9.2.0

  • Add support for data-* attributes on slotProps
  • Add missing MuiPagination localization to zh-CN locale
  • Add opt-in DataAttributesOverrides augmentation for slot props

v9.1.1

  • Support turbopack for docs

v9.1.0

  • Support for the prefers-reduced-motion setting
  • Improved support for Windows High Contrast mode with the enhanceHighContrast theme wrapper
  • Custom Transition component support in transitions

v9.0.1

  • Add internal useFormControlState hook

v9.0.0

  • Add border to switch component to make it visible in high contrast mode
Changed 22

v9.4.0

  • Replace deprecated clip CSS property with clip-path
  • Use and document the row header cells in table

v9.3.0

  • Toggle Button Group keyboard navigation now follows the roving tabindex pattern
  • Button Group respects global disableRipple and disableFocusRipple settings in grouped buttons
  • Checkbox and Radio respect global disableRipple from MuiButtonBase defaultProps
  • Modal replaces custom findIndexOf with findIndex
  • v5.0.0/path-imports codemod transforms all style exports

v9.2.0

  • Improve Icon Dialog responsiveness on small screens

v9.1.1

  • Update Autocomplete fullWidth prop documentation
  • Server-render InitColorSchemeScript in tests for React 19.3
  • Update dependencies to resolve Dependabot security alerts
  • Pin StackBlitz demo vite to v7 and plugin-react to v5
  • Port codebase to use tsgo
  • Run link checker during docs build instead of as separate CI step

v9.1.0

  • Badge now uses inline CSS variables for anchorOrigin and overlap positioning
  • StepConnector is now included inside Step element
  • Stepper now has proper support for vertical alternativeLabel
  • Select now allows spacebar to select elements
  • Select now supports typeahead when closed
  • StepButton now chooses higher contrast ripple color for dark mode focus

v9.0.0

  • Use pointer events instead of mouse events in slider component
  • Improve transitions performance and apply miscellaneous fixes
Fixed 58

v9.4.0

  • Prevent sticky hover border on touch devices in buttongroup
  • Preserve custom list padding when adjusting for the scrollbar in menulist
  • Manage focus whenever first, last, next, or previous buttons become disabled in pagination
  • Improve support for disabled button triggers in tooltip
  • Fix resolveProps to correctly merge slotProps defined as functions
  • Fix types for components extended with styled in styled-engine-sc
  • Remove the aria-owns reference in autocomplete
  • Fix wrong number of rows reported to screen readers in table
  • Make tab panel focusable and show keep mounted examples in tabs
  • Remove focusable links from hidden carousel slides in templates
  • Manage focus on Open in Chat button click in docs
  • Move focus to the main content with the skip link in docs

v9.3.1

  • Prevent exit transitions from getting stuck in transitions
  • Include transforms in published package for codemod

v9.3.0

  • Fix typos in List Item Button component code
  • Modal and Dialog fix scrollbar compensation in Shadow DOM
  • Select fixes endAdornment overlapping the open indicator
  • Prevent prototype pollution in cssVarsParser
  • Codemod v5.0.0/path-imports does not leak state between files

v9.2.0

  • Guard display ref during mouse down in select component
  • Fix invalid UTF-8 in skill references

v9.1.2

  • Don't submit forms when committing freeSolo value with Enter key in autocomplete
  • Fix RTG import in ESM for transitions
  • Fix script tag warning in Next.js 16 dev mode in InitColorSchemeScript
  • Fix code-block copy button broken on direct page load

v9.1.1

  • Fix focus ripple lingering after blur in ButtonBase
  • Mount child in Transition in same commit when opening from unmounted
  • Prevent enableCssLayer styles from being overridden by unlayered styles in styled-engine
  • Fix immutable cache headers for /_next/static assets in docs-infra

v9.1.0

  • Autocomplete now clears highlight when mouse leaves popup
  • Autocomplete freeSolo controlled values no longer cleared by initial null
  • Autocomplete item removal when it receives focus from VoiceOver before using Backspace
  • Autocomplete guard against null inputRef during unmount
  • Button customized flex gap styles
  • Dialog unwanted DialogPaper focus ring
  • Focus trap incorrect tab order when tabIndex is greater than or equal to 1
  • Progress show runtime errors only once
  • Tabs React 18 roving tabindex and dedupe invalid-value warning
  • Timeline item extra ::before spacing when TimelineOppositeContent is present
  • Tooltip prevent stuck-open tooltip when child becomes disabled

v9.0.1

  • Fix highlight sync and scroll preservation in Autocomplete
  • Fix input value and clear in Autocomplete
  • Fix iOS group scrollbar overflow in Autocomplete
  • Fix popper rendering issues in Autocomplete
  • Improve highlight tracking and selection state in Autocomplete
  • Fix startIcon alignment in Button
  • Remove duplicated className entries in Button, Button Base, FAB, Menu Item, and List Item Button
  • Set aria-checked=mixed when Checkbox is indeterminate
  • Fix initial focus target in Dialog, Drawer, and Focus Trap
  • Fix swipe close flicker in Drawer
  • Fix transition jump in Drawer
  • Fix layout shift with display: flex in Input
  • Prevent notched prop leaking into DOM in Input
  • Place aria-label on the input element in Input Base
  • Fix autofocus in SSR environment in Inputs
  • Fix sticky subheader overlapping iOS scrollbar in List
  • Persist positioning styles when popperOptions changes reference in Popper
  • Stop using combobox element for labeling in Select
Removed 3

v9.3.0

  • Codemod removes use of eval()

v9.0.1

  • Remove IE 11-specific focus safety check from FocusTrap cleanup

v9.0.0

  • Remove unnecessary overridesResolvers from styled components
Security 1

v9.1.0

  • Prevent prototype pollution in fastDeepAssign

Original release notes, newest first

The list above is our reading of these notes; the originals from MUI are here, one fold per release.

v9.4.0

A big thanks to the 19 contributors who made this release possible. Here are some highlights ✨:

  • ♿️ Opt in to a consistent keyboard focus ring across components with the new theme.focusVisible.
  • ♿️ The Tooltip now supports disabled button triggers without an extra wrapper element.
@mui/material@9.4.0
  • [theme] Add theme.focusVisible opt-in keyboard focus ring (#48743) @siriwatknp
  • [buttongroup] Prevent sticky hover border on touch devices (#48993) @petr-kratochvil
  • [l10n] Complete Traditional Chinese localization (#48946) @nrps9909
  • [menulist] Preserve custom list padding when adjusting for the scrollbar (#48707) @creazyfrog
  • [pagination] Manage focus whenever first / last / next / previous buttons become disabled (#48877) @silviuaavram
  • [tooltip] Improve support for disabled button triggers (#48622) @mayank99
@mui/utils@9.4.0
  • Fix resolveProps to correctly merge slotProps defined as functions (#48955) @mnajdova
  • Replace deprecated clip CSS property with clip-path (#48966) @ZeeshanTamboli
@mui/styled-engine-sc@9.4.0
  • Fix types for components extended with styled (#45988) @megos
Docs
  • Bump @docsearch/react to ^4.7.0 (#48886) @LukasTy
  • Fix broken links reported by Ahrefs (#48949) @brijeshb42
  • Manage focus on Open in Chat button click (#48942) @silviuaavram
  • Move focus to the main content with the skip link (#48944) @lazerg
  • Use relative link for LICENSE in README (#49040) @loulanyue
  • [autocomplete] Remove the "aria-owns" reference (#48958) @silviuaavram
  • [table] Fix wrong number of rows reported to screen readers (#47653) @seomsoo
  • [table] Reference DataGrid link in the row header section (#48988) @silviuaavram
  • [table] Use and document the row header cells (#48965) @silviuaavram
  • [tabs] Make tab panel focusable and show keep mounted examples (#48939) @silviuaavram
  • [templates] Remove focusable links from hidden carousel slides (#49003) @gonzoblasco
Core
  • [code-infra] Fix team sync review requests (#48914) @brijeshb42
  • [code-infra] Import the test globals from vitest (#49033) @JCQuintas
  • [code-infra] Point the support validator link at frontend-public (#49041) @Janpot
  • [code-infra] Update CircleCI orb (#49030) @Janpot
  • [code-infra] Use ESM current directory syntax for Vitest config (#49032) @ZeeshanTamboli
  • [core] Use @typescript/typescript6 for the docs tooling (#49025) @Janpot
  • [core-docs] Remove the globalSelector stylis middleware (#49029) @Janpot
  • [test] Add an assertions mode to the axe regression harness (#48915) @michelengelen
  • [test] Automate the CSS-dependent WCAG criteria (#48936) @michelengelen
  • [test] Fail the regression run when a webfont does not load (#48948) @LukasTy
  • [test] Fix typo 'overriden' -> 'overridden' in Alert test comment (#48987) @FirmaSpring
  • [test] Replace webfontloader with the CSS Font Loading API (#48995) @LukasTy
  • [test] Skip the CrudDashboard VRT on React 18 (#49027) @Janpot
  • [test] Use the shared loadFonts from @mui/internal-test-utils (#49007) @LukasTy
  • [test] Use the Vitest global expect instead of importing chai (#48996) @JCQuintas
  • [test][tooltip] Keep the disabled trigger away from the real pointer (#48947) @LukasTy

All contributors of this release in alphabetical order: @brijeshb42, @creazyfrog, @FirmaSpring, @gonzoblasco, @Janpot, @JCQuintas, @lazerg, @loulanyue, @LukasTy, @mayank99, @megos, @michelengelen, @mnajdova, @nrps9909, @petr-kratochvil, @seomsoo, @silviuaavram, @siriwatknp, @ZeeshanTamboli

View originalPermalink

v9.3.1

A big thanks to the 4 contributors who made this release possible.

@mui/material@9.3.1
  • [transitions] Prevent exit transitions from getting stuck (#48881) @ZeeshanTamboli
@mui/codemod@9.3.1
  • Include transforms in published package (#48934) @brijeshb42
Core
  • [blog] Clarify early bird renewal discount scope (#48906) @DanailH
  • [test][pagination] Add more unit tests (#48927) @silviuaavram

All contributors of this release in alphabetical order: @brijeshb42, @DanailH, @silviuaavram, @ZeeshanTamboli

View originalPermalink

v9.3.0

A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨:

  • ♿️ Keyboard navigation in the Toggle Button Group now follows the roving tabindex pattern.
  • ♿️ The Autocomplete announces its loading and no options messages through a new status slot.
@mui/material@9.3.0
  • [autocomplete] Wrap the no results and loading messages in an aria live region (#48690) @silviuaavram
  • [buttongroup] Respect global disableRipple / disableFocusRipple in grouped buttons (#48762) @siriwatknp
  • [checkbox][radio] Respect global disableRipple from MuiButtonBase defaultProps (#48795) @siriwatknp
  • [formcontrollabel] Add missing labelPlacementEnd class (#48843) @siriwatknp
  • [listitembutton] Fix typos in component code (#48868) @ZeeshanTamboli
  • [menuitem] Add aria-checked for checkbox and radio menu items (#48651) @siriwatknp
  • [modal] Replace custom findIndexOf with findIndex (#48827) @ZeeshanTamboli
  • [modal][dialog] Fix scrollbar compensation in Shadow DOM (#48826) @ZeeshanTamboli
  • [select] Fix endAdornment overlapping the open indicator (#48723) @siriwatknp
  • [tablepagination] Add focus style to default InputBase used in Select (#48871) @silviuaavram
  • [togglebuttongroup] Add roving tabindex keyboard navigation (#48849) @silviuaavram
@mui/system@9.3.0
  • Prevent prototype pollution in cssVarsParser (#48822) @Janpot
@mui/codemod@9.3.0
  • Don't leak state between files in v5.0.0/path-imports (#48797) @manbearwiz
  • Remove use of eval() (#48701) @oliviertassinari
  • Transform all style exports in v5.0.0/path-imports codemod (#48800) @manbearwiz
Docs
  • Clarify container prop inheritance for Shadow DOM (#48670) @Juan-C-Ceballos
  • Clarify third-party script risk in CSP unsafe-inline note (#48787) @Janpot
  • Document box-sx-prop codemod (#48888) @SR0725
  • Document Grid direction column removal in v9 upgrade guide (#48880) @kalayciburak
  • Fix color contrast in GitHub labels example (#48844) @silviuaavram
  • Fix per-page canonical URL and stale SEO link (#48789) @brijeshb42
  • Fix redirect loop on the Design Kits page (#48869) @Janpot
  • Fix typo 'overriden' -> 'overridden' in CHANGELOG (#48785) @ZhouYinLong-lab
  • Improve TransferList examples (#48845) @silviuaavram
  • Link a new theme generator tool (#48847) @mansourcodes
  • Remove broken learning resource links (#48598) @morning-verlu
  • Update the 9.2.0 changelog (#48763) @silviuaavram
  • [autocomplete] Clarify how to render custom start and end adornments (#48883) @DebadityaHait
  • [drawer] Clarify clipped AppBar spacing (#48887) @rushijagani-dev
  • [menu] Fix stale selected prop reference in Selected menu section (#48879) @LukasTy
  • [skeleton] Document preserving typography sizing with custom border radius (#48596) @meaqua9420
Core
  • [blog] Fix caret annotation broken by Prettier wrapping (#48884) @bernardobelchior
  • [code-infra] Automate team sync on about page (#48794) @brijeshb42
  • [code-infra] Bump @mui/internal-code-infra to 0.0.4-canary.101 (#48878) @Janpot
  • [code-infra] Fix Dependabot alerts (#48756) @Janpot
  • [code-infra] Fix team sync PR creation (#48911) @brijeshb42
  • [code-infra] Pin node version in publish CI (#48799) @brijeshb42
  • [core-docs] Tighten service worker host check (#48581) @Janpot
  • [docs-infra] Change branch name to the allowed one (#48910) @brijeshb42

All contributors of this release in alphabetical order: @bernardobelchior, @brijeshb42, @DebadityaHait, @Janpot, @Juan-C-Ceballos, @kalayciburak, @LukasTy, @manbearwiz, @mansourcodes, @meaqua9420, @morning-verlu, @oliviertassinari, @rushijagani-dev, @silviuaavram, @siriwatknp, @SR0725, @ZeeshanTamboli, @ZhouYinLong-lab

View originalPermalink

v9.2.0

A big thanks to the 9 contributors who made this release possible.

@mui/material@9.1.3
  • [l10n] Add missing MuiPagination localization to zh-CN locale (#48741) @greymoth-jp
  • [select] Guard display ref during mouse down (#48744) @michelengelen
@mui/utils@9.1.3
  • [utils] Add opt-in DataAttributesOverrides augmentation for slot props (#48554) @LukasTy
Docs
  • [docs] Improve Icon Dialog responsiveness on small screens (#48639) @Prakash1185
  • [docs] Fix invalid UTF-8 in skill references (#48739) @mturac
Core
  • [code-infra] Resolve Renovate dashboard warnings (#48700) @Sushantplive
  • [code-infra] Validate npm publishing through dry run (#48691) @brijeshb42
  • [code-infra] Run prettier after renovate update (#48754) @Janpot
  • [code-infra] Fix 'A11y results committed?' check on react-pinned nightly jobs (#48740) @Janpot
  • [core] Remove leftover Joy UI references (#48719) @siriwatknp
  • [code-infra] Bump react-router to 7.15.1 (#48725) @Janpot
  • [docs-infra] Drive docs analytics IDs via ANALYTICS_ENV (#48694) @Janpot
  • [docs-infra] Pre-render API page descriptions (#48693) @brijeshb42
  • [code-infra][icons-material] Build lib/package.json with code-infra --no-expand (#48689) @Janpot
  • [code-infra] Fix react@18/next nightly workflow (#48635) @Janpot

All contributors of this release in alphabetical order: @brijeshb42, @greymoth-jp, @Janpot, @LukasTy, @michelengelen, @mturac, @Prakash1185, @siriwatknp, @Sushantplive

View originalPermalink

v9.1.2

A big thanks to the 5 contributors who made this release possible.

@mui/material@9.1.2
  • [autocomplete] Don't submit forms when committing freeSolo value with Enter key (#48679) @mj12albert
  • [transitions] Fix RTG import in ESM (#48645) @mj12albert
@mui/system@9.1.2
  • [InitColorSchemeScript] Fix script tag warning in Next.js 16 dev mode (#48671) @siriwatknp
Docs
  • Fix typos in release instructions (#48687) @brijeshb42
  • Update @mui/x-* packages to latest (#48661) @Janpot
Core
  • [code-infra] Convert leaf @mui/system .js+.d.ts pairs to TypeScript (part 1) (#48578) @Janpot
  • [code-infra] Bump to latest code-infra packages (#48672) @brijeshb42
  • [code-infra] Resolve remaining minimatch advisory (#48662) @Janpot
  • [code-infra] Bump nx to resolve minimatch advisory (#48658) @Janpot
  • [core] Drop @babel/* pnpm overrides (#48710) @Janpot
  • [docs-infra] Revert "Pin StackBlitz demo vite to v7 and plugin-react to v5" (#48709) @Janpot
  • [docs-infra] Fix code-block copy button broken on direct page load (#48653) @brijeshb42
  • [test] Stabilize Data Grid demo data in Argos screenshots (#48654) @LukasTy

All contributors of this release in alphabetical order: @brijeshb42, @Janpot, @LukasTy, @mj12albert, @siriwatknp

View originalPermalink

v9.1.1

A big thanks to the 9 contributors who made this release possible.

@mui/material@9.1.1
  • [Autocomplete] Update fullWidth prop documentation (#48626) @vipin8797
  • [ButtonBase] Fix focus ripple lingering after blur (#48650) @siriwatknp
  • [InitColorSchemeScript] Server-render in tests for React 19.3 (#48604) @Janpot
  • [Transition] Mount child in same commit when opening from unmounted (#48649) @siriwatknp
@mui/styled-engine@9.1.1
  • [styled-engine] Prevent enableCssLayer styles from being overridden by unlayered styles (#48603) @Janpot
Docs
  • Send SOURCE to Brevo on newsletter subscribe (#48633) @aemartos
  • fix TypeScript heading capitalization (#48619) @ifer47
  • Remove outdated security section (#48628) @oliviertassinari
  • [legal] Update EULA links on website (#48642) @rluzists1
Core
  • Update dependencies to resolve Dependabot security alerts (#48641) @Janpot
  • [core-docs] Pin StackBlitz demo vite to v7 and plugin-react to v5 (#48643) @Janpot
  • [code-infra] Port codebase to use tsgo (#48616) @brijeshb42
  • [docs-infra] Fix immutable cache headers for /_next/static assets (#48655) @brijeshb42
  • [docs-infra] Run link checker during docs build instead of as separate CI step (#48634) @Janpot
  • [docs-infra] Support turbopack for docs (#48569) @brijeshb42
  • [test] Cover docs landing-page composites with Argos (#48589) @LukasTy

All contributors of this release in alphabetical order: @aemartos, @brijeshb42, @ifer47, @Janpot, @LukasTy, @oliviertassinari, @rluzists1, @siriwatknp, @vipin8797

View originalPermalink

v9.1.0

A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:

@mui/material@9.1.0
  • [autocomplete] Enable clearing highlight when mouse leaves popup (#48354) @mj12albert
  • [autocomplete] Fix freeSolo controlled values cleared by initial null (#48611) @mj12albert
  • [autocomplete] Fix item removal when it receives focus from VoiceOver before using Backspace (#48572) @silviuaavram
  • [autocomplete] Fix resetHighlightOnMouseLeave JSdoc (#48536) @mj12albert
  • [autocomplete] Guard against null inputRef during unmount (#48617) @noam3127
  • [badge] Add aria-hidden to badge content and polish docs demos (#48471) @mj12albert
  • [badge] Use inline CSS variables for anchorOrigin/overlap positioning (#48549) @siriwatknp
  • [button] Fix customized flex gap styles (#48542) @mj12albert
  • [dialog] Fix unwanted DialogPaper focus ring (#48535) @mj12albert
  • [focus trap] Fix incorrect tab order when tabIndex >= 1 (#48546) @mj12albert
  • [progress] Show runtime errors only once (#48591) @silviuaavram
  • [select] Allow spacebar to select elements (#48615) @silviuaavram
  • [select] Support typeahead when closed (#48563) @mj12albert
  • [step button] Choose higher contrast ripple color for dark mode focus (#48612) @silviuaavram
  • [stepper] Include StepConnector inside Step element (#48492) @silviuaavram
  • [stepper] Proper support for vertical alternativeLabel (#48485) @silviuaavram
  • [tabs] Fix React 18 roving tabindex and dedupe invalid-value warning (#48605) @Janpot
  • [theme] Add HighContrast theme enhancer (#48319) @silviuaavram
  • [timeline item] Fix extra ::before spacing when TimelineOppositeContent is present (#46663) @tyalau
  • [tooltip] Prevent stuck-open tooltip when child becomes disabled (#48606) @Janpot
  • [transitions] Custom Transition component (#48325) @mj12albert
  • [transitions] Support prefers-reduced-motion (#48357) @mj12albert
@mui/utils@9.1.0
  • [utils] Prevent prototype pollution in fastDeepAssign (#48580) @Janpot
Docs
  • [docs] Add function slotProps documentation (#48574) @mj12albert
  • [docs] Clarify styled-components version compatibility (#48533) @nightt5879
  • [docs] Fix broken URLs (#48520) @oliviertassinari
  • [docs] Fix invalid JSON in Zed MCP setup example (#48490) @pavan-sh
  • [docs] Mention release version for enhanceHighContrast (#48609) @silviuaavram
  • [docs] Remove outdated MUI X v8 notification (#48600) @cherniavskii
  • [docs] Remove redundant enhanceHighContrast information (#48632) @silviuaavram
  • [docs-infra] Decrease loaded bundle size on docs (#48584) @brijeshb42
  • [docs-infra] Drop multi-locale plumbing from API pages (#48370) @brijeshb42
  • [docs-infra] Fix Cookie banner heading (#48529) @oliviertassinari
  • [docs-infra] Infinitely cache all static assets (#48627) @brijeshb42
  • [docs-infra] Remove outdated noSEOadvantage entries (#48527) @oliviertassinari
  • [docs-infra] Restore build-only invariant throws via NEXT_RUNTIME guard (#48475) @Janpot
  • [docs-infra] Test HTML validation in broken links checker (#48088) @Janpot
  • [docs][icons] Fix Font Awesome Chip demo in dark mode (#48576) @siriwatknp
  • [docs][icons] Remove redundant font awesome demo (#48493) @ZeeshanTamboli
  • [docs][modal] Add nested modal guidance (#46507) @JakeSaterlay
  • [docs][stepper] Fix focus management in examples (#48494) @silviuaavram
Core
  • Eslint markdown (#48371) @Janpot
  • [agents] Fix some docs links (#48561) @silviuaavram
  • [blog] Copy editing improvement on v9 announcement blog posts (#48543) @joserodolfofreitas
  • [code-infra] Cleanup unused jss packages (#48590) @brijeshb42
  • [code-infra] Collapse canary workflows into nightly and nightly-cron (#48556) @Janpot
  • [code-infra] Convert @mui/private-theming to TypeScript (#48565) @Janpot
  • [code-infra] Convert @mui/styled-engine to TypeScript (#48544) @Janpot
  • [code-infra] Convert @mui/styled-engine-sc to TypeScript (#48577) @Janpot
  • [code-infra] Fix duplicate resource_class in test_regressions CI job (#48601) @LukasTy
  • [code-infra] Make @mui/internal-docs-utils compatible with TypeScript 6 (#48594) @Janpot
  • [code-infra] Migrate CircleCI jobs to Gen2 resource classes (#48593) @LukasTy
  • [code-infra] Parallelize visual regression screenshots (#48557) @Janpot
  • [code-infra] Run nightly-cron on v7.x (#48579) @Janpot
  • [core] Fix typescript@next typecheck (#48587) @Janpot
  • [pnpm] Add security settings to pnpm-workspace.yaml (#48582) @Janpot
  • [styled-engine-sc] Fix compatibility with Vite and Vitest (#48558) @mj12albert
  • [test] Add axe-core tests for mui-material (#48341) @siriwatknp
  • [test] Configure Tailwind CSS in the visual-regression app (#48575) @Janpot

All contributors of this release in alphabetical order: @brijeshb42, @cherniavskii, @JakeSaterlay, @Janpot, @joserodolfofreitas, @LukasTy, @mj12albert, @nightt5879, @noam3127, @oliviertassinari, @pavan-sh, @silviuaavram, @siriwatknp, @tyalau, @ZeeshanTamboli

View originalPermalink

v9.0.1

A big thanks to the 25 contributors who made this release possible.

@mui/material@9.0.1
  • [accessibility] HighContrast mode on Avatar, Badge, Slider and Switch (#48320) @silviuaavram
  • [autocomplete] Fix highlight sync and scroll preservation (#48322) @mj12albert
  • [autocomplete] Fix input value and clear (#48263) @mj12albert
  • [autocomplete] Fix iOS group scrollbar overflow (#48400) @oliviertassinari
  • [autocomplete] Fix popper rendering issues (#48327) @mj12albert
  • [autocomplete] Improve highlight tracking and selection state (#48219) @mj12albert
  • [button] Fix startIcon alignment (#48332) @mj12albert
  • [button][button base] Document type attribute (#48146) @mj12albert
  • [button][fab][menu item][list item button] Remove duplicated className entries (#48213) @silviuaavram
  • [checkbox] Set aria-checked=mixed when indeterminate (#48147) @mj12albert
  • [circularprogress][linearprogress] Improve accessibility (#48172) @silviuaavram
  • [dialog][drawer][focus trap] Fix initial focus target (#48280) @mj12albert
  • [drawer] Fix swipe close flicker (#48372) @mj12albert
  • [drawer] Fix transition jump (#48308) @mj12albert
  • [focus trap] Remove IE 11-specific focus safety check from FocusTrap cleanup (#48368) @ZeeshanTamboli
  • [form controls] Add internal useFormControlState hook (#48344) @mj12albert
  • [icon button] Remove unused color palette mapping in styles (#48353) @sai6855
  • [icons] Revert to using wildcard export paths (#48381) @brijeshb42
  • [input] Fix layout shift with display: flex (#43839) @oliviertassinari
  • [input] Prevent notched prop leaking into DOM (#48281) @mj12albert
  • [input base] Place aria-label on the input element (#48283) @silviuaavram
  • [inputs] Fix autofocus in SSR environment (#48290) @mj12albert
  • [List] Fix sticky subheader overlapping iOS scrollbar (#48375) @sandeshdamkondwar
  • [popper] Persist positioning styles when popperOptions changes reference (#48121) @mj12albert
  • [select] Stop using combobox element for labeling (#48251) @silviuaavram
  • [select] Support single-pointer-cycle selection and pointer cancellation (#48328) @mj12albert
  • [switch] Fix incorrect role with slotProps.input (#48469) @mj12albert
  • [tabs] Fix scrollable tabs blocking pointer events (#48166) @mj12albert
  • [textfield] Fix autofill styles always in dark mode when CSS variables is used (#48244) @ZeeshanTamboli
  • [tooltip] Simplify RTL styles using CSS logical properties (#48351) @sai6855
  • [tooltip] Close Tooltip when its child becomes disabled (#44507) @chudesno
  • [typography] Fix h4 variant when using responsiveFontSizes() (#48314) @mj12albert
  • [useMediaQuery] Fix crash in Firefox extension (#45196) @Mr-Quin
@mui/system@9.0.1
  • [system] Fix theme mutation when using responsive typography shorthand in sx (#48266) @tomups
@mui/codemod@9.0.1
  • [codemod] Add --jsx option to v9.0.0/system-props codemod (#48315) @siriwatknp
  • [codemod] Add packageName support to the v9 system props codemod (#48253) @franco-dias
@mui/utils@9.0.1
  • [utils] Add shadow dom utils (#48256) @mj12albert
  • [utils] Fix resolveProps receiving empty string className (#48289) @SAY-5
  • [utils] Remove unnecessary excludeKeys from extractEventHandlers (#48481) @ZeeshanTamboli
Docs
  • [docs][autocomplete] Add demo with Tanstack Query useInfiniteQuery (#48356) @mj12albert
  • [docs] Add agent skills for styling, theming, Next.js, and Tailwind CSS integrations (#48187) @mapache-salvaje
  • [docs] Cleanup @mui/base (#48278) @mj12albert
  • [docs] Fix create-playground script (#48380) @imazizbohra
  • [docs] Fix date range calendar demo after MUI X v9 update (#48262) @LukasTy
  • [docs] Fix icon search modal (#48255) @mj12albert
  • [docs] Fix Material UI and MUI system "Upgrade to v9" docs (#48245) @ZeeshanTamboli
  • [docs] Fix Popover JSdoc (#48310) @nitzan-treg
  • [docs] Fix RTL toggle highlight in docs settings drawer (#48476) @sai6855
  • [docs] Fix typos (#48155) @ayushshukla1807
  • [docs] Fix typos (#48270) @pavan-sh
  • [docs] Fix versions page (#48261) @mnajdova
  • [docs] Fix vision grammar (#48477) @pavan-sh
  • [docs] Improve accessibility for select examples (#48250) @silviuaavram
  • [docs] Improve CSP guide with required directives (#48258) @Janpot
  • [docs] Link to agent skills in relevant docs (#48387) @mapache-salvaje
  • [docs] Make NumberField described by helper text (#48257) @silviuaavram
  • [docs] Remove esm.sh references and endorsement (#44649) (#48330) @starboyvarun
  • [docs] Remove generated CSS utility component doc (#48383) @mj12albert
  • [docs] Remove incorrect message from experiments page and hide /experiments from crawlers (#48297) @ZeeshanTamboli
  • [docs] Remove outdated references of .ttf and .woff (#48399) @oliviertassinari
  • [docs] Restore wider maxWidth for disableToc pages (#48260) @LukasTy
  • [docs] Show v9 announcement banner (#48242) @mnajdova
  • [docs] Sync team members from frontend-public endpoint (#48273) @Janpot
  • [docs] Update AGENTS.md testing section (#48392) @mj12albert
  • [docs] Update e2e test README and test error message (#48285) @ZeeshanTamboli
  • [docs] Update menu examples to always have aria-expanded (#48211) @silviuaavram
  • [docs] Update MUI Treasury links (#47760) @siriwatknp
  • [docs] Update MUI X dependencies to v9.0.0 (#48231) @siriwatknp
  • [docs] Update MUI X roadmap section (#48316) @siriwatknp
  • [docs] Update WCAG links and version from 2.1 to 2.2 (#48379) @mj12albert
  • [docs] Use React.useId() for demo IDs (#48300) @Janpot
Core
  • [blog] Introducing Material UI and MUI X v9 (#48157) @joserodolfofreitas
  • [code-infra] bundle size check internal core docs (#48390) @Janpot
  • [code-infra] Deduplicate vale script (#48385) @brijeshb42
  • [code-infra] Fix type shadowing (#48389) @Janpot
  • [code-infra] Migrate to vite from webpack for e2e tests (#48248) @brijeshb42
  • [code-infra] Remove a few ts-ignore comments (#43265) @Janpot
  • [code-infra] Remove no longer needed eslint-import-resolver-webpack package (#48207) @ZeeshanTamboli
  • [code-infra] Remove references to @mui/base and @mui/joy (#48358) @brijeshb42
  • [code-infra] Use vale rules from code-infra package (#48173) @brijeshb42
  • [core] Remove next.mui.com links (#48240) @mnajdova
  • [core-docs] Use type-only imports for type-only references (#48386) @JCQuintas
  • [docs-infra] Add x-chat to MuiProductId type and product switcher (#48209) @hasdfa
  • [docs-infra] Fix duplicate JSDoc in proptypes generation (#48304) @brijeshb42
  • [docs-infra] Fix duplicate JSDoc in proptypes generation for merged declarations (#48296) @brijeshb42
  • [docs-infra] Fix import of cjs react-simple-code-editor in esm (#48349) @brijeshb42
  • [docs-infra] Fix tab index on Base UI tab (#48345) @brijeshb42
  • [docs-infra] Migrate docs app container/frame components (#48182) @brijeshb42
  • [docs-infra] Migrate MarkdownDocs component to docs package (#48227) @brijeshb42
  • [docs-infra] Re-apply changes from previous revert (#48243) @brijeshb42
  • [docs-infra] Remove infra around the i18n setup (#48360) @brijeshb42
  • [docs-infra] Rename package to @mui/internal-api-docs-builder (#48230) @brijeshb42
  • [docs-infra] Revert JSDoc in proptypes generation for merged declarations (#48301) @brijeshb42
  • [docs-infra] Revert Migrate docs app container/frame components (#48239) @brijeshb42
  • [docs-infra] Revert Migrate MarkdownDocs component to docs package (#48238) @brijeshb42
  • [internal] Add missing #host-reference (#48226) @silviuaavram
  • [internal] Move changelog and update security page for post v9 release (#48298) @siriwatknp
  • [internal] Remove outdated .woff files (#48398) @oliviertassinari
  • [test] Fix autocomplete test description (#48395) @ZeeshanTamboli

All contributors of this release in alphabetical order: @ayushshukla1807, @brijeshb42, @chudesno, @franco-dias, @hasdfa, @imazizbohra, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @mapache-salvaje, @mj12albert, @mnajdova, @Mr-Quin, @nitzan-treg, @oliviertassinari, @pavan-sh, @sai6855, @sandeshdamkondwar, @SAY-5, @silviuaavram, @siriwatknp, @starboyvarun, @tomups, @ZeeshanTamboli

View originalPermalink

v9.0.0

🥳 We're excited to announce the stable release of Material UI v9.0! This major release focuses on accessibility improvements, sx prop performance, and cleanup of deprecated APIs. See the Material UI v9.0 announcement blog posts for more details. Also see the MUI v9 announcement blog posts for the broad ecosystem updates.

Check out the upgrade guide to see how you can move to this version.

@mui/material@9.0.0
  • [slider] Use pointer events instead of mouse events (#48164) @mj12albert
  • [switch] Add border to make it visible in high contrast mode (#48180) @silviuaavram
  • [transitions] Performance improvements & misc fixes (#48151) @mj12albert
  • Remove unnecessary overridesResolvers from styled components (#48204) @sai6855
Core
  • [code-infra] Setup workflow to publish internal packages (#47952) @brijeshb42
  • [core-docs] Add x-scheduler to MuiProductId type (#48185) @rita-codes
  • [docs-infra] Add scheduler to product switcher (#48208) @rita-codes
  • [internal] Prepare libraries for v9 stable release (#48206) @siriwatknp

🙇‍♂️ We'd like to extend a big thank you to everyone involved who made this major release possible.

View originalPermalink