Segmented Control
StableUma escolha entre poucas opções, com todas visíveis ao mesmo tempo. Compartilha a escala de altura com o Tabs. É primitive e não recipe: o que ele acrescenta é semântica própria — grupo nomeado de seleção única com foco itinerante e tamanho que desce por contexto — não uma aparência de outro primitive. Para uma barra de ferramentas ou seleção múltipla, feita de toggles com a forma do Button, use o Toggle Group.
Instalação
npx up-web-ds add segmented-controlPreview
Default
Sizes
With Icon
Disabled
Vertical
All states
Default
Sizes
With Icon
Disabled
Vertical
Usage
Props
SegmentedControl
Estende ToggleGroupPrimitive.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
SegmentedControlItem
Estende TogglePrimitive.Props. Aceita também os atributos padrão de um elemento React (283 não listados).
Composition
A linha carrega o nome e o tamanho; cada segmento é um item dela. O tamanho é declarado uma vez no root e desce por contexto — repetido por item, é um tamanho que alguém esquece.
Metadata
Notas de acessibilidade
Teclado e leitor de tela verificados por teste: a linha é um group nomeado — sem nome ela anuncia como um punhado de botões sem relação, e "Grade, pressionado" diz o que está ligado mas nunca sobre o quê. O foco é roving: Tab entra uma vez e as setas percorrem os segmentos com wrap, então um controle de três opções custa uma parada e não três. Escolher um solta o outro; uma linha com dois segmentos pressionados parou de responder à própria pergunta. Um segmento desabilitado permanece na linha, anunciado como desabilitado, em vez de renumerá-la e mover o que as setas alcançam. O anel de foco é visível, verificado em navegador ao chegar pelo teclado. Touch verificado em viewport de 375px com emulação de toque: os três tamanhos medem 32, 36 e 40px de altura no layout real — acima do mínimo de 24x24 da WCAG 2.2 SC 2.5.8 — e o toque escolhe. Reduced motion verificado em navegador com prefers-reduced-motion: reduce — a transição é de cor e sombra, resposta a input e não movimento, então permanece: não há deslocamento a gatear.
Classificação
- Layer
- Primitive
- Domínio
- Domain-free (compartilhado)
- Categoria
- navigation
- Status
- Stable
Origem e distribuição
- Fonte
- coss registry / segmented-control
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- class-variance-authority
- Ícones
- Nenhum
- Construído sobre
- Nenhum
- Usado por
- Tabs