A list item is an element that can be used to represent individual items in a list.

Preview

Base Style

A list item provides accessibility controls and common functionality. The component uses child components that provide styling and slots for different types of list items. If you want to create a custom list item you can pass a type "custom", which will let you define the structure of the content.

The default list item has 5 slots that can be used for the most common use cases, left, right, default, subtitle and bottom slot. All of the slots are optional.

The left slot can contain content, such as an avatar, that will be positioned to the left of the main content.

The right slot works the same way, but its contents are placed to the right of the main slot.

The default slot contains the main content of the list item.

The subtitle slot can be used to display content below the default slot. The slot has smaller text size and lighter color than default slot.

The bottom slot can be used to display content below the subtitle slot.

Variants

Custom List Item

When type is set to "custom" the list item will not render any styles or slots. This type can be used when the list item has to support content that does not work with the default structure.

Vue API

Slots

Name
Description
default

slot for the main content

slotName

named slots for custom list items

Props

Name
Description
Default
elementType

HTML element type (tag name) of the content wrapper element.

Type: string
'li'
id

Id for the item.

Type: string
function() { return utils.getUniqueString(); }
navigationType

The type of navigation that this component should support.

  • "arrow-keys" for items that are navigated with UP/DOWN keys.
  • "tab" for items that are navigated using the TAB key.
  • "none" for static items that are not interactive.
Type: string
Values: arrow-keystabnone
LIST_ITEM_NAVIGATION_TYPES.NONE
role

String to use for the item's role.

Type: string
Values: listitemmenuitemoption
'listitem'
selected

Applies selected styles to the list item

Type: boolean
false
type

The type of child list item to use.

Type: string
Values: defaultcustom
LIST_ITEM_TYPES.DEFAULT
wrapperClass

Additional Classes to apply to the wrapper element, note: it only applies on "default" type Can accept all of: String, Object, and Array, i.e. has the same api as Vue's built-in handling of the class attribute.

Type: string|object|array
''

Events

Name
Description
click
keydown

Key down event

Type: KeyboardEvent
mouseleave

Native mouse leave event

Type: MouseEvent
mousemove

Native mouse move event

Type: MouseEvent
List item documentation last updated Thursday, June 11, 2026