Layer · Forms
BetaSelect.
bau-select
Rich single-value dropdown. Each option carries a title, an
optional subtitle and an icon slot — perfect for type pickers,
status menus, country selectors. Form-associated via
ElementInternals; full keyboard support.
Playground
Pick an option to see the trigger update. Toggle required + disabled, copy the markup below.
Use cases
Three patterns that exercise title + subtitle + icon. Subtitles let users pick by intent rather than memorising vocabulary.
Issue priority
Required selection
Inline language (no icons)
Grouped — assignee picker
Empty state
API
| Attribute | Type | Default | Description |
|---|---|---|---|
label |
string | '' | Caps-micro label above the trigger. |
name |
string | '' | Form field name. Submitted via ElementInternals. |
value |
string | '' | Currently selected option's value. |
placeholder |
string | '' | Shown in the trigger when no value is selected. |
required |
boolean (reflected) | false | Sets valueMissing when no value selected. Adds * to the label. |
disabled |
boolean (reflected) | false | Trigger non-interactive, panel won't open. |
open |
boolean (reflected) | false | Panel visibility. Toggleable from outside. |
bau-option
Slot child of bau-select. Each option carries its
own value plus rich display.
| Attribute / Slot | Description |
|---|---|
value | String submitted when this option is selected. |
title | Primary line of the option. |
subtitle | Mono-caps secondary line. |
disabled | Skipped by keyboard navigation, not selectable. |
slot="icon" | Leading icon (typically inline SVG, ~1.25rem). Mirrored to the trigger when selected. |
bau-option-group
Optional wrapper around bau-option children. Renders a
caps-mono header and a hairline divider between groups. Setting
disabled on the group disables every nested option —
keyboard navigation skips them and they cannot be committed.
| Attribute | Description |
|---|---|
label | Group header text. Mono caps, gedimmt. |
disabled | Disables every nested option in one stroke. |
Keyboard
| Key | Behavior |
|---|---|
↓ / ↑ | Open the panel. When open, move the active cursor. |
Home / End | Jump to first / last option. |
Enter / Space | Open the panel; commit the active option when open. |
Escape | Close the panel, return focus to the trigger. |