Dialog
Modal dialog for important user interactions. Captures focus and requires user action.
Installation
Import
import { Dialog } from '@svelte-atoms/core/dialog';Preset Configuration
Customize the dialog appearance using presets
You can customize the default styles for Dialog components by defining presets in your configuration:
Examples
Explore different dialog variations
Basic Dialog
Simple modal dialog
Code
<script lang="ts">
let open = $state(false);
</script>
<button onclick={() => open = true}>Open Dialog</button>
<Dialog.Root bind:open>
<Dialog.Content>
<Dialog.Header>
<h2>Dialog Title</h2>
</Dialog.Header>
<Dialog.Body>
<p>Dialog content goes here.</p>
</Dialog.Body>
<Dialog.Footer>
<button onclick={() => open = false}>Close</button>
</Dialog.Footer>
</Dialog.Content>
</Dialog.Root>Alert Dialog
Dialog for critical actions
Code
<Dialog.Root bind:open variant="alert">
<Dialog.Content>
<Dialog.Header>
<h2>Are you sure?</h2>
</Dialog.Header>
<Dialog.Body>
<p>This action cannot be undone.</p>
</Dialog.Body>
<Dialog.Footer>
<button>Cancel</button>
<button>Confirm</button>
</Dialog.Footer>
</Dialog.Content>
</Dialog.Root>API Reference
Dialog.Root Props
Prop
Type
Default
Description
open
boolean
false
Control open state
modal
boolean
true
Modal behavior with backdrop
closeOnEscape
boolean
true
Close on Escape key
closeOnOutsideClick
boolean
true
Close on backdrop click
Accessibility
Built-in Accessibility Features
- • Focus trapped within dialog
- • Escape key to close
- • Proper ARIA attributes (role="dialog", aria-modal)
- • Returns focus to trigger on close
- • Screen reader announcements
- • Keyboard navigation support