ListItemButton for action rows and standalone selection buttons. It combines ListItem layout with a native button, including Enter and Space activation, focus, and disabled behavior. It defaults to type="button".
Actions and disabled state
PassonClick and disabled directly. Disabled buttons use the matching row appearance, prevent activation, and leave the tab order.
focusableWhenDisabled to keep a disabled button focusable. It uses aria-disabled and continues to block activation. Native button attributes, events, styles, class names, and an HTMLButtonElement ref reach the button. Events bubble normally; callers supply any stopPropagation() or preventDefault() policy.
Selection and visual slots
Your application owns selection. Pairselected with the appropriate accessible state, such as aria-pressed for a toggle button. focused highlights the row without moving DOM focus. Indicators and shortcut hints are decorative; your application registers shortcuts and handles navigation.
startIcon, endIcon, description, and descriptionPlacement for supporting content. color="danger" marks a destructive action. shortcutJoinLabel controls the text between sequential shortcuts, and hasSubmenu displays a submenu indicator.
Independent controls
Keep independent buttons besideListItemButton so each retains its own focus and activation. The component has no actions slot. Use a passive ListItem with actions when the row itself does not act.
ListItem for passive content, links, or custom semantic owners. Use the existing Menu, Dropdown, and Select item parts within their popup owners, which supply roles and keyboard navigation.
Props
"danger" | "neutral"
Color of the text and icons.
danger marks a destructive action.ReactNode
Supporting text, placed according to
descriptionPlacement."end" | "inline"
Where the description renders: inline after the content or at the end of
the row.
boolean
default:"false"
Disables activation and applies the matching row appearance.
ReactNode
Icon rendered after the content.
boolean
default:"false"
Keeps a disabled button focusable with aria-disabled while preventing activation.
boolean
Highlights the row without moving DOM focus.
Displays a decorative submenu indicator.
"check" | "checkbox" | "none"
Selection indicator: a check icon after the content or a checkbox before
it.
Ref<HTMLButtonElement>
Ref to the native HTMLButtonElement.
boolean
Applies selected styling and a decorative indicator. The caller supplies selection state and accessible semantics.
ShortcutDefinition
Displays decorative shortcut hints. The caller registers the shortcuts.
string
Text between sequential shortcut steps. Defaults to
then; pass an empty string to omit it.ReactNode
Icon rendered before the content.