CLAUDE ANIMATIONS

Nivel 3, Scroll Magic

Animații în cod cu Claude, Modvia Academy, 2026

🟧NIVEL 3

Scroll Magic

Lenis, ScrollTrigger, Intersection Observer. Fă bara de scroll să pară mătase și pagina un film.

🎯 XP la finalizare: 700🏅 Badge deblocat

 

 

Lecția 1, Lenis, smooth scroll fără lag

Lenis e librăria ușoară de smooth-scroll care alimentează majoritatea site-urilor de nivel agenție pe care le admiri (câștigători Awwwards, portofolii de studio).

📜 Prompt Playbook,
Cel mai bun AI. De ce.
import Lenis from 'lenis';
import { useEffect } from 'react';

export function useLenis() {
  useEffect(() => {
    const lenis = new Lenis({ duration: 1.2, easing: t => Math.min(1, 1.001 - Math.pow(2, -10 * t)) });
    function raf(time) { lenis.raf(time); requestAnimationFrame(raf); }
    requestAnimationFrame(raf);
    return () => lenis.destroy();
  }, []);
}

Apelezi useLenis() în layout-ul rădăcină. Gata.

 

Lecția 2, ScrollTrigger, motorul de scroll cinematic

ScrollTrigger (un plugin GSAP) îți permite să legi orice animație GSAP de scroll. Fixezi secțiuni, scrub-uiești timeline-uri, faci snap la checkpoint-uri, totul cu un singur config.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
import gsap from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';
import { useGSAP } from '@gsap/react';
import { useRef } from 'react';
gsap.registerPlugin(ScrollTrigger);

export function PinnedHero() {
  const ref = useRef(null);
  useGSAP(() => {
    gsap.timeline({
      scrollTrigger: {
        trigger: '.pin-section',
        start: 'top top',
        end: '+=200%',
        scrub: 1,
        pin: true,
      },
    })
    .to('.bg', { scale: 1.4, ease: 'none' })
    .to('.title', { yPercent: -100, opacity: 0, ease: 'none' }, 0)
    .from('.next', { yPercent: 100, opacity: 0, ease: 'none' }, 0);
  }, { scope: ref });
  return (<section className='pin-section' ref={ref}>...</section>);
}

 

Lecția 3, Lenis + ScrollTrigger împreună (capcana)

Dacă le folosești pe amândouă, GSAP trebuie să fie instruit să asculte de Lenis. Adaugă asta o singură dată,

📜 Prompt Playbook,
Cel mai bun AI. De ce.
lenis.on('scroll', ScrollTrigger.update);
gsap.ticker.add((time) => lenis.raf(time * 1000));
gsap.ticker.lagSmoothing(0);

 

Lecția 4, Intersection Observer, reveal-on-view-ul ieftin

Pentru un simplu 'fă-mă fade-in când sunt vizibil', Intersection Observer nativ e mai rapid și mai ușor decât orice librărie.

📜 Prompt Playbook,
Cel mai bun AI. De ce.
import { useEffect, useRef, useState } from 'react';

export function useInView(threshold = 0.2) {
  const ref = useRef(null);
  const [inView, setInView] = useState(false);
  useEffect(() => {
    const obs = new IntersectionObserver(
      ([e]) => e.isIntersecting && (setInView(true), obs.disconnect()),
      { threshold }
    );
    if (ref.current) obs.observe(ref.current);
    return () => obs.disconnect();
  }, [threshold]);
  return [ref, inView];
}

Folosești: const [ref, inView] = useInView(); apoi aplici condiționat clasa ta CSS.

 

Lecția 5, Cele patru pattern-uri de scroll de care are nevoie orice site

PatternUnde l-ai văzut
Hero fixat cu scrubPaginile de produs Apple, Stripe.
Scroll orizontal în interiorul celui verticalSecțiunea de features Linear, plimbări prin galerii.
Fundal parallaxSite-uri editoriale, secțiuni hero.
Snap-to-sectionSite-ul Apple Watch, prezentări.

 

🎯 Pachet de quest-uri Nivel 3

 

🥉 QUEST BRONZ +80 XP
🎚️Adaugă Lenis în sandbox și simte diferența

Obiectiv. Smooth scroll-ul schimbă tot vibe-ul fiecărei pagini.

Pași
  1. Instalează lenis în sandbox-ul tău.
  2. Adaugă hook-ul useLenis în layout-ul rădăcină.
  3. Răsfoiește toate paginile din sandbox: se simt toate ca untul acum?
  4. Adaugă un toggle pentru a dezactiva Lenis (unii utilizatori preferă scroll-ul nativ). Respectă prefers-reduced-motion.
Gata când…
  • ☐ Lenis activ în tot sandbox-ul
  • ☐ Toggle-ul funcționează

 

🥈 QUEST ARGINT +250 XP
📌Construiește o secțiune de poveste cinematică fixată

Obiectiv. Folosește ScrollTrigger ca să fixezi o secțiune și să scrub-uiești o animație în 4 pași.

Pași
  1. Construiește o secțiune care spune o poveste în 4 pași (ex. povestea de origine a unui produs sau un timeline).
  2. Fixeaz-o. Pe măsură ce utilizatorul derulează în interiorul pin-ului, pașii apar/dispar în fade, titlul se transformă, fundalul se schimbă.
  3. Petrece cel puțin 200vh de scroll în interiorul pin-ului.
  4. Testează pe mobil (pin-ul pe mobil e delicat, simplifică-l la un reveal secvențial).
Gata când…
  • ☐ Secțiunea se fixează și scrub-uiește curat pe desktop
  • ☐ Fallback-ul pe mobil funcționează

 

🥇 QUEST AUR +370 XP
💼Vinde o 'experiență de scroll' unui brand

Obiectiv. Transformă lucrul cu scroll-ul într-un produs, ca add-on premium.

Pași
  1. Pitch-uiește către 5 branduri de nivel mediu (produs DTC, agenție, studio creativ) un add-on de 'experiență de scroll' pentru landing page-ul lor.
  2. Cere între 2.500 și 7.500 USD pentru un build de 2 săptămâni.
  3. Prinde 1, livrează, obține un testimonial pe Loom.
  4. Aplică la Awwwards sau CSSDA; chiar dacă nu câștigi, captura de ecran e aur pentru portofoliu.
Gata când…
  • ☐ 1 client plătitor la 2.500+ USD
  • ☐ Studiu de caz public
  • ☐ Aplicație depusă la Awwwards sau CSSDA