Sei que talvez eu esteja indo além do escopo do curso, mas como eu poderia criar uma animação css na abertura do modal?
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
Sei que talvez eu esteja indo além do escopo do curso, mas como eu poderia criar uma animação css na abertura do modal?
Opa, e aí? Beleza?
Adicionar uma animação é uma excelente ideia :)
Por exemplo, podemos criar um efeito "fade in", assim:
import { styled } from "styled-components"
import Imagem from "../Galeria/Imagem"
import BotaoIcone from "../BotaoIcone"
const Overlay = styled.div`
background-color: rgba(0, 0, 0, 0.7);
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0;
animation: fadeIn 0.5s forwards;
@keyframes fadeIn {
to {
opacity: 1;
}
}
`
const DialogEstilizado = styled.dialog`
position: absolute;
top: 294px;
background: transparent;
padding: 0;
border: 0;
width: 1156px;
display: flex;
justify-content: center;
opacity: 0;
transform: scale(0.9);
animation: fadeInScale 0.5s forwards;
form {
button {
position: relative;
top: 20px;
right: 60px;
}
}
@keyframes fadeInScale {
to {
opacity: 1;
transform: scale(1);
}
}
`
const ModalZoom = ({ foto, aoFechar }) => {
return (
<>
{foto && <>
<Overlay />
<DialogEstilizado open={!!foto} onClose={aoFechar}>
<Imagem foto={foto} expandida={true} />
<form method="dialog">
<BotaoIcone formMethod="dialog">
<img src="/icones/fechar.png" alt="Icone de fechar" />
</BotaoIcone>
</form>
</DialogEstilizado>
</>}
</>
)
}
export default ModalZoom
A gente consegue fazer isso com CSS nativo e o styled components cuida disso pra gente. Se quiser saber um pouco mais sobre o assunto, pode dar uma espiadinha nesse artigo que aborda o assunto!
Bons estudo ;)
Ficou perfeito!