Ir para o conteúdo

Drawer

Painel que desliza a partir de uma borda da tela.

Navegadores
Chrome 123+Firefox 121+Safari 17.5+
Nível
0
Tamanho compactado
4.01 kB
Limite de layout forçado
0 ms
Limite do axe
0
Compatível com SSR
Sim
Construído sobre
elements/dialog
Contrato publicado
Ambiente de teste

Experimentar

Drawer

Fechado

Configurações

Ajuste as preferências do seu espaço de trabalho.

Em telas menores, este painel vira um painel inferior. Deslize para baixo pela alça, clique no fundo ou use Fechar.

Pontos de parada

Atividade

Arraste a alça para expandir ou fechar o painel.

A atividade recente aparece aqui.

Larguras

Painel SM

Os controles do diálogo nativo funcionam antes da hidratação.

No celular, vira um painel inferior.

Painel MD

Os controles do diálogo nativo funcionam antes da hidratação.

No celular, vira um painel inferior.

Painel LG

Os controles do diálogo nativo funcionam antes da hidratação.

No celular, vira um painel inferior.

Painel FULL

Os controles do diálogo nativo funcionam antes da hidratação.

No celular, vira um painel inferior.

Lados

Configurações do espaço de trabalho

Ajuste as preferências do espaço de trabalho.

Configurações do espaço de trabalho

Ajuste as preferências do espaço de trabalho.

Configurações do espaço de trabalho

Ajuste as preferências do espaço de trabalho.

Configurações do espaço de trabalho

Ajuste as preferências do espaço de trabalho.

API

DrawerPanel

PropTipoPadrãoDescrição
size"sm" | "md" | "lg" | "full""md"Larguras em computadores: 24rem, 32rem, 40rem ou largura disponível. Em dispositivos móveis, todos os tamanhos viram painéis inferiores verticais.
dismiss"any" | "closerequest" | "none""any"Política nativa de fechamento. Any permite fundo, Escape e gesto para baixo em dispositivos móveis; none exige um controle explícito de fechamento.
backdrop"opaque" | "transparent""opaque"Aparência do fundo; não altera a semântica modal.
id*string—Id único do diálogo para o qual o acionador e o botão de fechar apontam, permitindo abrir e fechar o painel antes da hidratação.
trigger*ReactNode—Conteúdo do botão que abre o painel.
title*ReactNode—Título renderizado dentro do painel e usado como nome acessível.
descriptionReactNode—Texto de apoio renderizado abaixo do título e referenciado por aria-describedby.
childrenReactNode—Conteúdo do corpo entre a descrição e o botão de fechar.
side"top" | "right" | "bottom" | "left""bottom"Borda pela qual o painel desliza para entrar.
closeLabelstring"Close"Rótulo acessível do ícone circular de fechar.
classNamestring—Classe aplicada ao elemento de diálogo.

Drawer.Root (client)

PropTipoPadrãoDescrição
openboolean—Estado de abertura controlado.
defaultOpenboolean—Estado de abertura inicial não controlado.
onOpenChangeDialogChangeHandler—Chamado com o próximo estado de abertura e os detalhes da causa da mudança.
side"top" | "right" | "bottom" | "left""bottom"Borda pela qual o painel desliza para entrar, que também define o eixo de arraste.
modalbooleantrueAbra com showModal() para deixar o restante da página inerte atrás de um fundo.
dismissiblebooleantruePermita arrastar além do último ponto de parada para fechar o painel.
snapPointsreadonly number[]—Frações do tamanho do painel em que ele se fixa ao ser arrastado.
activeSnapPointnumber—Ponto de parada controlado, como um dos valores de snapPoints.
defaultActiveSnapPointnumber—Ponto de parada inicial não controlado.
onSnapChange(snap: number) => void—Chamado com o ponto de parada em que o painel se fixou.
childrenReactNode—As partes Trigger, Content e internas.

Drawer.Trigger (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada ao botão acionador.
onClick(event: MouseEvent<HTMLButtonElement>) => void—Chamado quando o acionador é clicado, antes de o painel abrir.
refRef<HTMLButtonElement>—Ref do botão acionador, que recebe foco novamente quando o painel fecha.
childrenReactNode—Conteúdo do botão acionador.

Drawer.Content (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada ao elemento de diálogo.
styleCSSProperties—Estilo inline combinado com a transformação de arraste aplicada pelo painel.
onCancelReactEventHandler<HTMLDialogElement>—Chamado no evento cancel do diálogo nativo, como ao pressionar Escape.
onCloseReactEventHandler<HTMLDialogElement>—Chamado no evento close do diálogo nativo.
refRef<HTMLDialogElement>—Ref do elemento de diálogo.
childrenReactNode—Conteúdo do painel.

Drawer.Title (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada ao elemento de título.
childrenReactNode—Conteúdo do título, que se torna o nome acessível do painel.

Drawer.Description (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada ao elemento de descrição.
childrenReactNode—Conteúdo da descrição, referenciado por aria-describedby.

Drawer.Close (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada ao botão de fechar.
onClick(event: MouseEvent<HTMLButtonElement>) => void—Chamado quando o botão de fechar é clicado, antes de o painel fechar.
childrenReactNode—Conteúdo do botão de fechar.

Drawer.Handle (client)

PropTipoPadrãoDescrição
classNamestring—Classe aplicada à alça de arraste.
onPointerDown(event: PointerEvent<HTMLDivElement>) => void—Chamado quando um arraste começa na alça.
onPointerMove(event: PointerEvent<HTMLDivElement>) => void—Chamado conforme o ponteiro se move durante um arraste.
onPointerUp(event: PointerEvent<HTMLDivElement>) => void—Chamado quando o arraste termina e o painel se fixa em um ponto de parada.
onPointerCancel(event: PointerEvent<HTMLDivElement>) => void—Chamado quando o navegador cancela o arraste.

Teclado

TeclaAção
Enter / SpaceAbra o diálogo pelo acionador ou ative Close
EscapeSolicite o fechamento, exceto quando dismiss for none
Tab / Shift+TabMova o foco dentro do diálogo modal

Acessibilidade

DrawerPanel usa um diálogo com ids de destino; por isso, abertura, fechamento, contenção e retorno de foco funcionam antes da hidratação; dismiss controla o fundo e Escape. Os painéis têm larguras sm, md, lg e full e viram painéis inferiores em celulares. O gesto começa na alça ou no cabeçalho, mantendo a rolagem do corpo. A API de cliente acrescenta estado controlado e pontos de parada.

Pontos de integração de estilos

data-uiify-drawerdata-partdata-sidedata-sizedata-backdropdata-statedata-dragging--uiify-drawer-inline-size--uiify-drawer-transform--uiify-sheet-offset