Modals are built with <dialog>
as a wrapper and <article>
for the modal content.
Inside <header>
<button rel="prev">
is defined to float: right;
allowing a close icon to be top aligned with a title.
<dialog open>
<article>
<header>
<button aria-label="Close" rel="prev"></button>
<p>
<strong>🗓️ Thank You for Registering!</strong>
</p>
</header>
<p>
We're excited to have you join us for our
upcoming event. Please arrive at the museum
on time to check in and get started.
</p>
<ul>
<li>Date: Saturday, April 15</li>
<li>Time: 10:00am - 12:00pm</li>
</ul>
</article>
</dialog>
Inside <footer>
, the content is right aligned by default.
<dialog open>
<article>
<h2>Confirm Your Membership</h2>
<p>
Thank you for signing up for a membership!
Please review the membership details below:
</p>
<ul>
<li>Membership: Individual</li>
<li>Price: $10</li>
</ul>
<footer>
<button class="secondary">
Cancel
</button>
<button>Confirm</button>
</footer>
</article>
</dialog>
Demo#
Toggle a modal by clicking the button below.
Pico does not include JavaScript code. You need to implement your JS to interact with modals.
As a starting point, you can look at the HTMLDialogElement or the advanced examples below:
To open a modal, add the open
attribute to the<dialog>
container.
Utilities#
Modals come with 3 utility classes.
These classes are not available in the class-less version.
.modal-is-open
prevents any scrolling and interactions below the modal.
.modal-is-opening
brings an opening animation.
.modal-is-closing
brings a closing animation.