# Select
> Generated from select.contract.json — do not edit by hand.

Pick one value (or several) from a known set — with type-to-search — rendered through the shared Select.

Tier: **composite-antd**. Frameworks: HTML (paste-and-run, no build step) · React · Vue 3.

Surfaces: editor, dashboard, settings.

## Props
| Prop | Type | Default | Notes |
| --- | --- | --- | --- |
| `options` | { label, value }[] | `[]` | The selectable set |
| `value` | string | string[] | `—` | Selected value(s); array when mode=multiple |
| `showSearch` | boolean | `true` | Type to filter options |
| `mode` | single | multiple | tags | `single` | Selection cardinality |
| `size` | small | default | large | `default` | Control height 24 / 32 / 40 |
| `status` | error | warning | `—` | Validation border colour |
| `allowClear` | boolean | `false` | Show an × to clear the selection |
| `disabled` | boolean | `false` | Non-interactive, muted control |
| `loading` | boolean | `false` | Spinner while async options load |
| `placeholder` | string | `—` | Hint shown when empty |
| `onChange` | (value) => void | `—` | Fires with the new selection |

## Visual standard (measured)
- Control: height 32 · radius 8 · 1px #E3E3E3 border
- Search: showSearch — type to filter options
- Focus: brand #6A1EBB border
- Selected option: brand-tint #F9F5FF row, #6A1EBB label
- Placeholder: #8A8A8A
- Size: small 24 · default 32 · large 40
- Status: error #F5222D · warning #FAAD14 border

## When to use
- **Select** — one value from a known set of more than ~5 options — don't make the user type it
- **Radio** — 2–5 mutually-exclusive options all worth showing at once
- **Input** — free text that isn't a known set

Pre-select the recommended default rather than leaving it empty. Keep option labels short and sentence case; for long lists keep showSearch on. For a short, known set (or a select inside a shadow-DOM surface like a settings row) reach for the leaf Select field (slug `select-field`, <aha-select>) instead — this composite is for search / tags / multi / virtualised lists.
