Pular para o conteúdo

Select

Recipe React distribuída como source, com comportamento Base UI e classes/tokens públicos do Select TIS.

Design

Preview funcional

Executado pela recipe React distribuída via shadcn e baseada em Base UI.

Carregando preview funcional…

Anatomia

7
1 2 3 4
Please select a country. 5
Choose one country from the list. 6
1 Wrapper (.ds-select) — container com borda, radius.
2 Ícone (opcional, .ds-select__icon) — ícone à esquerda, decorativo.
3 Campo (.ds-select__field) — elemento nativo <select>.
4 Seta (.ds-select__arrow) — chevron customizado, pointer-events: none.
5 Mensagem de erro (.ds-field__error) — externa, via Form Field.
6 Texto auxiliar (.ds-field__helper) — externo, via Form Field.
7 Label (.ds-field__label) — externo, via Form Field.

Padrão

Helper text

Tamanhos

SizeHeightFontPaddingTouch target
Small (--sm)32px (component.select.height.sm)component.select.text.font-size.smcomponent.select.padding-x.sm / component.field.padding-y.sm32px — meets WCAG 2.5.8 min (24px)
Medium (--md)40px (component.select.height.md)component.select.text.font-size.mdcomponent.select.padding-x.md / component.field.padding-y.md40px
Large (--lg)48px (component.select.height.lg)component.select.text.font-size.lgcomponent.select.padding-x.lg / component.field.padding-y.lg48px — meets AAA 44px target

Com ícone

Estados

No Figma, State representa apenas estados visuais exclusivos: Default, Hover, Focus e Disabled. Filled, Error e Read-only são propriedades separadas; Error combina com Default/Hover/Focus, e Read-only combina com Default/Focus.

Error

Please select a country. Choose one country from the list.

Disabled

Readonly

Figma propertyValue / CSS triggerVisual changeToken
StateDefaultNeutral bordercomponent.field.border-color.default
StateHover / :hoverDarker bordercomponent.field.border-color.hover
StateFocus / :focus-visible2px outline ring, component radiuscomponent.field.border-color.focus, component.focus-ring.*, component.select.focus-ring.radius.default
StateDisabled / [disabled]Muted bg + content, no pointer eventscomponent.field.bg.disabled, component.field.value.color.disabled, component.field.placeholder.color.disabled
ErrorTrue / .ds-select--error or .ds-field--error .ds-selectRed border and error focus ringcomponent.field.border-color.error, component.focus-ring.color.error
Error + StateTrue + Hover / .ds-select--error:hoverDarker red bordercomponent.field.border-color.error-hover
Read-onlyTrue / .ds-select--readonly + [disabled]Readonly bg and content treatment; native select has no real readonly focuscomponent.field.bg.readonly, component.field.value.color.readonly

Propriedades Figma

PropriedadeTipoPadrãoDescrição
Show LabelBooleantrueExibe ou oculta o label row (incluindo asterisco de obrigatório)
LabelText"Rótulo"Texto do label (label/md)
RequiredBooleanfalseExibe o asterisco * em feedback/error/content/default ao lado do label
Show Helper TextBooleantrueExibe ou oculta o texto auxiliar abaixo do controle
Helper TextText"Texto auxiliar"Anotação em caption/sm (content/secondary)