Skip to main content
161

Search Lumen

Find components, APIs, guides, and recipes.

GitHub
Web docs
Forms

ListBox

Presents a visible single- or multi-select option list.

FrameworksAstro · React · Elements

Registry commandlumen add ListBox

InteractionEnhanced runtime

01

See it and copy it

Framework example

Choose Astro, React, or Elements to compare native usage against the shared visual output. Each example assumes the framework-level setup is already complete.

AstroSame visual contract, native framework API

Framework usage

Switch targets to compare the adapter code. The preview stays visually stable because all three packages share the same tokens and ui-* class contract.
astro
---
import { ListBox } from '@santi020k/lumen-astro'
---

<ListBox
  label="Team members"
  multiple
  name="members"
  options={[
    { label: 'Amina', section: 'Design', value: 'amina' },
    { label: 'Luca', section: 'Design', value: 'luca' },
    { label: 'Theo', section: 'Engineering', value: 'theo' }
  ]}
  value={['amina']}
/>
Edit ListBox in browser
02

Choose your target

Add this component

Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.

bash@santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
bashAstro wrapper
lumen add ListBox
lumen add ListBox

API reference

Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.

AttributeValuesDefaultDescription
optionsArray<string | { label, value, disabled?, section? }>[]Defines options and optional accessible sections.
valuestring | string[]-Controls the selected value or values.
multiplebooleanfalseAllows more than one selected value while preserving native form submission.
loadingbooleanfalseMarks the collection busy and disables selection while options load.
emptyMessagestring"No options available"Labels the empty collection state.
selectionFollowsFocusbooleanfalseSelects each enabled option as keyboard focus moves instead of waiting for Space or Enter.
class, classNamestring""Merges custom classes with the generated ui-* root classes.
...native attributesHTML attributes-Forwards standard attributes to the root element unless the component consumes them.

Keyboard interactions

Keyboard behavior provided by the Astro UIPrimitives runtime for this component.

KeyAction
Arrow Down / Arrow UpMoves the active option, skipping disabled options.
Home / EndMoves to the first or last enabled option.
Space / EnterSelects or toggles the active option.
Type charactersMoves to the first enabled option whose label matches the typed prefix.

Web docsFull catalog