Kerangka selera
Animasi itu bumbu, bukan hidangan utama. Tiga aturan yang saya pegang di setiap situs:
- Hanya transform dan opacity. Jangan pernah animasikan
top,left,width,height— mereka memicu layout di setiap frame. - Satu pola entrance per section. Fade-up
y: 20 → 0denganstagger: 0.1terasa seperti craftsmanship; lima entrance berbeda terasa seperti kekacauan. - Hormati
prefers-reduced-motion. Tidak bisa ditawar.
GSAP di React yang scoped dan bersih
useGSAP(() => {
gsap.fromTo(".card",
{ y: 20, opacity: 0 },
{
scrollTrigger: { trigger: containerRef.current, start: "top 85%" },
y: 0, opacity: 1, duration: 0.6, stagger: 0.1, ease: "back.out(1.5)",
}
);
}, { scope: containerRef });
scope memberimu scoping selector dan cleanup otomatis — tidak ada ScrollTrigger bocor saat ganti route.
Easing yang terasa manusiawi
| Ease | Terasa seperti |
|---|---|
power3.out |
tiba dengan percaya diri |
back.out(1.5) |
pop yang playful |
elastic.out(1, 0.5) |
maksimal sekali per situs |
Bounce elastis itu toples rempah, bukan botol saus.