Star

Multi Select

zyra-multi-select

Select multiple options from a dropdown list, shown as dismissible chips in the trigger — extends the same option/keyboard model as ZyraSelect.

API

All inputs and configuration options for zyra-multi-select.

PropTypeDefaultDescription
placeholderstring'Select options'Text shown when nothing is selected
size'sm' | 'md' | 'lg''md'Height and font scale
appearance'outline' | 'filled' | 'underline''outline'Visual style of the trigger
maxChipsnumber3Maximum chips shown before collapsing into "+N more"

Tokens

CSS custom properties zyra-multi-select reads at runtime — override any of these in your own stylesheet after @use 'zyra-ng-ui'; to restyle it without touching the component itself.

TokenDefault points toDescription
Text
--zyra-color-select-text
var(--zyra-color-foreground)Color of the selected value / chip text in the trigger.
Placeholder
--zyra-color-select-placeholder
var(--zyra-color-foreground-subtle)Color of the placeholder text when nothing is selected.
Icon
--zyra-color-select-icon
var(--zyra-color-foreground-subtle)Color of the chevron/caret icon.
Background
--zyra-color-select-bg
var(--zyra-color-input-bg)Fill color of the trigger in the outline/filled appearances.
Border
--zyra-color-select-border
var(--zyra-color-input-border)Border color of the trigger in its resting state.
Filled background
--zyra-color-select-filled-bg
var(--zyra-color-surface-inset)Fill color specific to the filled appearance.
Focus border
--zyra-color-select-focus-border
var(--zyra-color-primary)Border/underline color of the trigger when focused or open.
Panel background
--zyra-color-select-panel-bg
var(--zyra-color-surface-dropdown)Fill color of the options panel.
Panel border
--zyra-color-select-panel-border
var(--zyra-color-border-color)Border color of the options panel.

Accessibility

Built to meet WCAG 2.0 AA. These notes cover the key ARIA, keyboard, and interaction behaviours.

  • Panel uses role="listbox" with aria-multiselectable="true"
  • Trigger is a div with role="button" (not <button>) since chip dismiss buttons nest inside it
  • Arrow keys navigate options; Enter/Space toggles; Escape closes; Tab dismisses
  • Each chip's dismiss button is independently focusable and keyboard-operable