Skip to content

ListItem API

The API documentation of the ListItem React component. Learn more about the props and the CSS customization points.

Import

import ListItem from '@material-ui/core/ListItem';
// or
import { ListItem } from '@material-ui/core';

You can learn more about the difference by reading this guide.

Uses an additional container component if ListItemSecondaryAction is the last child.

Component name

The MuiListItem name can be used for providing default props or style overrides at the theme level.

Props

Name Type Default Description
alignItems 'center'
| 'flex-start'
'center' Defines the align-items style property.
autoFocus bool false If true, the list item will be focused during the first mount. Focus will also be triggered if the value changes from false to true.
button bool false If true, the list item will be a button (using ButtonBase). Props intended for ButtonBase can then be applied to ListItem.
children node The content of the component. If a ListItemSecondaryAction is used it must be the last child.
classes object Override or extend the styles applied to the component. See CSS API below for more details.
component elementType The component used for the root node. Either a string to use a HTML element or a component.
ContainerComponent element type 'li' The container component used when a ListItemSecondaryAction is the last child.
⚠️ Needs to be able to hold a ref.
ContainerProps object {} Props applied to the container component if used.
dense bool false If true, compact vertical padding designed for keyboard and mouse input will be used. The prop defaults to the value inherited from the parent List component.
disabled bool false If true, the list item will be disabled.
disableGutters bool false If true, the left and right padding is removed.
divider bool false If true, a 1px light border is added to the bottom of the list item.
selected bool false Use to apply selected styling.

The ref is forwarded to the root element.

Any other props supplied will be provided to the root element (native element).

CSS

Rule name Global class Description
root .MuiListItem-root Styles applied to the (normally root) component element. May be wrapped by a container.
container .MuiListItem-container Styles applied to the container element if children includes ListItemSecondaryAction.
focusVisible .Mui-focusVisible Pseudo-class applied to the component's focusVisibleClassName prop if button={true}.
dense .MuiListItem-dense Styles applied to the component element if dense.
alignItemsFlexStart .MuiListItem-alignItemsFlexStart Styles applied to the component element if alignItems="flex-start".
disabled .Mui-disabled Pseudo-class applied to the inner component element if disabled={true}.
divider .MuiListItem-divider Styles applied to the inner component element if divider={true}.
gutters .MuiListItem-gutters Styles applied to the inner component element unless disableGutters={true}.
button .MuiListItem-button Styles applied to the inner component element if button={true}.
secondaryAction .MuiListItem-secondaryAction Styles applied to the component element if children includes ListItemSecondaryAction.
selected .Mui-selected Pseudo-class applied to the root element if selected={true}.

You can override the style of the component thanks to one of these customization points:

If that's not sufficient, you can check the implementation of the component for more detail.

Demos