Voltar à galeria
Reveal em Cascata
Cards slate que sobem e aparecem em cascata ao entrar na viewport, com Framer Motion.
Scroll & MotionScrollMédio
Preview ao vivoInterativo
Carregando preview…
import { motion } from "framer-motion";
import "./styles.css";
const ITEMS = [
{ tag: "01", title: "Planeje", body: "Defina o objetivo antes de qualquer pixel." },
{ tag: "02", title: "Construa", body: "Itere rápido, com feedback de verdade." },
{ tag: "03", title: "Lance", body: "Publique cedo e melhore toda semana." },
];
const container = {
hidden: {},
show: { transition: { staggerChildren: 0.12, delayChildren: 0.05 } },
};
const item = {
hidden: { opacity: 0, y: 24 },
show: { opacity: 1, y: 0, transition: { duration: 0.55, ease: [0.22, 1, 0.36, 1] } },
};
export default function App() {
return (
<div className="page">
<p className="hint">Role para revelar ↓</p>
<motion.div
className="grid"
variants={container}
initial="hidden"
whileInView="show"
viewport={{ once: true, amount: 0.3 }}
>
{ITEMS.map((it) => (
<motion.article key={it.tag} className="card" variants={item}>
<span className="tag">{it.tag}</span>
<h3>{it.title}</h3>
<p>{it.body}</p>
</motion.article>
))}
</motion.div>
</div>
);
}
Efeitos relacionados
carregando
Recursos que deslizam alternadamente da esquerda e da direita ao entrar na tela, em ritmo de zigue-zague.
Blocos em Zigue-zague
Scroll & MotionRecursos que deslizam alternadamente da esquerda e da direita ao entrar na tela, em ritmo de zigue-zague.
carregando
Retratos de uma galeria que chegam desfocados e ganham nitidez ao entrar na viewport, como lentes focando.
Foco Progressivo (Blur)
Scroll & MotionRetratos de uma galeria que chegam desfocados e ganham nitidez ao entrar na viewport, como lentes focando.
carregando
Card cuja borda em degradê é traçada por um SVG com pathLength conforme ele entra na tela.
Borda que se Desenha
Scroll & MotionCard cuja borda em degradê é traçada por um SVG com pathLength conforme ele entra na tela.
