Modal

A dialog overlay built on the native <dialog> element. The close button floats at the top right. Default border radius is 2px — use rounded-* utilities to override. Sizes from --sm (400px) to --full. Trigger with data-ln-dialog on a button.

Default modal

index.htmlhtml
<dialog class="ln-modal" data-ln-dismissible open>
  <button class="ln-modal__close" data-ln-dismiss aria-label="Close">&times;</button>
  <div class="ln-modal__header">
    <h3 class="ln-modal__title">Modal title</h3>
  </div>
  <div class="ln-modal__body">
    <p>This is the modal body content. It can contain any markup.</p>
  </div>
  <div class="ln-modal__footer">
    <button class="ln-button ln-button--ghost">Cancel</button>
    <button class="ln-button ln-button--solid">Confirm</button>
  </div>
</dialog>

Modal title

This is the modal body content. It can contain any markup.

Small modal

index.htmlhtml
<dialog class="ln-modal ln-modal--sm" data-ln-dismissible open>
  <button class="ln-modal__close" data-ln-dismiss aria-label="Close">&times;</button>
  <div class="ln-modal__header">
    <h3 class="ln-modal__title">Delete item?</h3>
  </div>
  <div class="ln-modal__body">
    <p>This action cannot be undone.</p>
  </div>
  <div class="ln-modal__footer">
    <button class="ln-button ln-button--ghost">Cancel</button>
    <button class="ln-button ln-button--solid ln-button--danger">Delete</button>
  </div>
</dialog>

Delete item?

This action cannot be undone.

Danger modal

index.htmlhtml
<dialog class="ln-modal ln-modal--danger" data-ln-dismissible open>
  <button class="ln-modal__close" data-ln-dismiss aria-label="Close">&times;</button>
  <div class="ln-modal__header">
    <h3 class="ln-modal__title">Destructive action</h3>
  </div>
  <div class="ln-modal__body">
    <p>Are you sure you want to delete this project? All data will be permanently removed.</p>
  </div>
  <div class="ln-modal__footer">
    <button class="ln-button ln-button--ghost">Cancel</button>
    <button class="ln-button ln-button--solid ln-button--danger">Delete project</button>
  </div>
</dialog>

Destructive action

Are you sure you want to delete this project? All data will be permanently removed.

Reference

ClassDescriptionResponsive
.ln-modalModal container (applied to <dialog>)No
.ln-modal__closeClose buttonNo
.ln-modal__headerHeader areaNo
.ln-modal__titleModal headingNo
.ln-modal__bodyScrollable body areaNo
.ln-modal__footerFooter with action buttonsNo
.ln-modal--smSmall modal (400px max-width)No
.ln-modal--mdMedium modal (560px, default)No
.ln-modal--lgLarge modal (800px)No
.ln-modal--fullFull viewport modalNo
.ln-modal--scroll-bodyConstrains height with scrollable bodyNo
.ln-modal--centerCentre-align text and actionsNo
.ln-modal--dangerDanger-coloured titleNo