k8ordo
  • UI
  • Form
  • State
  • Router
  • Static
  • Server
Switch to dark mode
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI
Open navigation
Buttons
  • Button
  • IconButton
Navigation
  • Anchor
  • Tabs
  • Breadcrumb
  • Pagination
Forms
  • TextField
  • Textarea
  • NumberField
  • Select
  • Checkbox
  • CheckboxCard
  • CheckboxGroup
  • Switch
  • PasswordInput
  • Radio
  • RadioCard
  • Autocomplete
  • Slider
  • FileField
  • FormControl
  • Form
Data Display
  • Accordion
  • Avatar
  • Badge
  • Card
  • Code
  • Table
  • Heading
Feedback
  • Alert
  • Skeleton
  • Spinner
  • Toast
  • Progress
Overlays
  • Dialog
  • Drawer
  • Modal
  • Popover
  • DropdownMenu
  • Tooltip
  • ListBox
Layout
  • Stack
  • Grid
  • Separator
  • ScrollLinked
Media
  • Icons
k8ordo

React libraries that use Baseline features without holding back.

Packages
  • @k8ordo/ui
  • @k8ordo/form
  • @k8ordo/state
  • @k8ordo/router
  • @k8ordo/static
  • @k8ordo/server
UI
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI Chat
  • Generative UI
  • AI Agents
  • Storybook
Resources
  • GitHub
  • npm

© 2026 k8o — MIT License

Typeset in Noto Sans JP & M PLUS 2

Components

Buttons
  • Button
  • IconButton
Navigation
  • Anchor
  • Tabs
  • Breadcrumb
  • Pagination
Forms
  • TextField
  • Textarea
  • NumberField
  • Select
  • Checkbox
  • CheckboxCard
  • CheckboxGroup
  • Switch
  • PasswordInput
  • Radio
  • RadioCard
  • Autocomplete
  • Slider
  • FileField
  • FormControl
  • Form
Data Display
  • Accordion
  • Avatar
  • Badge
  • Card
  • Code
  • Table
  • Heading
Feedback
  • Alert
  • Skeleton
  • Spinner
  • Toast
  • Progress
Overlays
  • Dialog
  • Drawer
  • Modal
  • Popover
  • DropdownMenu
  • Tooltip
  • ListBox
Layout
  • Stack
  • Grid
  • Separator
  • ScrollLinked
Media
  • Icons

ListBox

A dropdown list selection component.

View in Storybook

Import

Usage

Fruit

Sizes

Fruit (sm)
Fruit (md)
Fruit (lg)

With Icon Trigger

Fruit

Props

ListBox.Root

options
Type: readonly Option[]
Default: -
children?
Type: ReactNode
Default: -
defaultValue?
Type: Option['value']
Default: -
onChange?
Type: (value: Option['value']) => void
Default: -
placement?
Type: Placement
Default: 'bottom'
value?
Type: Option['value']
Default: -
PropTypeDefault
optionsreadonly Option[]-
children?ReactNode-
defaultValue?Option['value']-
onChange?(value: Option['value']) => void-
placement?Placement'bottom'
value?Option['value']-

ListBox.Trigger

label?
Type: string
Default: -
size?
Type: ComponentProps<typeof Button>['size']
Default: 'md'
PropTypeDefault
label?string-
size?ComponentProps<typeof Button>['size']'md'

ListBox.IconTrigger

icon
Type: ReactElement
Default: -
label?
Type: string
Default: -
size?
Type: ComponentProps<typeof Button>['size']
Default: 'md'
PropTypeDefault
iconReactElement-
label?string-
size?ComponentProps<typeof Button>['size']'md'

ListBox.Content

helpContent?
Type: ReactElement
Default: -
PropTypeDefault
helpContent?ReactElement-
import { ListBox } from '@k8ordo/ui';
const OPTIONS: readonly Option[] = [
  { value: 'apple', label: 'Apple' },
  { value: 'banana', label: 'Banana' },
  { value: 'cherry', label: 'Cherry' },
  { value: 'grape', label: 'Grape' },
  { value: 'melon', label: 'Melon' },
];

const [selected, setSelected] = useState<string>();

<ListBox.Root
  onChange={(value) => setSelected(value)}
  options={OPTIONS}
  value={selected}
>
  <ListBox.Trigger label="Fruit" />
  <ListBox.Content />
</ListBox.Root>
<ListBox.Root onChange={onChange} options={OPTIONS} value={value}>
  <ListBox.Trigger label="Fruit (sm)" size="sm" />
  <ListBox.Content />
</ListBox.Root>

<ListBox.Root onChange={onChange} options={OPTIONS} value={value}>
  <ListBox.Trigger label="Fruit (md)" size="md" />
  <ListBox.Content />
</ListBox.Root>

<ListBox.Root onChange={onChange} options={OPTIONS} value={value}>
  <ListBox.Trigger label="Fruit (lg)" size="lg" />
  <ListBox.Content />
</ListBox.Root>
import { ListIcon } from '@k8ordo/ui';

<ListBox.Root onChange={onChange} options={OPTIONS} value={value}>
  <ListBox.IconTrigger icon={<ListIcon />} label="Fruit" />
  <ListBox.Content />
</ListBox.Root>