11 #Modal Modal
Displays a dialog to your webpage.
Use JavaScript to toggle the is-open
class in order to open and close the dialog.
Examples
Default styling
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
.modal--slidein
Slide in from top
.modal--verticalcenter
Vertically centered
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Markup
<button class="demobtn">Click</button>
<div class="modal [modifier class]">
<div class="modal__dialog">
<div class="modal__header">
<div class="modal__title">Modal title</div>
<button class="modal__close">close</button>
</div>
<div class="modal__body">
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<!--
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
<p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
-->
</div>
<div class="modal__footer">
<button type="button">Close</button>
<button type="button">Save changes</button>
</div>
</div>
</div>
<script>
Array.prototype.forEach.call(document.querySelectorAll('.demobtn'), function(btn) {
btn.addEventListener('click', function() {
btn.nextElementSibling.classList.add('is-open');
});
});
var modals = document.querySelectorAll('.modal');
Array.prototype.forEach.call(modals, function(modal) {
modal.addEventListener('click', function (event) {
if (event.target.classList.contains('modal__close')) {
modal.classList.remove('is-open');
}
});
});
document.body.addEventListener('click', function(e) {
if (e.target.classList.contains('modal')) {
e.target.classList.remove('is-open');
}
});
window.addEventListener('keydown', function(e) {
var activeModal = document.querySelector('.modal.is-open');
if (e.key.toLowerCase() === 'escape') {
if (activeModal) {
activeModal.classList.remove('is-open');
}
}
});
</script>
Source:
modal.css
, line 1