Selection field

Dropdown

Single or multiple selection in a field you can read at rest — chips, a limit, and a panel you may replace entirely.

Reviewers are notified once the pull request opens

v-modelundefined

What the component decides for you

Four rules that are not props. They are the reason the field behaves the same in every app that uses it.

01

A value with no matching item still shows

It renders from a fallback row built out of the value itself, and the model is left alone. Dropping it would quietly rewrite the form.

02

Keyboard order is data order

Rows are walked in the order of items, so inserting one in the middle of a live list cannot send the arrows somewhere else.

03

A blocked row is not a disabled item

max blocks the rows you have not chosen; the selected ones stay reachable, because removing one is the only move left.

04

Validation binds the selection

Bind path and the adapter receives the value, not the text drawn in the box.

Reach for something else when…

A dropdown hides its options behind a click. That is the right trade only sometimes.

01

Two or three options, always visible

Segmented buttons or radios show every choice at once and cost one interaction less.

02

A list nobody can read

Past a screenful, the useful control is a query, not a scroll. Use the autocomplete.

03

A value that is not in the list

A dropdown never invents an option. If the user must be able to add one, that is a combobox, not this.

04

A short, closed set of values

Statuses, countries, reviewers, labels — the case this component exists for.