James Shopland

ComboBox [react-aria-components]

Forms 3

About

A ComboBox combines a text input with a listbox, allowing users to filter a list of options to items matching a query. A combo box can be built using the <datalist> HTML element, but this is very limited in functionality and difficult to style. ComboBox helps achieve accessible combo box and autocomplete components that can be styled as needed.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds ComboBox [react-aria-components] to your project and fits it to your theme.

Code

How ComboBox [react-aria-components] is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import { ChevronsUpDown } from "lucide-react"

import { Button } from "@/components/ui/button"
import {
  Combobox,
  ComboboxInput,
  ComboboxItem,
  ComboboxListBox,
  ComboboxPopover,
} from "@/components/ui/combobox"
import { FieldGroup, Label } from "@/components/ui/field"

export function ComboboxDemo() {
  return (
    <Combobox>
      <Label>Favorite Animal</Label>
      <FieldGroup className="p-0">
        <ComboboxInput />
        <Button variant="ghost" size="icon" className="mr-1 size-6 p-1">
          <ChevronsUpDown aria-hidden="true" className="size-4 opacity-50" />
        </Button>
      </FieldGroup>
      <ComboboxPopover>
        <ComboboxListBox>
          <ComboboxItem textValue="Aardvark">Aardvark</ComboboxItem>
          <ComboboxItem textValue="Cat">Cat</ComboboxItem>
          <ComboboxItem textValue="Dog">Dog</ComboboxItem>
          <ComboboxItem textValue="Kangaroo">Kangaroo</ComboboxItem>
          <ComboboxItem textValue="Panda">Panda</ComboboxItem>
          <ComboboxItem textValue="Snake">Snake</ComboboxItem>
        </ComboboxListBox>
      </ComboboxPopover>
    </Combobox>
  )
}

Dependencies

More by James Shopland

View all
  • Tag Group [react-aria-components]

    Tag Group [react-aria-components]

    96
  • Date Range Picker [react-aria-components]

    Date Range Picker [react-aria-components]

    88
  • Grid List [react-aria-components]

    Grid List [react-aria-components]

    74
  • Switch [react-aria-components]

    Switch [react-aria-components]

    70
  • Select [react-aria-components]

    Select [react-aria-components]

    47
  • Range Calendar [react-aria-components]

    Range Calendar [react-aria-components]

    39
  • Menu

    Menu

    36
  • Popover

    Popover

    35

More in Forms

View all
  • Form

    Form

    17
  • Contact Card

    Contact Card

    1.1K
  • Premium Auth

    Premium Auth

    555
  • Authentication Card

    Authentication Card

    51
  • Book A Demo 1

    Book A Demo 1

    87
  • Login 1

    Login 1

    61
  • SignInPage

    SignInPage

    736
  • Modern & Stunning sign in

    Modern & Stunning sign in

    1.7K