<div class="modal-overlay is-active js-modal-overlay">
<div class="modal js-modal">
<div class="modal__inner">
<button class="btn btn--close js-btn-close">
<svg class="icon icon--close">
<use xlink:href="/assets/icons/sprite-sheet.svg#close"></use>
</svg>
<span class="visually-hidden">Close Menu</span>
</button>
<div class="modal__content">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque
eu, pretium quis, sem.</p>
</div>
</div>
</div>
</div>
<div class="modal-overlay {{class}} js-modal-overlay">
<div class="modal js-modal">
<div class="modal__inner">
{{render '@buttons--close'}}
<div class="modal__content">
<p>{{copy}}</p>
</div>
</div>
</div>
</div>
{
"class": "is-active",
"copy": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
}
/**
* @overview Close modal interaction.
* @module Modals.js
*/
const modal = document.querySelector(`.js-modal-overlay`);
if (modal) {
const closeButton = modal.querySelector(`.js-btn-close`);
closeButton.addEventListener(`click`, () => {
modal.classList.remove(`is-active`);
});
document.addEventListener(`click`, (e) => {
if (!e.target.closest(`.js-modal`)) {
modal.classList.remove(`is-active`);
}
});
}
.modal-overlay {
position: absolute;
margin-top: -50vh;
padding-top: 50vh;
top: 25vh;
right: 0;
left: 0;
height: 100%;
z-index: -1;
background: rgba($color-black, 0.5);
opacity: 0;
transition: $transition;
transform: translateY(-25vh);
@include breakpoint($break-medium) {
position: fixed;
top: 50vh;
}
&.is-active {
z-index: 10;
opacity: 1;
.modal {
opacity: 1;
}
}
}
.modal {
position: relative;
margin: 0 auto;
width: 80%;
max-width: 53.75rem;
opacity: 0;
background: $color-background;
border-radius: $border-radius;
box-shadow: 0 0 0.5rem 0 rgba($color-black, 0.75);
transform: translateY(6rem);
transition-delay: 2s;
transition: $transition;
.modal-overlay.is-active & {
transform: translateY(3rem);
}
}
.modal__content {
padding: 2rem 2.5rem 1.88rem;
text-align: center;
}
There are no notes for this item.