Aww yeah, Material-UI v4 is here!
ListItem

ListItem API

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

import ListItem from '@material-ui/core/ListItem';

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

Props

Name Type Default Description
alignItems enum: 'flex-start' |
 'center'
'center' Defines the align-items style property.
button bool false If true, the list item will be a button (using ButtonBase).
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 Component The component used for the root node. Either a string to use a DOM element or a component. By default, it's a li when button is false and a div when button is true.
ContainerComponent Component 'li' The container component used when a ListItemSecondaryAction is the last child.
ContainerProps object Properties applied to the container component if used.
dense bool false If true, compact vertical padding designed for keyboard and mouse input will be used.
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.

Any other properties supplied will be spread to the root element (native element).

CSS

You can override all the class names injected by Material-UI thanks to the classes property. This property accepts the following keys:

Name Description
root Styles applied to the (normally root) component element. May be wrapped by a container.
container Styles applied to the container element if children includes ListItemSecondaryAction.
focusVisible Styles applied to the component's focusVisibleClassName property if button={true}.
default Legacy styles applied to the root element. Use root instead.
dense Styles applied to the component element if dense={true} or children includes Avatar.
alignItemsFlexStart Styles applied to the component element if alignItems="flex-start".
disabled Styles applied to the inner component element if disabled={true}.
divider Styles applied to the inner component element if divider={true}.
gutters Styles applied to the inner component element if disableGutters={false}.
button Styles applied to the inner component element if button={true}.
secondaryAction Styles applied to the component element if children includes ListItemSecondaryAction.
selected Styles applied to the root element if selected={true}.

Have a look at overriding with classes section and the implementation of the component for more detail.

If using the overrides key of the theme, you need to use the following style sheet name: MuiListItem.

Demos