MantleUI

ListBox

A list selection component supporting single and multiple selection modes.

Basic

Multiple Selection

Controlled

Colors

User List

Custom rendered items with avatars, names, emails, and check icons.

Role Selection

Selectable roles with icon badges, descriptions, and a disabled option.

Props

items
{ value: string; label: string }[]

Array of selectable items.

value
string | string[]

The selected value(s) (controlled).

defaultValue
string | string[]

The initial selected value(s) (uncontrolled).

onValueChange
(value: string | string[]) => void

Called when the selection changes.

multiplefalse
boolean

Allows multiple items to be selected.

color"blue"
"blue" | "red" | "green" | "yellow" | "purple" | "neutral" | string

Accent color for selected items.

renderItem
(item: ListBoxItem, selected: boolean) => ReactNode

Custom render function for each item. Receives the item data and selection state.

--mantle-bgtheme default
CSS variable

Override the background color via style. e.g. style={{ "--mantle-bg": "#1a1a2e" }}

--mantle-bordertheme default
CSS variable

Override the border color via style. Set to "transparent" to remove. e.g. style={{ "--mantle-border": "#e94560" }}

--mantle-texttheme default
CSS variable

Override the text color via style. e.g. style={{ "--mantle-text": "#ffffff" }}

--mantle-ringaccent
CSS variable

Override the focus ring color via style. e.g. style={{ "--mantle-ring": "#e94560" }}

--mantle-option-hovergradient
CSS variable

Override the option hover background via style. e.g. style={{ "--mantle-option-hover": "#3b82f6" }}

© 2026 MantleUI. All rights reserved.