Skip to content
+

Supported components

The following is a list of Material Design components & features.

While we strive to follow the Material Design guidelines where practical (applying common sense where guidelines contradict - a more common occurrence than one might expect), we do not expect to support every component, nor every feature of every component, but rather to provide the building blocks to allow developers to create compelling user interfaces and experiences.

If you wish to add support for a component or feature not highlighted here, please search for the relevant GitHub Issue, or create a new one to discuss the approach before submitting a pull request.

ComponentsMaterial DesignMaterial UI

Accordion

MD 1 (legacy)Native support

Alert

No guidelinesNative support

App Bar: top

MD 2Native support

App Bar: bottom

MD 2Native support

Autocomplete

No guidelinesNative support

Banner

MD 2Composable

Avatar

No guidelinesNative support

Badge

No guidelinesNative support

Bottom Navigation

MD 2Native support

Breadcrumbs

No guidelinesNative support

Button

MD 2Native support

Floating Action Button

MD 2Native support

Button Group

No guidelinesNative support

Card

MD 2Native support

Checkbox

MD 2Native support

Chip

MD 2Native support

Data Grid

MD 2Support in MUI X

Date Pickers

MD 2Support in MUI X

Dialog

MD 2Native support

Divider

MD 2Native support

Drawer

MD 2Native support

Icons

MD 2Native support

Image List

MD 2Native support

Link

No guidelinesNative support

List

MD 2Native support

Masonry

No guidelinesNative support

Material Icons

MD 2Native support

Menu

MD 2Native support

Modal

MD 2Native support

Navigation Rail

MD 2❌ No support

Number Field

No guidelinesComposed with Base UI

Pagination

No guidelinesNative support

Paper

MD 2Native support

Progress

MD 2Native support

Radio Group

MD 2Native support

Rating

No guidelinesNative support

Select

MD 2Native support

Skeleton

No guidelinesNative support

Slider

MD 2Native support

Snackbar

MD 2Native support

Speed Dial

No guidelinesNative support

Stepper

MD 1 (legacy)Native support

Switch

MD 2Native support

Table

MD 2Native support

Tabs

MD 2Native support

Text Field

MD 2Native support

Timeline

No guidelinesNative support

Toggle Button

No guidelinesNative support

Tooltip

MD 2Native support

Transfer List

No guidelinesNative support

Tree View

No guidelinesSupport in MUI X

Typography

MD 2Native support
import Table from '@mui/material/Table';
import TableHead from '@mui/material/TableHead';
import TableBody from '@mui/material/TableBody';
import TableCell from '@mui/material/TableCell';
import TableRow from '@mui/material/TableRow';
import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import { Link } from '@mui/internal-core-docs/Link';

