<!-- Please ❤ this if you like it! ---
---- Follow Me https://codepen.io/designfenix -->
<!--
----
----
----
----
----
----
---->
<button class="primary" onclick="window.dialog.showModal();">Open Dialog</button>
<dialog id="dialog">
<h2>Hello.</h2>
<p>A CSS-only modal based on the <a href="https://developer.mozilla.org/es/docs/Web/CSS/::backdrop" target="_blank">::backdrop</a> pseudo-class. Hope you find it helpful.</p>
<p>You can also change the styles of the <code>::backdrop</code> from the CSS.</p>
<button onclick="window.dialog.close();" aria-label="close" class="x">❌</button>
</dialog>
/* Please ❤ this if you like it! */
/* Follow Me https://codepen.io/designfenix */
/**/
/**/
/**/
/**/
/**/
/**/
/**/
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap");
:root {
--vs-primary: 29 92 255;
}
/*Dialog Styles*/
dialog {
padding: 1rem 3rem;
background: white;
max-width: 400px;
padding-top: 2rem;
border-radius: 20px;
border: 0;
box-shadow: 0 5px 30px 0 rgb(0 0 0 / 10%);
animation: fadeIn 1s ease both;
&::backdrop {
animation: fadeIn 1s ease both;
background: rgb(255 255 255 / 40%);
z-index: 2;
backdrop-filter: blur(20px);
}
.x {
filter: grayscale(1);
border: none;
background: none;
position: absolute;
top: 15px;
right: 10px;
transition: ease filter, transform 0.3s;
cursor: pointer;
transform-origin: center;
&:hover {
filter: grayscale(0);
transform: scale(1.1);
}
}
h2 {
font-weight: 600;
font-size: 2rem;
padding-bottom: 1rem;
}
p {
font-size: 1rem;
line-height: 1.3rem;
padding: 0.5rem 0;
a {
&:visited {
color: rgb(var(--vs-primary));
}
}
}
}
/*General Styles*/
body {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
font-family: Poppins, sans-serif;
background: url(https://images.unsplash.com/photo-1574169208507-84376144848b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=879&q=80)
no-repeat center center;
background-size: cover;
}
button.primary {
display: inline-block;
font-size: 0.8rem;
color: #fff !important;
background: rgb(var(--vs-primary) / 100%);
padding: 13px 25px;
border-radius: 17px;
transition: background-color 0.1s ease;
box-sizing: border-box;
transition: all 0.25s ease;
border: 0;
cursor: pointer;
box-shadow: 0 10px 20px -10px rgb(var(--vs-primary) / 50%);
&:hover {
box-shadow: 0 20px 20px -10px rgb(var(--vs-primary) / 50%);
transform: translateY(-5px);
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
View Compiled
//Nope
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.