Basic Searchable Select
The Combobox component with searchable options.
Organisms
Autocomplete search input paired with a selectable dropdown list.
pnpm add @quinkit/ui cmdkimport { Combobox } from "@quinkit/ui";Required packages
Powers Command and Combobox. Add these packages before using this component:
@quinkit/uicmdkInstall command is shown above. Without the peer package, imports will fail at build time.
Live previews · code · themes · viewport · dark mode
The Combobox component with searchable options.
Select multiple values shown as removable tags.
Load options dynamically on open with a loading spinner.
Group search options into labelled category headings.
Combobox input field inside a standard configuration form.
Combobox is an accessible, searchable select input composed from Radix Popover and Command. It supports type-to-filter option searching, selection indicators, custom empty state feedback, and responsive trigger popover matching.
pnpm add @quinkit/ui cmdkcmdk is a required peer dependency for Combobox (via Command).
### Basic Usage
import { useState } from "react";
import { Combobox } from "@quinkit/ui";
const frameworks = [
{ value: "next", label: "Next.js 16" },
{ value: "react", label: "React 19" },
{ value: "vite", label: "Vite" }
];
export function ComboboxDemo() {
const [val, setVal] = useState("next");
return <Combobox options={frameworks} value={val} onValueChange={setVal} />;
}| Prop | Type | Default | Description |
|---|---|---|---|
options | ComboboxOption[] | **Required** | List of { value, label } options. |
value | string | undefined | Selected option value. |
onValueChange | (value: string) => void | undefined | Callback fired on option selection. |
placeholder | string | "Select option..." | Trigger button placeholder text. |
searchPlaceholder | string | "Search options..." | Search field input placeholder text. |
emptyText | string | "No option found." | Message displayed when search yields zero matches. |
disabled | boolean | false | Disable combobox trigger interaction. |
className | string | undefined | Additional class names. |
aria-expanded attributes.Escape key closes dropdown panel.Combobox adheres to WAI-ARIA design patterns for accessible web components.
Keyboard Navigation
Tab / Shift + Tab — Focuses control and moves between interactive elements.Space / Enter — Triggers action or toggles selection.Escape — Closes open popovers, overlays, or dropdown menus.ARIA Standards
aria-* attributes.ring-ring) visible in both light & dark mode.Add a shadcn-compatible bridge file to your project that re-exports from @quinkit/ui.
npx shadcn@latest add https://quinkit-ui.vercel.app/r/combobox.json