Select

Concept

An input element for choosing one item from a fixed list, collapsed by default and expanded into the full set of options when opened.

Why it exists

When the only way to collect a value on screen was a text field, the same value arrived in many spellings. Ask for a department as free text on a signup form and one table accumulates Engineering, Eng, Dev, and Development. To a human those are one department, but producing a count means merging four rows by hand, and next month a fifth spelling shows up. Any chart built on that column is wrong in a way nobody can see by looking at it.

The problem ran in both directions. Users couldn't tell what they were supposed to write either. Facing a field labeled Country, someone weighs "United States" against "USA" against "US," and sometimes nothing they try gets saved. The product had already decided on one correct answer and simply never put that answer on the screen.

If the answer is known in advance, there is no reason for the user to type it. Show the list and let them pick from it, and spellings collapse into one while typos disappear. Laying every option out flat, though, hands half the screen to a single question. A select solves both problems at once by keeping that list folded away and opening it only when needed.

How it works

A select moves between three states. Collapsed, it shows the current value or a piece of guidance; pressed, the list expands; once an item is chosen, it folds back with that value sitting in place. Four things get decided in the design.

  1. What sits in the collapsed state — before anything is chosen, guidance like "Select one" goes there. That text is a placeholder rather than a list item, so it gets blocked from being chosen as a value. Leave it selectable and forms start arriving with "Select one" stored as somebody's department.
  2. Whether to prefill — where almost everyone picks the same value, filling it in ahead is faster. But a prefilled value is one users pass over without checking. For values that are hard to undo when wrong, like billing currency or permission scope, the field stays empty instead.
  3. The ordering of the list — alphabetical, most-frequently-chosen, or logical. Items with an inherent order, like billing periods, become harder to read alphabetically, not easier. Past about twelve items, the usual approach is grouping the three most common ones at the top with the rest beneath. Whichever ordering gets chosen has to hold across every screen in the product, because a list that reorders itself between pages costs the user a fresh scan each time.
  4. Keyboard operation — reaching the field with Tab, moving through items with arrows, and committing with Enter all have to work without a mouse. Typing a letter should jump to items starting with it. If the label above the field isn't tied to the element, a screen reader can't say what the field is choosing, and this is the single most common finding in an accessibility pass.

Narrow screens change the shape. On mobile, the operating system often slides its own picker up from the bottom, so the same element looks different from device to device. Ordering and wording carry over intact, but trying to make the expanded appearance identical everywhere usually costs a lot and returns little. The native picker is also the one a phone user already knows how to operate.

Where it shows up

The choice among selection elements mostly comes down to option count, and select owns the middle of that range. Four uses come up most often.

  1. Values with roughly five to fifteen options — department, display language, billing period. With only two or three, laying them out as radio buttons, which pick exactly one from a visible set, is faster; past a few dozen, the job moves to typing to narrow.
  2. Forms with many questions — being folded keeps the footprint small. Expand all eight questions and the page triples in length, and users quit before reaching the bottom.
  3. Values that get counted later — a fixed set can be tallied as-is. A free-text field always carries a spelling-merge step in front of any count, and that step has to be repeated every time the question is asked again.
  4. Where it doesn't belong — when several items get chosen together, use a checkbox; when there are only on and off, use a toggle. Values whose list can't be written down — names, search queries — are the job of a plain text input.

How it sounds at work

"Let's move department from a text field to a select. We have twelve spellings right now."

Converting a field whose free text has made counting impossible.

"There are three options. Is there a reason to fold them? Radio buttons show all of it at once."

Using a select where the count is small adds one click for nothing.

"Don't prefill the permission select. People pass it without looking."

The value is hard to undo when wrong, so the field should start empty.

At Pagedeck, Noa went through the settings screen and reassigned each field to an element. Department and display language became selects, the three notification types became toggles because they apply on press, and document permission stayed as radio buttons since it has only three options. While checking that every field could be reached with the keyboard alone, Theo found two selects whose labels weren't tied to the element.

What people get wrong

The most common mistake is reading folded as always better. The saved space is the visible benefit, so that's the reading that sticks. But a folded list shows nothing until it's pressed. Fold a two- or three-option field into a select and users have to click once more without even knowing how many options wait inside. Put three pricing tiers in a select and the chance to compare prices and terms side by side disappears; the screen gets tidier and the share of people reaching checkout goes down. The decision to fold weighs the space saved against what gets hidden.

Treating it as interchangeable with radio buttons is the other one. Both pick exactly one thing, so on function alone they look the same. What they do differs, though. Radio buttons lay the options out for comparison; a select hides the list to save room. When the user has to compare, radio buttons; when they already know the answer and just need to find it, a select. Standardizing an entire form on selects without that distinction raises drop-off on precisely the questions that needed comparing.

Easily confused with

TermWhat it isHow it differs from select
ComboboxAn element that narrows candidates as you typeTyping shrinks the list. It's for cases like country names where 200 candidates make a few keystrokes faster than scanning, while a select is for counts a person can scan by eye

Where to go next

  • UI component

    see which family of parts this element belongs to

  • Text input

    read the element for values whose list can't be written down

Last updated 2026-09-26