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?
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!