Menubar
Barra de menus — uma fileira de menus, como Arquivo, Editar e Exibir num programa de computador. Use só em telas com cara de aplicativo e muitos comandos, como um editor; numa página comum, uma barra de ferramentas ou alguns botões de menu são mais fáceis de achar.
Instalação
Configure o Camaleo uma vez (Instalação) e importe as partes que precisar. Os menus renderizam num portal e mantêm o estilo, o modo e a cor da página em volta.
import { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, MenubarSeparator } from "@camaleo/react";Anatomia
O Menubar é a barra, uma parada só do Tab. Cada MenubarMenu junta um MenubarTrigger na barra com um popup MenubarContent, renderizado num portal. Dentro vão os itens, os itens de marcar, os de opção e os submenus.
Exemplos
Cada exemplo é um arquivo real que você pode copiar. Todos usam o estilo, o modo e a cor escolhidos na barra acima, e todos começam fechados.
Com atalhos
Mostre cada atalho com Kbd para a pessoa aprender enquanto navega, e adicione aria-keyshortcuts para o leitor de tela falar também. A barra só mostra o atalho: as teclas você liga no seu app.
Itens de marcar
Abra Exibir e desligue a régua. O MenubarCheckboxItem continua aberto depois do clique e informa aria-checked, então dá para mudar várias opções seguidas.
Itens de opção
Escolha um nível de zoom. O MenubarRadioGroup serve para um valor entre poucos; cada item é lido como "marcado" ou "não marcado".
Submenu
Agrupe variações de um comando, como os formatos de exportação, num MenubarSub. Fique num nível só: cada nível é mais um passar do mouse e mais uma seta.
Desativado, com o motivo
Deixe o comando indisponível no lugar para a pessoa aprender onde ele fica, e diga o porquê no item: itens desativados continuam recebendo foco, então o motivo é lido junto com o nome.
Destrutivo, com confirmação
Escolha "Excluir documento". Ele vem por último, depois de um separador, e abre um AlertDialog; o finalFocus devolve o foco para Arquivo quando ele fecha.
Agir e avisar
Escolha um comando. O foco volta para o gatilho do menu, e uma linha com role="status" conta ao leitor de tela o que aconteceu, porque o menu que mostrava a ação sumiu.
Em contexto
A menubar fica no alto da janela de um app, acima do trabalho. São pedaços inteiros de interface para copiar, no estilo que você escolheu.
Boas práticas
Plano de lançamento do 4º tri: app de celular em 18/11 e novo preço em 01/12.
Editores, planilhas e ferramentas de design têm dezenas de comandos; Arquivo, Editar e Formatar dão a cada um um lugar que a pessoa já conhece.
Os itens não são links: nada de clique do meio, nada de "abrir em nova aba", e setas que quem visita um site não espera. Use um NavigationMenu.
Os separadores dividem criar, salvar e imprimir, então a pessoa percorre três grupos curtos em vez de uma lista comprida.
Imprimir ao lado de Novo, Excluir ao lado de Renomear: a pessoa lê linha por linha, e um deslize cai no item errado.
Props
Kbd. Só aparece: use junto com aria-keyshortcuts e ligue as teclas você mesmo."danger" pinta de vermelho um item destrutivo.<a> para um link.Estas são as props do MenubarItem. O Menubar aceita modal, disabled, loopFocus e orientation, e precisa de um aria-label. O MenubarCheckboxItem aceita checked, defaultChecked, onCheckedChange e shortcut; o MenubarRadioGroup aceita value, defaultValue e onValueChange. O MenubarMenu aceita as props da raiz de menu do Base UI, como open e onOpenChange.
Styling hooks
Mude o visual sem copiar o componente: use os atributos ou defina os tokens num elemento pai, num estilo ou na própria barra.
Atributos
Tokens que ele lê
Cor
Forma e tamanho
Tipografia e movimento
Só deste componente
Acessibilidade
- A barra é role=menubar e precisa de um aria-label. Os gatilhos são menuitem com aria-haspopup e aria-expanded; itens de marcar e de opção informam aria-checked.
- Com um menu aberto, passar o mouse por outro gatilho da barra troca de menu, como num programa de computador.
- Os atalhos no Kbd só aparecem. Adicione aria-keyshortcuts para o leitor de tela falar e trate as teclas no seu app.
- Depois de um comando o menu some: conte o resultado com role="status" e deixe o foco no gatilho.