ListItem

Flexible non-tabular list row for activity, notifications, and assignments.

Quick Preview

NK

Notification title

Supporting line of context

2h ago

Document checklist updated

Three new buyer requirements were added

3

Composition

Use this public composition when building ListItem:

ListItem
├── ListItemAvatar
│   └── AvatarImage | AvatarFallback | AvatarStatus
├── ListItemIcon
├── ListItemContent
│   ├── ListItemTitle
│   └── ListItemDescription
└── ListItemMeta | ListItemCount

Usage

<ListItem render={<button type="button" />}>
  <ListItemAvatar>
    <AvatarFallback>NK</AvatarFallback>
  </ListItemAvatar>
  <ListItemContent>
    <ListItemTitle>Notification title</ListItemTitle>
    <ListItemDescription>Supporting line of context</ListItemDescription>
  </ListItemContent>
  <ListItemMeta>2h ago</ListItemMeta>
</ListItem>

Examples

Default List Item

Use avatar, icon, meta, or count slots to fit activity feeds and notification lists.

NK

Notification title

Supporting line of context

2h ago

Document checklist updated

Three new buyer requirements were added

3

States and Sizes

Use selected for navigation/current-item rows, native disabled controls for unavailable action rows, and size="lg" for roomier surfaces.

AA

Default row

Medium density list item

Now
NK

Selected row

Medium density list item

1h
AA

Default row

Large density list item

Now
NK

Selected row

Large density list item

1h

Props

Prop/APITypeDefaultDescription
size"md" | "lg""md"Controls row density, text scale, and leading/trailing slot sizes.
selectedbooleanfalseApplies the selected brand-subtle surface and selected text treatments.
renderBase UI render prop-Changes the rendered root element while preserving styles.
classNamestring-Local layout or spacing overrides.
native/root propsReact div props-Passed through to the root.

Accessibility

  • Render the root as a button or link when the whole row is actionable. Interactive row styling is applied automatically for semantic interactive roots, role="button", and role="link".
  • Use native disabled for button rows and aria-disabled for link rows.
  • Keep one primary action per row; do not nest multiple competing controls inside one ListItem.
  • Use selected only when the row represents the current item or current navigation destination.
  • Do not use ListItemCount for severity. Use a status component when the value communicates state rather than count.

On this page