← Back to all components

Modal

Dialog overlay with header, body, footer. Sizes from sm to full.

<div x-data="{ open: false }">
  <button class="btn btn-primary" @click="open = true">Open Modal</button>

  <div class="modal-overlay" x-show="open"
       x-transition @click.self="open = false"
       @keydown.escape.window="open = false">
    <div class="modal modal-md">
      <div class="modal-header">
        <span class="modal-title">Title</span>
        <button class="modal-close" @click="open = false">✕</button>
      </div>
      <div class="modal-body">
        <p>Content here.</p>
      </div>
      <div class="modal-footer">
        <button class="btn btn-secondary" @click="open = false">Cancel</button>
        <button class="btn btn-danger" @click="open = false">Confirm</button>
      </div>
    </div>
  </div>
</div>