const components = [
  {
    name: 'Accordion',
    materialUI: '/material-ui/react-accordion/',
    materialDesign: 'https://m1.material.io/components/expansion-panels.html',
  },
  { name: 'Alert', materialUI: '/material-ui/react-alert' },
  {
    name: 'App Bar: top',
    materialUI: '/material-ui/react-app-bar/',
    materialDesign: 'https://m2.material.io/components/app-bars-top',
  },
  {
    name: 'App Bar: bottom',
    materialUI: '/material-ui/react-app-bar#bottom-app-bar',
    materialDesign: 'https://m2.material.io/components/app-bars-bottom',
  },
  { name: 'Autocomplete', materialUI: '/material-ui/react-autocomplete' },
  {
    name: 'Banner',
    materialUI: 'Composable',
    materialDesign: 'https://m2.material.io/components/banners',
  },
  { name: 'Avatar', materialUI: '/material-ui/react-avatar' },
  { name: 'Badge', materialUI: '/material-ui/react-badge' },
  {
    name: 'Bottom Navigation',
    materialUI: '/material-ui/react-bottom-navigation/',
    materialDesign: 'https://m2.material.io/components/bottom-navigation',
  },
  { name: 'Breadcrumbs', materialUI: '/material-ui/react-breadcrumbs' },
  {
    name: 'Button',
    materialUI: '/material-ui/react-button/',
    materialDesign: 'https://m2.material.io/components/buttons',
  },
  {
    name: 'Floating Action Button',
    materialDesign:
      'https://m2.material.io/components/buttons-floating-action-button',
    materialUI: '/material-ui/react-floating-action-button',
  },
  { name: 'Button Group', materialUI: '/material-ui/react-button-group' },
  {
    name: 'Card',
    materialUI: '/material-ui/react-card/',
    materialDesign: 'https://m2.material.io/components/cards',
  },
  {
    name: 'Checkbox',
    materialUI: '/material-ui/react-checkbox/',
    materialDesign: 'https://m2.material.io/components/checkboxes',
  },
  {
    name: 'Chip',
    materialUI: '/material-ui/react-chip/',
    materialDesign: 'https://m2.material.io/components/chips',
  },
  {
    name: 'Data Grid',
    materialUI: '/x/react-data-grid/',
    materialDesign: 'https://m2.material.io/components/data-tables',
  },
  {
    name: 'Date Pickers',
    materialUI: '/x/react-date-pickers/',
    materialDesign: 'https://m2.material.io/components/date-pickers',
  },
  {
    name: 'Dialog',
    materialUI: '/material-ui/react-dialog/',
    materialDesign: 'https://m2.material.io/components/dialogs',
  },
  {
    name: 'Divider',
    materialUI: '/material-ui/react-divider/',
    materialDesign: 'https://m2.material.io/components/dividers',
  },
  {
    name: 'Drawer',
    materialUI: '/material-ui/react-drawer/',
    materialDesign: 'https://m2.material.io/components/navigation-drawer',
  },
  {
    name: 'Icons',
    materialUI: '/material-ui/icons/',
    materialDesign: 'https://m2.material.io/design/iconography/system-icons.html',
  },
  {
    name: 'Image List',
    materialUI: '/material-ui/react-image-list/',
    materialDesign: 'https://m2.material.io/components/image-lists',
  },
  { name: 'Link', materialUI: '/material-ui/react-link/' },
  {
    name: 'List',
    materialUI: '/material-ui/react-list/',
    materialDesign: 'https://m2.material.io/components/lists',
  },
  { name: 'Masonry', materialUI: '/material-ui/react-masonry/' },
  {
    name: 'Material Icons',
    materialUI: '/material-ui/material-icons/',
    materialDesign: 'https://fonts.google.com/icons',
  },
  {
    name: 'Menu',
    materialUI: '/material-ui/react-menu/',
    materialDesign: 'https://m2.material.io/components/menus',
  },
  {
    name: 'Modal',
    materialUI: '/material-ui/react-modal/',
    materialDesign: 'https://m2.material.io/components/dialogs',
  },
  {
    name: 'Navigation Rail',
    materialDesign: 'https://m2.material.io/components/navigation-rail',
  },
  {
    name: 'Number Field',
    materialUI: '/material-ui/react-number-field/',
    baseUI: 'https://base-ui.com/react/components/number-field',
  },
  { name: 'Pagination', materialUI: '/material-ui/react-pagination/' },
  {
    name: 'Paper',
    materialUI: '/material-ui/react-paper/',
    materialDesign: 'https://m2.material.io/design/environment/elevation.html',
  },
  {
    name: 'Progress',
    materialUI: '/material-ui/react-progress/',
    materialDesign: 'https://m2.material.io/components/progress-indicators',
  },
  {
    name: 'Radio Group',
    materialUI: '/material-ui/react-radio-button/',
    materialDesign: 'https://m2.material.io/components/radio-buttons',
  },
  { name: 'Rating', materialUI: '/material-ui/react-rating/' },
  {
    name: 'Select',
    materialUI: '/material-ui/react-select/',
    materialDesign: 'https://m2.material.io/components/menus#exposed-dropdown-menu',
  },
  { name: 'Skeleton', materialUI: '/material-ui/react-skeleton/' },
  {
    name: 'Slider',
    materialUI: '/material-ui/react-slider/',
    materialDesign: 'https://m2.material.io/components/sliders',
  },
  {
    name: 'Snackbar',
    materialUI: '/material-ui/react-snackbar/',
    materialDesign: 'https://m2.material.io/components/snackbars',
  },
  { name: 'Speed Dial', materialUI: '/material-ui/react-speed-dial' },
  {
    name: 'Stepper',
    materialUI: '/material-ui/react-stepper/',
    materialDesign: 'https://m1.material.io/components/steppers.html',
  },
  {
    name: 'Switch',
    materialUI: '/material-ui/react-switch/',
    materialDesign: 'https://m2.material.io/components/switches',
  },
  {
    name: 'Table',
    materialUI: '/material-ui/react-table/',
    materialDesign: 'https://m2.material.io/components/data-tables',
  },
  {
    name: 'Tabs',
    materialUI: '/material-ui/react-tabs/',
    materialDesign: 'https://m2.material.io/components/tabs',
  },
  {
    name: 'Text Field',
    materialUI: '/material-ui/react-text-field/',
    materialDesign: 'https://m2.material.io/components/text-fields',
  },
  { name: 'Timeline', materialUI: '/material-ui/react-timeline/' },
  { name: 'Toggle Button', materialUI: '/material-ui/react-toggle-button/' },
  {
    name: 'Tooltip',
    materialUI: '/material-ui/react-tooltip/',
    materialDesign: 'https://m2.material.io/components/tooltips',
  },
  { name: 'Transfer List', materialUI: '/material-ui/react-transfer-list/' },
  { name: 'Tree View', materialUI: '/x/react-tree-view/' },
  {
    name: 'Typography',
    materialUI: '/material-ui/react-typography/',
    materialDesign: 'https://m2.material.io/design/typography/the-type-system.html',
  },
];

