Select

A control for choosing one or more options from a list.

Anatomy

Pair a trigger with a popup of items. Reach for it when the user picks from a small, known set, like a model, a tone, or a target. For free-form lookups, prefer a combobox.

TSX

Group items with a label and a separator when the list grows past a handful.

TSX

For multi-select, pass multiple to the root. The trigger shows the first value with a chip that counts the rest.

TSX

API

Reference for each part of the component, including its available props and behavior.

Select

The root. Holds the value, tracks open state, and coordinates keyboard navigation. Pass multiple for multi-select.

Prop

SelectTrigger

The control that opens the popup. Lays out the value on the leading edge and a chevron on the trailing edge. The variant prop picks between three surfaces.

Prop

SelectValue

Renders the current value inside the trigger. Falls back to the placeholder when the value is empty. Accepts a single value, a multi-select array, or a rich object with label, value, and an optional icon.

Prop

SelectPopup

The floating panel. Takes positioner props inline so you can set side, sideOffset, align, and alignOffset without reaching for a separate positioner part. Matches the trigger's width on small screens.

Prop

SelectList

The scrollable list of items inside the popup. Caps its height to the available space and scrolls when needed.

Prop

SelectItem

A row inside the list. Pass value as a string for plain entries, or as an object with label, value, and icon to control how the value renders back in the trigger.

Prop

SelectGroup

A wrapper that ties a label to a set of items for assistive tech.

Prop

SelectGroupLabel

A small heading that names a group. Reads as muted text inside the popup.

Prop

SelectSeparator

A thin divider between groups of items.

Prop