RRigdesign system
Inputs

Select

Pick one value from a list. Same visual language as Input field.

Examples

States

Rendered states (visual reference; the live example above is the accessible one)
DefaultHoverFocus visiblePressedDisabled
Closed

Anatomy

Select anatomy
#PartDescriptionPresence
1LabelAbove, always visibleRequired
2TriggerPill, 36 / 44 / 52pxRequired
3ChevronDecorativeRequired
4ErrorBelow the triggerOptional

Specifications

HeightsSmall 36px · Medium 44px · Large 52px
Horizontal padding8px / 12px by size
Font size14px to 18px with size
Focus1.5px stroke in primary indigo
RadiusPill

Interaction

Keyboard
KeyResult
TabMoves focus
Space Enter ↓Opens the list
↑ ↓Changes the value
Type a letterJumps to a matching option
EscCloses without changing
Pointer and touch
TriggerResponse
ClickOpens the platform list
Focus1.5px indigo stroke
TouchOpens the OS picker, which users already know

Accessibility

role · combobox (native select)

1.3.1Info and Relationships1.4.11Non-text Contrast2.1.1Keyboard4.1.2Name, Role, Value
Requirements
RequirementHow Rig meets it
Native selectUse <select> up to about 15 options. It is accessible on every device out of the box.
Custom listboxOnly if you need rich options; then follow the APG select-only combobox pattern
Label<label for> pointing at the select
Erroraria-invalid and a linked message

Read the matching WAI pattern ↗

Usage

Do and don’t
DoDon’t
Use for 7 or more optionsDo not use for 2 to 3 options (use Radio)
Show the current value, not a placeholder, once chosenDo not trigger navigation on change (WCAG 3.2.2)

Notes from the Figma file

  • Error text renders beneath the trigger when State is Error.