Exemplo de modal centralizado
by Rodrigo Portillo
HTML
<main class="pagina">
<div class="box">
<h1>Ai nessa box tem goteira...</h1>
<button class="btn" onclick="modal(true)">
Clica nimin... clica nimim....
</button>
</div>
</main>
<div class="modal">
<div class="panel box">
<div>
Relou Uoldi
</div>
<button class="btn" onclick="modal(false)">
Fechar
</button>
</div>
</div>
CSS
body{
font-family: sans-serif;
}
.box{
box-shadow: 0 .2rem .5rem rgba(0,0,0,.1);
border-radius: .5rem;
padding: 1rem;
box-sizing: border-box;
background-color: white;
}
.btn{
box-shadow: 0 .1rem .1rem rgba(0,0,0,.2);
border-radius: .2rem;
padding: .2rem .5rem;
box-sizing: border-box;
border: none;
background-color: #ccee22;
border: 1px solid white;
}
.btn:active{
box-shadow: 0 .01rem .01rem rgba(0,0,0,.3);
}
.modal{
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
flex-direction: column;
justify-content: center;
backdrop-filter: blur(5px) brightness(.8);
transition: all .3s;
opacity: 0;
pointer-events: none;
}
.modal .panel{
margin: 0 auto;
width: auto;
transition: all .3s;
opacity: 0;
transform: scale(.8);
}
.modal.open{
opacity: 1;
pointer-events: all;
}
.modal.open .panel{
opacity: 1;
transform: scale(1);
}
JavaScript
function modal(open){
if(open){
document.querySelector(".modal").classList.add("open");
}else{
document.querySelector(".modal").classList.remove("open");
}
}