Skip to content

role combobox

Select draft v0.1.0

Lets people choose one option from a list that opens on demand.

A select shows the current choice in a closed box and opens a list of options when activated; the browser or the platform renders the list, its keyboard interaction and its announcements. It fits a choice among many known values (a country, a time zone, a sort order) where showing every option at once would take too much room. Two to about six options worth reading side by side are a Radio group; a list of actions is a Dropdown.

Tokens

From packages/tokens/src/components/select.tokens.json. Path grammar: select.<part>.<property>[.<option>][.<state>]. Every value aliases a semantic token.

45 tokens

Part container (1)

Token Type Value Resolved CSS
select.container.gap
Between the label, the control, the description and the error message.
dimension {space.4}
4px
--select-container-gap

Part label (3)

Token Type Value Resolved CSS
select.label.color.default color {global.text.on-base.neutral.primary}
light #0E0D0D
dark #D2CECF
--select-label-color-default
select.label.color.disabled color {global.text.state.disabled.default}
light #8C8C8C
dark #9D9B9Cb2
--select-label-color-disabled
select.label.typography typography {body.family}{body.size.sm}{body.weight.medium}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":14,"unit":"px"},"fontWeight":500,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-label-typography-font-family--select-label-typography-font-size--select-label-typography-font-weight--select-label-typography-line-height--select-label-typography-letter-spacing

Part control (27)

Token Type Value Resolved CSS
select.control.min-height.small dimension {space.32}
32px
--select-control-min-height-small
select.control.min-height.medium dimension {space.40}
40px
--select-control-min-height-medium
select.control.min-height.large dimension {space.48}
48px
--select-control-min-height-large
select.control.padding-inline.small dimension {space.8}
8px
--select-control-padding-inline-small
select.control.padding-inline.medium dimension {space.12}
12px
--select-control-padding-inline-medium
select.control.padding-inline.large dimension {space.16}
16px
--select-control-padding-inline-large
select.control.border-radius dimension {corner-radius.xs}
4px
--select-control-border-radius
select.control.border-width dimension {stroke-width.sm}
0.6px
--select-control-border-width
select.control.background.default color {global.bg.level.0.default}
light #FDFDFD
dark #191919
--select-control-background-default
select.control.background.hover color {global.bg.level.0.hover}
light #F7F6F6
dark #212121
--select-control-background-hover
select.control.background.disabled color {global.bg.state.disabled.default}
light #B6B4B41a
dark #7676764d
--select-control-background-disabled
select.control.border-color.default color {global.border.accent.neutral.default}
light #323031
dark #B9B7B7
--select-control-border-color-default
select.control.border-color.invalid color {global.border.base.functional.error.default}
light #C01619
dark #E12A23
--select-control-border-color-invalid
select.control.border-color.disabled color {global.border.state.disabled.default}
light #B6B4B466
dark #363636b2
--select-control-border-color-disabled
select.control.color.default color {global.text.on-base.neutral.primary}
light #0E0D0D
dark #D2CECF
--select-control-color-default
select.control.color.disabled color {global.text.state.disabled.default}
light #8C8C8C
dark #9D9B9Cb2
--select-control-color-disabled
select.control.typography.small typography {body.family}{body.size.sm}{body.weight.regular}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":14,"unit":"px"},"fontWeight":400,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-control-typography-small-font-family--select-control-typography-small-font-size--select-control-typography-small-font-weight--select-control-typography-small-line-height--select-control-typography-small-letter-spacing
select.control.typography.medium typography {body.family}{body.size.md}{body.weight.regular}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":16,"unit":"px"},"fontWeight":400,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-control-typography-medium-font-family--select-control-typography-medium-font-size--select-control-typography-medium-font-weight--select-control-typography-medium-line-height--select-control-typography-medium-letter-spacing
select.control.typography.large typography {body.family}{body.size.lg}{body.weight.regular}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":20,"unit":"px"},"fontWeight":400,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-control-typography-large-font-family--select-control-typography-large-font-size--select-control-typography-large-font-weight--select-control-typography-large-line-height--select-control-typography-large-letter-spacing
select.control.outline-width.focus-visible dimension {focus.ring.width}
2.4px
--select-control-outline-width-focus-visible
select.control.outline-offset.focus-visible dimension {focus.ring.offset}
4px
--select-control-outline-offset-focus-visible
select.control.outline-color.focus-visible color {color.focus.ring}
light #175DD6
dark #9EE7FA
--select-control-outline-color-focus-visible
select.control.transition.duration duration {duration.fast}
150ms
--select-control-transition-duration
select.control.transition.easing cubicBezier {easing.standard}
cubic-bezier(0.2, 0, 0, 1)
--select-control-transition-easing
select.control.padding-inline-end.small dimension {space.28}
28px
--select-control-padding-inline-end-small
select.control.padding-inline-end.medium dimension {space.36}
36px
--select-control-padding-inline-end-medium
select.control.padding-inline-end.large dimension {space.40}
40px
--select-control-padding-inline-end-large

Part indicator (9)

Token Type Value Resolved CSS
select.indicator.font-family fontFamily {font.icon.family}
"Material Symbols Outlined"
--select-indicator-font-family
select.indicator.font-weight fontWeight {font.icon.weight.light}
300
--select-indicator-font-weight
select.indicator.fill number {font.icon.fill.off}
0
--select-indicator-fill
select.indicator.grade number {font.icon.grade.normal}
0
--select-indicator-grade
select.indicator.optical-size number {font.icon.optical-size.20}
20
--select-indicator-optical-size
select.indicator.size.small dimension {size.2}
16px
--select-indicator-size-small
select.indicator.size.medium dimension {size.3}
20px
--select-indicator-size-medium
select.indicator.size.large dimension {size.4}
24px
--select-indicator-size-large
select.indicator.margin-inline
Distance between the chevron and the end edge of the control.
dimension {space.8}
8px
--select-indicator-margin-inline

Part description (3)

Token Type Value Resolved CSS
select.description.color.default color {global.text.on-base.neutral.secondary}
light #323031
dark #B9B7B7
--select-description-color-default
select.description.color.disabled color {global.text.state.disabled.default}
light #8C8C8C
dark #9D9B9Cb2
--select-description-color-disabled
select.description.typography typography {body.family}{body.size.sm}{body.weight.regular}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":14,"unit":"px"},"fontWeight":400,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-description-typography-font-family--select-description-typography-font-size--select-description-typography-font-weight--select-description-typography-line-height--select-description-typography-letter-spacing

Part error-message (2)

Token Type Value Resolved CSS
select.error-message.color color {global.text.on-base.functional.error.default}
light #E12A23
dark #EE5248
--select-error-message-color
select.error-message.typography typography {body.family}{body.size.sm}{body.weight.medium}{font.line-height.normal}{font.letter-spacing.normal}
{"fontFamily":"Inter","fontSize":{"value":14,"unit":"px"},"fontWeight":500,"lineHeight":1.5,"letterSpacing":{"value":0,"unit":"px"}}
--select-error-message-typography-font-family--select-error-message-typography-font-size--select-error-message-typography-font-weight--select-error-message-typography-line-height--select-error-message-typography-letter-spacing

Parts without tokens: fieldoption (they inherit from their parent).