Modals
Modal dialog patterns for confirmations, forms, and contextual workflows
This page standardizes Lumora modal behavior and visual language. Explore common dialog types, size and layout modes, keyboard-safe states, and create copy-ready recipes from a live playground.
1. Variant Matrix
Core modal families for common interaction scenarios
2. Interaction Playground
Generate a live modal recipe from controls
3. Size and Layout
Canonical width and viewport behavior options
4. State Modeling
Loading, destructive confirmation and blocked close patterns
5. Composition Patterns
Using modals inside table, form, and workflow contexts
6. Real-use Snippets
Copy-ready snippets for confirms, forms, and static backdrop modals
<div class="modal fade" id="confirmModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Confirm Action</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">This action cannot be undone.</div>
<div class="modal-footer">
<button class="btn btn-outline" data-bs-dismiss="modal">Cancel</button>
<button class="btn btn-danger">Delete</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="formModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Create Project</h5>
</div>
<div class="modal-body">
<input class="form-control" placeholder="Project Name" />
</div>
<div class="modal-footer">
<button class="btn btn-outline" data-bs-dismiss="modal">Cancel</button>
<button class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="requiredModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Complete Required Steps</h5>
</div>
<div class="modal-body">Finish setup before closing this dialog.</div>
<div class="modal-footer">
<button class="btn btn-primary">Continue</button>
</div>
</div>
</div>
</div>