Pular para o conteúdo

Modal

Adapter React independente em que Ark UI fornece as parts e Zag mantém foco, teclado, estado e bloqueio do conteúdo externo.

Design

Anatomia

1
1 Overlay (.ds-modal-overlay) — backdrop em tela cheia que bloqueia interação com a página.
2 Container (.ds-modal) — superfície elevada com border-radius e sombra.
3 Header (.ds-modal__header) — contém heading opcional, descrição e button de fechar.
4 Título (.ds-modal__title) — vinculado via aria-labelledby.
5 Button de fechar (.ds-modal__close) — dispensa o modal.
6 Corpo (.ds-modal__body) — área de conteúdo com scroll.
7 Rodape (.ds-modal__footer) — buttons de ação alinhados a direita.

Exemplo interativo · Ark/Zag

Executado pelo adapter independente Ark UI com comportamento Zag.

Carregando preview funcional…

Tamanhos · Ark/Zag

Três dialogs independentes controlados pelas parts Ark UI e pelo comportamento Zag.

Carregando preview funcional…

Body customizado · Ark/Zag

Composição real de campo e ações dentro do adapter Ark/Zag.

Carregando preview funcional…

Mapeamento de tokens

PropriedadeTokenVariável CSS
overlay backgroundcomponent.modal.overlay.bg.default--ds-modal-overlay-bg-default
surfacesemantic.surface.elevated--ds-surface-elevated
overlay paddingcomponent.modal.overlay.padding.default--ds-modal-overlay-padding-default
overlay z-indexcomponent.modal.overlay.z-index.default--ds-modal-overlay-z-index-default
border-radiuscomponent.modal.radius.default--ds-modal-radius-default
shadowcomponent.modal.shadow.default--ds-modal-shadow-default
max-widthcomponent.modal.max-width.{sm,md,lg}--ds-modal-max-width-*
header spacingcomponent.modal.header.{padding-*,gap}.*--ds-modal-header-*-*
body spacing/typographycomponent.modal.body.{padding-*,font-size,line-height,font-weight}.*--ds-modal-body-*-*
description typographycomponent.modal.body.{font-size,line-height,font-weight}.*--ds-modal-body-*-*
title typographycomponent.modal.title.{font-size,line-height,font-weight,letter-spacing}.*--ds-modal-title-*-*
footer spacingcomponent.modal.footer.{padding-*,gap}.*--ds-modal-footer-*-*
close targetcomponent.modal.close.size.{sm,md,lg}--ds-modal-close-size-*
close iconcomponent.modal.close.icon-size.{sm,md,lg}--ds-modal-close-icon-size-*
close paddingcomponent.modal.close.padding.{sm,md,lg}--ds-modal-close-padding-*