shadcn.io is not affiliated with official shadcn/ui
Framework
UI library
Radix UI does not include this primitive, so this page uses the Ark UI component. The visuals match the Ark UI version.
Installation
bunx --bun shadcn@latest add https://kit.dev/r/radix/autocomplete.jsonAnatomy
AutocompleteRoot
├── AutocompleteClearTrigger
├── AutocompleteContent
├── AutocompleteControl
├── AutocompleteInput
├── AutocompleteItem
│ ├── AutocompleteItemGroup
│ │ └── AutocompleteItemGroupLabel
│ ├── AutocompleteItemIndicator
│ └── AutocompleteItemText
├── AutocompleteLabel
├── AutocompleteList
├── AutocompletePositioner
└── AutocompleteTriggerUsage
import { useListCollection } from "@ark-ui/react/collection";
import { useFilter } from "@ark-ui/react/locale";
import { Field, FieldLabel } from "@registry/react/components/field";
import {
Autocomplete,
AutocompleteContent,
AutocompleteEmpty,
AutocompleteInput,
AutocompleteItem,
AutocompleteList,
} from "@/components/ui/autocomplete";const AutocompleteDemo = () => {
const { contains } = useFilter({ sensitivity: "base" });
const { collection, filter } = useListCollection({
initialItems,
filter: contains,
});
return (
<Field className="w-full max-w-64">
<FieldLabel>Search fruits</FieldLabel>
<Autocomplete
collection={collection}
onInputValueChange={({ inputValue }) => filter(inputValue)}
>
<AutocompleteInput placeholder="e.g. Apple" showClear />
<AutocompleteContent>
<AutocompleteEmpty />
<AutocompleteList>
{collection.items.map((item) => (
<AutocompleteItem item={item} key={item.value}>
{item.label}
</AutocompleteItem>
))}
</AutocompleteList>
</AutocompleteContent>
</Autocomplete>
</Field>
);
};
const initialItems = [
{ label: "Apple", value: "apple" },
{ label: "Banana", value: "banana" },
{ label: "Cherry", value: "cherry" },
{ label: "Date", value: "date" },
];Accessibility
| Key | Description |
|---|---|
ArrowDown | Move down. |
ArrowUp | Move up. |
Home | Go to the start. |
End | Go to the end. |
Enter | Activate the focused item. |
Escape | Dismiss. |
Space | Activate the focused control. |
Demos
Async
Autohighlight
Context
Controlled
Creatable
Custom Object
Disabled
Dynamic
Group
Highlight
Inline
Invalid
Limit Results
Links
Multiple
Rehydrate
Root Provider
Size Lg
Size Md
Size Sm
With Clear Button
With Field
With Start Icon
With Trigger
API Reference
AutocompleteControl
PropType
AttributeType
AutocompleteInput
PropType
AttributeType
AutocompleteGroupLabel
PropType
AttributeType
AutocompleteItem
PropType
AttributeType
AutocompleteContent
PropType
AttributeType
AutocompleteTrigger
PropType
AttributeType
AutocompleteClear
PropType
AttributeType
AutocompleteGroup
PropType
AttributeType
AutocompleteEmpty
PropType
AttributeType
AutocompleteList
PropType
AttributeType
AutocompleteCollection
PropType
AttributeType
AutocompleteSeparator
PropType
AttributeType