Components / Fullscreen Dialog

Fullscreen Dialog

The fullscreen builder-overlay chrome: real Dialog semantics (portal, backdrop, Esc, focus trap) on a fixed fullscreen frame with the ElleMark header, a round close button, and an optional fixed footer action bar. Used by the slideshow builders and reference pickers.

import { FullscreenDialog, FullscreenDialogFooter } from '@layers/ui/fullscreen-dialog'

Rendered stock

House rules

  • Deliberately NOT unified with FullscreenModal (founder ruling 2026-07-08): FullscreenModal is the titled viewer surface, FullscreenDialog is the builder/picker surface.
  • Controlled only: the caller owns open/onOpenChange; ariaLabel names the dialog (it feeds both the aria-label and the sr-only title — the chrome has no visible title).
  • footerPadding (default true) reserves 72px so scrolled content clears the FullscreenDialogFooter; pass false when the content lays itself out against the footer with fixed positioning.
  • FullscreenDialogFooter is the one footer bar: actions go in children (right slot), secondary/back content in the left slot — never hand-write the wrapper markup.
  • Styles ship with the component (fullscreen-dialog.css is self-imported); no consumer-side stylesheet wiring.