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, start, end, default, subtitle and bottom slot. All of the slots are optional.

The start slot can contain content, such as an avatar, that will be positioned at the start (left in LTR) of the main content.

The end slot works the same way, but its contents are placed at the end (right in LTR) 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

import { DtListItem } from '@dialpad/dialtone-vue';

Slots

Name
Type
default

slot for the main content

slotName

named slots for custom list items

Props

Name
Default
Type
elementType
'li'
string

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

id
generated unique ID
string

Id for the item.

navigationType
none
"arrow-keys" | "tab" | "none"

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.

role
'listitem'
"listitem" | "menuitem" | "option"

String to use for the item's role.

selected
false
boolean

Applies selected styles to the list item

type
default
"default" | "custom"

The type of child list item to use.

wrapperClass
''
string|object|array

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.

Events

Name
Type
click
PointerEvent | KeyboardEvent

Native click event

keydown
KeyboardEvent

Key down event

mouseleave
MouseEvent

Native mouse leave event

mousemove
MouseEvent

Native mouse move event

List item documentation last updated Thursday, June 18, 2026