Pular para o conteúdo
UI

Dropdown Menu

Mostra ao usuário um menu, como um conjunto de ações ou funções, aberto por um botão.

Exemplos

Padrão

Tamanhos

O size do DropdownMenuContent vale para o menu inteiro: itens, checkboxes, radios, rótulos de grupo, separadores, atalhos e submenus seguem o mesmo tamanho. O md é o padrão. No sm, o item tem 32px de altura, texto de 12px e ícone de 16px; no md, 40px, 14px e 20px; no lg, 48px, 16px e 24px. O atalho (DropdownMenuShortcut) e a seta do subtrigger ficam um passo abaixo do texto do item: 10px no sm, 12px no md e 14px no lg.

Checkboxes

Grupo de radio

API

PropriedadeTipoValores possíveisPadrãoDescrição
...propsTodas as props de Radix DropdownMenu.Root--Todas as propriedades nativas do componente DropdownMenu Root do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
asChildbooleantrue, falsefalseQuando true, o componente não renderiza um elemento DOM próprio e usa o elemento filho como trigger.
...propsTodas as props de Radix DropdownMenu.Trigger--Todas as propriedades nativas do componente DropdownMenu Trigger do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao conteúdo do dropdown.
sideOffsetnumber-4Distância em pixels entre o trigger e o conteúdo.
align"start" | "center" | "end""start", "center", "end""center"Alinhamento do conteúdo em relação ao trigger.
size"sm" | "md" | "lg""sm", "md", "lg""md"Tamanho do menu inteiro. Itens, checkboxes, radios, rótulos de grupo, separadores, atalhos e submenus leem esse valor. Fica exposto em data-size no conteúdo.
side"top" | "right" | "bottom" | "left""top", "right", "bottom", "left""bottom"Lado preferido do trigger onde o conteúdo aparece. Com a janela abaixo de 768px de largura, é sempre forçado para "bottom" (veja o useIsMobile). O conteúdo é renderizado dentro de um portal automaticamente.
...propsTodas as props de Radix DropdownMenu.Content--Todas as propriedades nativas do componente DropdownMenu Content do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao item do menu.
insetbooleantrue, falsefalseQuando true, adiciona um recuo extra ao item.
variant"default" | "destructive""default", "destructive""default"Variante visual do item. Use "destructive" para ações de remoção ou exclusão: texto e ícone em vermelho, que escurece no destaque. Desabilitado, o item destrutivo fica cinza como os outros itens desabilitados.
disabledbooleantrue, falsefalseQuando true, desabilita o item do menu.
...propsTodas as props de Radix DropdownMenu.Item--Todas as propriedades nativas do componente DropdownMenu Item do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao item de checkbox.
checkedboolean | "indeterminate"true, false, "indeterminate"falseEstado do checkbox do item.
onCheckedChange(checked: boolean) => void--Função chamada quando o estado do checkbox muda.
childrenReact.ReactNode--Conteúdo do item de checkbox.
...propsTodas as props de Radix DropdownMenu.CheckboxItem--Todas as propriedades nativas do componente DropdownMenu CheckboxItem do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
valuestring--Valor do item de radio selecionado.
onValueChange(value: string) => void--Função chamada quando a seleção do grupo de radio muda.
...propsTodas as props de Radix DropdownMenu.RadioGroup--Todas as propriedades nativas do componente DropdownMenu RadioGroup do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao item de radio.
valuestring--Valor único do item de radio.
childrenReact.ReactNode--Conteúdo do item de radio.
...propsTodas as props de Radix DropdownMenu.RadioItem--Todas as propriedades nativas do componente DropdownMenu RadioItem do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao label.
insetbooleantrue, falsefalseQuando true, adiciona um recuo extra ao label.
...propsTodas as props de Radix DropdownMenu.Label--Todas as propriedades nativas do componente DropdownMenu Label do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao separador.
...propsTodas as props de Radix DropdownMenu.Separator--Todas as propriedades nativas do componente DropdownMenu Separator do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao atalho.
childrenReact.ReactNode--Texto do atalho de teclado (ex.: "⌘K").
...propsTodas as props de span HTML--Todas as propriedades nativas do elemento span HTML.

Agrupa itens relacionados. Aceita todas as props de Radix DropdownMenu.Group e não adiciona estilo extra.

Raiz de um submenu aninhado: envolva com ele um DropdownMenuSubTrigger e um DropdownMenuSubContent.

PropriedadeTipoValores possíveisPadrãoDescrição
openbooleantrue, false-Estado aberto do submenu (controlado).
defaultOpenbooleantrue, falsefalseEstado aberto inicial quando não controlado.
onOpenChange(open: boolean) => void--Função chamada quando o estado aberto do submenu muda.

Renderiza os filhos em document.body via portal (Radix DropdownMenu.Portal). O DropdownMenuContent já é renderizado dentro de um portal, então você só precisa dele para levar um DropdownMenuSubContent para o portal.

PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao trigger do submenu.
insetbooleantrue, falsefalseQuando true, adiciona um recuo extra ao trigger.
childrenReact.ReactNode--Conteúdo do trigger do submenu.
...propsTodas as props de Radix DropdownMenu.SubTrigger--Todas as propriedades nativas do componente DropdownMenu SubTrigger do Radix UI.
PropriedadeTipoValores possíveisPadrãoDescrição
classNamestring--Classes CSS adicionais aplicadas ao conteúdo do submenu.
size"sm" | "md" | "lg""sm", "md", "lg"-Tamanho do submenu. Sem a prop, herda o size do DropdownMenuContent.
...propsTodas as props de Radix DropdownMenu.SubContent--Todas as propriedades nativas do componente DropdownMenu SubContent do Radix UI.