<button class="modal__button" data-keukenhof-open="#modal">
Open modal
</button>
<div id="modal" class="modal">
<div class="modal__overlay">
<div class="modal__container" role="dialog">
<div class="modal__wrapper">
<button
class="modal__button modal__button--close"
data-keukenhof-close
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
role="presentation"
>
<path
d="M13.41,12l4.3-4.29a1,1,0,1,0-1.42-1.42L12,10.59,7.71,6.29A1,1,0,0,0,6.29,7.71L10.59,12l-4.3,4.29a1,1,0,0,0,0,1.42,1,1,0,0,0,1.42,0L12,13.41l4.29,4.3a1,1,0,0,0,1.42,0,1,1,0,0,0,0-1.42Z"
/>
</svg>
</button>
<main class="modal__main">
<h2 class="modal__title">Title</h2>
<p class="modal__desc">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure
exercitationem perspiciatis odit dolores soluta minima eveniet
quasi ex nostrum quibusdam deleniti facere molestias harum velit
consequuntur ipsam, id commodi dolor?
</p>
<a href="#" class="modal__link">More information</a>
</main>
</div>
</div>
</div>
</div>
:root {
--gallery: #eee;
--bright-gray: #1f1f1f;
--pink-swan: #c3bbbb;
--white-rgba: rgba(255, 255, 255, 0.6);
--gallery-rgba: rgba(238, 238, 238, 0.4);
}
body {
min-width: 100vw;
min-height: 100vh;
text-align: center;
font-family: Helvetica;
}
svg,
img {
max-width: 100%;
}
.modal {
display: none;
}
.modal.isOpen {
display: block;
}
.modal__button {
margin: 100px 0;
padding: 15px 40px;
color: var(--bright-gray);
background-color: var(--gallery);
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
}
.modal__button--close {
position: absolute;
top: 8px;
right: 8px;
width: 40px;
height: 40px;
padding: 7px;
margin: 0;
font-size: 0;
background-color: transparent;
}
.modal__button--close path {
fill: var(--gallery-rgba);
}
.modal__link {
color: var(--pink-swan);
}
.modal__overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
background-color: var(--white-rgba);
}
.modal__container {
position: relative;
width: 100%;
max-width: 440px;
max-height: 100vh;
margin: 0 10px;
background-color: var(--bright-gray);
border-radius: 5px;
color: var(--gallery);
overflow-y: auto;
}
.modal__wrapper {
padding: 55px 50px;
}
.modal__title {
margin: 0 0 20px;
font-size: 23px;
}
.modal__desc {
margin: 0 0 25px;
line-height: 1.65;
}
Keukenhof.init();
This Pen doesn't use any external CSS resources.