--- title: Combobox description: Autocomplete input and command palette with a list of suggestions. component: true source: shadcn: 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 'use client' import * as React from 'react' import { Check, ChevronsUpDown } from 'lucide-react' import { cn } from '@/lib/utils' import { Button } from '@/components/ui/button' import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, } 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 ComboboxDemo() { 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. ### Form