--- title: Select description: Displays a list of options for the user to pick from—triggered by a button. base: base component: true featured: true links: doc: https://base-ui.com/react/components/select api: https://base-ui.com/react/components/select#api-reference --- ## Installation Command Manual ```bash npx shadcn@latest add select ``` Install the following dependencies: ```bash npm install @base-ui/react ``` Copy and paste the following code into your project. Update the import paths to match your project setup. ## Usage ```tsx showLineNumbers import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" ``` ```tsx showLineNumbers const items = [ { label: "Light", value: "light" }, { label: "Dark", value: "dark" }, { label: "System", value: "system" }, ] ``` ## Examples ### Align Item With Trigger Use `alignItemWithTrigger` on `SelectContent` to control whether the selected item aligns with the trigger. When `true` (default), the popup positions so the selected item appears over the trigger. When `false`, the popup aligns to the trigger edge. ### Groups Use `SelectGroup`, `SelectLabel`, and `SelectSeparator` to organize items. ### Scrollable A select with many items that scrolls. ### Disabled ### Invalid Add the `data-invalid` attribute to the `Field` component and the `aria-invalid` attribute to the `SelectTrigger` component to show an error state. ```tsx showLineNumbers /data-invalid/ /aria-invalid/ Fruit ``` ## RTL To enable RTL support in shadcn/ui, see the [RTL configuration guide](/docs/rtl). ## API Reference See the [Base UI Select](https://base-ui.com/react/components/select#api-reference) documentation.