Navigation Menu
StableNavegação principal de um site ou de uma aplicação: uma linha de entradas em que umas são links e outras abrem um painel de links. Composto sobre Base UI Navigation Menu, com uma única superfície flutuante que muda de forma ao passar de um gatilho para o outro em vez de fechar um popup e abrir outro. O painel é navegação, não menu: os links continuam links, alcançáveis por Tab.
Instalação
npx up-web-ds add navigation-menuGera chevron-down para a biblioteca de ícones do projeto (components.json → iconLibrary).
Preview
Basic
Default
With Descriptions
Simple Links
All states
Basic
Default
With Descriptions
Simple Links
Usage
Props
Composition
A raiz renderiza sozinha a superfície flutuante; cada item é um gatilho com o seu painel, ou um link direto na linha.
Metadata
Notas de acessibilidade
Teclado verificado por teste e em navegador: as entradas são um grupo com foco itinerante, ArrowLeft e ArrowRight andam entre gatilhos e links da linha, Enter e ArrowDown abrem o painel do gatilho e levam o foco ao primeiro link; dentro do painel, Tab e as setas percorrem os links, e Tab depois do último segue para a próxima entrada da linha, que abre o seu painel na mesma superfície; Escape fecha devolvendo o foco ao gatilho; todo alvo mostra outline de foco. Leitor de tela verificado por teste: a raiz é um landmark nav nomeado por quem compõe — todos os examples passam aria-label, porque duas nav sem nome são indistinguíveis na lista de landmarks —, cada gatilho é um button com aria-expanded acompanhando o estado e aria-controls apontando para o painel aberto, o chevron é aria-hidden e fica fora do nome, os links do painel continuam links (sem papel menu nem menuitem) e o link da página atual carrega aria-current="page". Touch verificado em viewport de 375px com emulação de toque: gatilhos e links medem acima do piso de 24x24 da política de interação do Up Web DS, o toque abre o painel, a superfície cabe na largura disponível e a linha quebra em vez de empurrar a página para rolagem horizontal. Reduced motion verificado em navegador com prefers-reduced-motion: reduce, e a divisão é o ponto: o fade do painel e da superfície é preservado, encurtado para duration-fast, porque é ele que o Base UI observa para desmontar; o escalonamento de entrada, o deslize lateral entre painéis e o deslocamento da superfície entre gatilhos saem; o chevron perde o tween e continua chegando a 180deg, porque o ângulo é estado. Timing: o upstream usava 0.35s e 300ms fora da escala; a revisão escolheu duration-slow para a superfície que muda de forma e viaja — o mesmo vocabulário do Sheet e do Sidebar — e duration-default para o chevron, como no Accordion e no Collapsible.
Classificação
- Layer
- Component
- Domínio
- Application
- Categoria
- navigation
- Status
- Stable
Origem e distribuição
- Fonte
- shadcn registry / navigation-menu
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- @base-ui/react, class-variance-authority
- Ícones
- chevron-down
- Construído sobre
- Nenhum
- Usado por
- Nenhum ainda