Segment
Escolhe uma entre poucas visões ou modos, num controle compacto.
O Segment é o controle segmentado: de duas a cinco opções mutuamente exclusivas que mudam a visão logo abaixo, como "Todos / Exceções / Pausados" ou o idioma da prévia. Para trocar de seção com conteúdo próprio use Tabs; para uma lista longa de opções, Select.
import { Segment } from "@rastreio-x/ui";
Padrão
Cada Segment.Item tem um id. O controle exige aria-label, porque não há rótulo visível.
Tamanhos
sm, md (padrão) e lg. No Admin, sm é o usual em barras de ferramentas.
Fantasma
variant="ghost" tira o fundo do contêiner e deixa só o indicador, para contextos discretos.
Com ícones
Ícone mais texto: o ícone é decorativo (aria-hidden).
Controlado
selectedKey e onSelectionChange sincronizam a escolha com o estado ou com a URL.
Desabilitado
O controle todo (isDisabled) ou só um item.
Anatomia
Segment: o grupo de botões de alternância, com escolha única.Segment.Item: cada opção, com o indicador de seleção deslizante.Segment.Separator: divisor opcional, sempre dentro de umSegment.Item.
Propriedades
Segment:
Segment.Item:
Animações
O indicador desliza até a opção escolhida em transição curta de CSS. Com prefers-reduced-motion, a folha global da fachada reduz a transição a 0,01 ms: o indicador salta direto.
Acessibilidade
- Baseado em
ToggleButtonGroupdo React Aria: cada item é um botão comaria-pressed, dentro de um grupo comaria-label. - Teclado: Tab entra no grupo, setas movem o foco, Espaço ou Enter escolhem.
- Sempre há um item escolhido; use
defaultSelectedKeyouselectedKey. - A opção ativa não depende só da cor: o indicador também a marca.
Boas práticas
Faça
Evite
- Dê
aria-labelao grupo ("Visão dos Pedidos"). - Mantenha a ordem estável e a primeira opção como padrão.
- Para mais de cinco opções, troque por
Select.
Relacionados
- Tabs para seções com conteúdo próprio.
- Select para listas maiores.
- RadioButtonGroup para uma escolha em formulário.