export default function MaterialUIComponents() {
  return (
    <Paper sx={{ width: '100%' }}>
      <Table>
        <TableHead>
          <TableRow>
            <TableCell>Components</TableCell>
            <TableCell>Material Design</TableCell>
            <TableCell>Material UI</TableCell>
          </TableRow>
        </TableHead>
        <TableBody>
          {components.map((component) => (
            <TableRow key={component.name}>
              <TableCell>
                <Typography variant="body2">{component.name}</Typography>
              </TableCell>
              <TableCell>
                {component.materialDesign ? (
                  <Link
                    variant="body2"
                    data-no-markdown-link="true"
                    href={component.materialDesign}
                  >
                    {component.materialDesign.substring(8, 10) === 'm1'
                      ? 'MD 1 (legacy)'
                      : 'MD 2'}
                  </Link>
                ) : (
                  'No guidelines'
                )}
              </TableCell>
              <TableCell>
                {component.materialUI &&
                component.materialUI.startsWith('/material-ui') &&
                !component.baseUI ? (
                  <Link
                    variant="body2"
                    data-no-markdown-link="true"
                    href={component.materialUI}
                  >
                    Native support
                  </Link>
                ) : null}
                {component.baseUI ? (
                  <Link
                    variant="body2"
                    data-no-markdown-link="true"
                    href={component.baseUI}
                  >
                    Composed with Base UI
                  </Link>
                ) : null}
                {component.materialUI && component.materialUI.startsWith('/x') ? (
                  <Link
                    variant="body2"
                    data-no-markdown-link="true"
                    href={component.materialUI}
                  >
                    Support in MUI X
                  </Link>
                ) : null}
                {component.materialUI === 'Composable' ? 'Composable' : null}
                {component.materialUI == null ? '❌ No support' : null}
              </TableCell>
            </TableRow>
          ))}
        </TableBody>
      </Table>
    </Paper>
  );
}