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 | 'flex-start' | 'center' |
'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. By default, it's a li when button is false and a div when button is true . |
|
ContainerComponent | elementType | 'li' | The container component used when a ListItemSecondaryAction is the last child. |
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. |
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 if disableGutters={false} . |
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:
- With a rule name of the
classes
object prop. - With a global class name.
- With a theme and an
overrides
property.
If that's not sufficient, you can check the implementation of the component for more detail.