Pular para o conteúdo

Tabs

Alterna entre visões do mesmo contexto sem sair da página.

As Tabs organizam conteúdo irmão em abas: Geral, Jornada e Eventos de um Pedido. Use para visões do mesmo objeto; para navegar entre telas, use links, e para esconder conteúdo opcional, Accordion.

import { Tabs } from "@rastreio-x/ui";

Padrão

A lista de abas fica em Tabs.ListContainer > Tabs.List; cada Tabs.Tab tem um id e leva um Tabs.Indicator. Cada Tabs.Panel casa pelo mesmo id.

Playground

Troque variante, orientação e alinhamento e use o teclado para navegar entre as abas.

Variante secundária

variant="secondary" troca o indicador preenchido por um sublinhado, mais leve para telas densas.

Vertical

orientation="vertical" empilha as abas, como em menus de configuração. Use align="start" para alinhar o texto.

Aba desabilitada

Explique no próprio rótulo por que ela não abre. Tabs.Separator desenha o divisor entre abas.

Controlado

Com selectedKey e onSelectionChange você sincroniza a aba com o estado ou a URL.

Anatomia

  • Tabs.ListContainer: contêiner com rolagem e bordas esmaecidas quando as abas não cabem.
  • Tabs.List: a lista, que precisa de aria-label.
  • Tabs.Tab e Tabs.Indicator: a aba e o indicador deslizante.
  • Tabs.Panel: o conteúdo de cada aba.

Propriedades

Raiz (Tabs):

Aba (Tabs.Tab):

Animações

O indicador desliza entre abas em 250 ms (translate, width e height), e o painel troca com um fade curto de 150 ms. Com prefers-reduced-motion, a folha global da fachada reduz as transições a 0,01 ms: o indicador salta direto.

Acessibilidade

  • Papéis tablist, tab e tabpanel; aria-selected marca a aba ativa e aria-controls liga aba e painel.
  • Teclado: Tab entra na lista, setas movem entre abas (esquerda e direita; em vertical, cima e baixo), Home e End vão às pontas.
  • Passe aria-label em Tabs.List ("Seções do Pedido").
  • A aba ativa não depende só da cor: o indicador e aria-selected também marcam.

Boas práticas

Faça

Poucas abas (até cinco), com rótulos curtos e substantivos: Geral, Jornada, Eventos.

Evite

Abas para navegar entre telas diferentes, ou rótulos longos que quebram em duas linhas.
  • O título da página não se repete como rótulo de aba.
  • Não esconda o Checklist ou informação crítica atrás de uma aba.
  • Mantenha a ordem das abas estável entre visitas.
  • Para mais de seis visões, reveja a estrutura da página.

Relacionados

  • Accordion para conteúdo opcional recolhível.
  • Breadcrumbs para a hierarquia entre páginas.
  • Widget para o conteúdo dentro de cada aba.