Context
Material UI v9 (skipping v8 to align with MUI X) will remove deprecated APIs. MUI X v9 must work with both MUI v7 and v9.
All new slots/slotProps APIs have been verified to exist in MUI v7, so migrating is safe for dual-version compatibility.
For cases where MUI v9 changes the shape of callback params (e.g. Autocomplete renderInput), MUI X can use the existing version-branching pattern: import { major as materialMajor } from '@mui/material/version' (see PickerFieldUI.tsx).
Phases
| Phase |
Scope |
Complexity |
Risk |
Effort |
| 1 |
Docs demos |
Low |
Low |
~2h |
| 2 |
Data Grid material adapter + grid generator |
Medium |
Medium |
~4h |
| 3 |
Scheduler Dialog slot migration |
Low |
Low |
~1h |
| 4 |
Pickers: Dialog/Snackbar slots + PickersTextField public API |
High |
High |
~1-2 days |
Popper TransitionProps — No action needed
Popper's TransitionProps in the render callback is NOT deprecated. Only Popper's root-level components/componentsProps are deprecated, and MUI X doesn't use those.
Already clean (not found in codebase)
- Deprecated composed CSS classes
- System props on Box/Typography/Stack
- BackdropComponent/BackdropProps, PopperComponent/PopperProps on Tooltip
- titleTypographyProps/subheaderTypographyProps on CardHeader
- imgProps on Avatar
- Theme variants placement
Context
Material UI v9 (skipping v8 to align with MUI X) will remove deprecated APIs. MUI X v9 must work with both MUI v7 and v9.
All new
slots/slotPropsAPIs have been verified to exist in MUI v7, so migrating is safe for dual-version compatibility.For cases where MUI v9 changes the shape of callback params (e.g. Autocomplete
renderInput), MUI X can use the existing version-branching pattern:import { major as materialMajor } from '@mui/material/version'(seePickerFieldUI.tsx).Phases
Popper TransitionProps — No action needed
Popper's
TransitionPropsin the render callback is NOT deprecated. Only Popper's root-levelcomponents/componentsPropsare deprecated, and MUI X doesn't use those.Already clean (not found in codebase)