Select

v1.0.0

A keyboard-navigable dropdown selection control with animated portal rendering, listbox semantics, multiple visual variants, and error state support.

Basic Select

A simple select with label, placeholder, and a list of options. Click to open and select via click or keyboard.

Controlled Select

Use <code>value</code> and <code>onChange</code> to manage the selected value from parent state.

Selected: us-east

Glass Variant

A frosted glass aesthetic with backdrop blur on both the trigger and the dropdown list.

Notion Variant

A flat, minimal style matching Notion's design language with subtle borders and no shadow.

Error State

Pass an <code>error</code> string to show destructive border styling and an animated error message below the trigger.

Disabled State

Set <code>disabled</code> to prevent interaction. The trigger appears faded and cannot be opened.

API Reference

Properties accepted by the dropdown selection control.

Property
Type
Default
Description
variant'default' | 'glass' | 'notion''default'Controls the visual style of both the trigger button and dropdown list.
labelstringundefinedLabel rendered above the select trigger button.
placeholderstring'Select an option...'Fallback text when no option is currently selected.
optionsSelectOption[]requiredArray of value-label pairs rendered as listbox options.
valuestringundefinedControlled selected value for the select control.
defaultValuestringundefinedUncontrolled initial selected value on first render.
onChange(value: string) => voidundefinedCallback triggered when an option is selected.
disabledbooleanfalseDisables the trigger and prevents listbox expansion.
errorstringundefinedError message rendered below the trigger with destructive styling.
© 2026 Venti UI Labs. UI made right.