Note: Modals require JavaScript to show/hide. Add display: flex to modal-backdrop to show the modal, or display: none to hide it.
Modal Sizes
Control modal width with size modifiers.
<!-- Small Modal --><divclass="modal modal-sm">...</div><!-- Default Modal --><divclass="modal">...</div><!-- Large Modal --><divclass="modal modal-lg">...</div><!-- Extra Large Modal --><divclass="modal modal-xl">...</div><!-- Fullscreen Modal --><divclass="modal modal-fullscreen">...</div>
Confirmation Dialog
A common pattern for destructive actions.
<divclass="modal-backdrop"style="display: none;"><divclass="modal modal-sm"><divclass="modal-header"><h3>Delete Account</h3><buttonclass="modal-close">×</button></div><divclass="modal-body"><p>Are you sure you want to delete your account? This action cannot be undone.</p></div><divclass="modal-footer"><buttonclass="btn-ghost">Cancel</button><buttonclass="btn-danger">Delete Account</button></div></div></div>
Form Modal
Use modals to collect user input without navigating away.
<divclass="modal-backdrop"style="display: none;"><divclass="modal"><divclass="modal-header"><h3>Add New User</h3><buttonclass="modal-close">×</button></div><divclass="modal-body"><form><divclass="form-group"><labelfor="username">Username</label><inputtype="text"id="username"class="form-input"required></div><divclass="form-group"><labelfor="email">Email</label><inputtype="email"id="email"class="form-input"required></div><divclass="form-group"><labelfor="role">Role</label><selectid="role"class="form-select"><option>Admin</option><option>User</option><option>Guest</option></select></div></form></div><divclass="modal-footer"><buttonclass="btn-ghost">Cancel</button><buttonclass="btn-primary">Add User</button></div></div></div>
JavaScript Example
Simple JavaScript to open and close modals.
// Open modalfunctionopenModal(modalId){const modal =document.getElementById(modalId); modal.style.display='flex';document.body.style.overflow='hidden';}// Close modalfunctioncloseModal(modalId){const modal =document.getElementById(modalId); modal.style.display='none';document.body.style.overflow='';}// Close on backdrop clickdocument.querySelectorAll('.modal-backdrop').forEach(backdrop=>{ backdrop.addEventListener('click',(e)=>{if(e.target=== backdrop){closeModal(backdrop.id);}});});// Close on ESC keydocument.addEventListener('keydown',(e)=>{if(e.key==='Escape'){document.querySelectorAll('.modal-backdrop').forEach(backdrop=>{if(backdrop.style.display==='flex'){closeModal(backdrop.id);}});}});