Pular para o conteúdo

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 um Segment.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 ToggleButtonGroup do React Aria: cada item é um botão com aria-pressed, dentro de um grupo com aria-label.
  • Teclado: Tab entra no grupo, setas movem o foco, Espaço ou Enter escolhem.
  • Sempre há um item escolhido; use defaultSelectedKey ou selectedKey.
  • A opção ativa não depende só da cor: o indicador também a marca.

Boas práticas

Faça

Duas a cinco opções curtas, em substantivos ou adjetivos: Todos, Exceções, Pausados.

Evite

Opções longas que quebram linha, ou um Segment para navegar entre páginas.
  • Dê aria-label ao 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