Skip to content

Select

Use a select input when a user needs to select one option from a long list
  • Alpha
  • Reviewed for accessibility

Examples

Basic

With grouped options

OptGroup labels are not accessible to all screen readers, so they cannot convey critical information just information that improves usability.

With a placeholder

Select placeholders cannot be used in place of labels and should be used sparingly. They also should not convey critical information.

Props

Select

NameTypeDefaultDescription
block
boolean
falseCreates a full width input element
contrast
boolean
falseChanges background color to a higher contrast color
placeholder
string
Placeholder text to show when no option is selected.
This option is hidden from the dropdown menu when the 'required' prop is set
size
'small' | 'medium' | 'large'
Creates a smaller or larger input than the default.
validationStatus
'error' | 'success' | 'warning'
Style the input to match the status
Additional props are passed to the <select> element. See MDN for a list of props accepted by the <select> element.

Select.OptGroup

The Select.OptGroup component accepts the same props as a native HTML <optgroup>.

Select.Option

The Select.Option component accepts the same props as a native HTML <option>.

Status

Alpha

  • Component props are documented on primer.style/react.
  • Component does not have any unnecessary third-party dependencies.
  • Component can adapt to different themes.
  • Component can adapt to different screen sizes.
  • Component has 100% test coverage.

Beta

  • Component is used in a production application.
  • Common usage examples are documented on primer.style/react.
  • Common usage examples are documented in storybook stories.
  • Component has been reviewed by a systems designer and any resulting issues have been addressed.
  • Component has been manually reviewed by the accessibility team and any resulting issues have been addressed.

Stable

  • Component API has been stable with no breaking changes for at least one month.
  • Feedback on API usability has been sought from developers using the component and any resulting issues have been addressed.
  • Component has corresponding design guidelines documented in the interface guidelines.
  • Component has corresponding Figma component in the Primer Web library.