--- title: Combobox description: Autocomplete input and command palette with a list of suggestions. component: true --- ## Installation The Combobox is built using a composition of the `` and the `` components. See installation instructions for the [Popover](/docs/components/popover#installation) and the [Command](/docs/components/command#installation) components. ## Usage ```tsx showLineNumbers title="components/example-combobox.tsx" "use client" import * as React from "react" import { CheckIcon, ChevronsUpDownIcon } from "lucide-react" import { cn } from "@/lib/utils" import { Button } from "@/components/ui/button" import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from "@/components/ui/command" import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover" const frameworks = [ { value: "next.js", label: "Next.js", }, { value: "sveltekit", label: "SvelteKit", }, { value: "nuxt.js", label: "Nuxt.js", }, { value: "remix", label: "Remix", }, { value: "astro", label: "Astro", }, ] export function ExampleCombobox() { const [open, setOpen] = React.useState(false) const [value, setValue] = React.useState("") return ( No framework found. {frameworks.map((framework) => ( { setValue(currentValue === value ? "" : currentValue) setOpen(false) }} > {framework.label} ))} ) } ``` ## Examples ### Combobox ### Popover ### Dropdown menu ### Responsive You can create a responsive combobox by using the `` on desktop and the `` components on mobile.