Skip to main content

Examples

Default

Without Label

All Sizes

Full Width

With Groups And Separator

Props

Select

A select field with optional label, helper/error text, and an icon slot, built on Radix UI Select for full accessibility and keyboard navigation. Pair with SelectContent and SelectItem to provide options.
string
Accessible name applied directly to the trigger button when no visible label is provided.
string
ID of an external element that labels the trigger button.
string
Wraps the className of the outermost container div.
string
boolean
default:"false"
Whether the field is in an error state.
string
Error message displayed below the trigger. Shown instead of helperText when error is true.
boolean
default:"false"
Whether the field stretches to fill its container width.
string
Helper text displayed below the trigger. Replaced by errorMessage when error is true.
string
HTML id applied to the trigger button. Auto-generated if omitted.
string
Label text displayed above the trigger. Also used as the accessible name.
ReactNode
Icon element displayed at the left side of the trigger.
((value: string) => void)
string
Placeholder shown when no value is selected.
"32" | "40" | "48"
default:"48"
Height of the select field in pixels.
string

SelectContent

The dropdown panel rendered inside a portal. Place SelectItem elements (and optionally SelectGroup / SelectLabel) as children.
boolean

SelectGroup

Groups related SelectItem elements under a SelectLabel. A direct re-export of the Radix SelectPrimitive.Group primitive. It accepts all of that primitive’s props, unchanged.

SelectItem

An individual option inside SelectContent, following the V2 Menu Item spec. Supports a leading icon or avatar, an optional two-line layout via description, and the standard hover / selected / disabled states. The selected row is marked with a trailing check indicator.
boolean
ReactNode
Leading avatar rendered in place of SelectItemProps.leadingIcon, for rows representing a person or account. Pass an Avatar sized to 24. Takes precedence over leadingIcon.
ReactNode
Optional secondary text rendered on a second line below the label.
ReactNode
Icon (or other node) rendered before the label. Ignored when SelectItemProps.avatar is set.
"32" | "40"
default:"48"
Row height. Defaults to the parent Select size (48/4040, 3232).

SelectLabel

A non-interactive label shown above a SelectGroup.
boolean

SelectSeparator

A horizontal rule that visually separates groups in SelectContent.
boolean

Exported types

Also exported from @fanvue/ui: SelectContentProps, SelectGroupProps, SelectItemProps, SelectItemSize, SelectLabelProps, SelectProps, SelectSeparatorProps, SelectSize.
Setup: Installation · Theming