Vai al contenuto
animorio
EN
Torna alla libreria

Le carte che si raddrizzano

Scroll, TestoGSAP, Solo CSSFacilePeso compresso: Demo 3,7 KBGSAP + ScrollTrigger 45 KBLenis 5,3 KBGratisScarica lo zip

Scorri dentro l’anteprima

I servizi di uno studio su tre carte che si sovrappongono, nello stile minimal: ogni carta sale storta e spostata di lato, la successiva dall’altra parte, e si raddrizza arrivando in alto, legata allo scroll. Il titolo la segue: puntini tondi e sottili finché è storta, pixel quadrati e pieni quando è dritta.

Il codice

Una cartella che funziona da sola: index.html, style.css, script.js e le librerie da CDN. Nelle schede React e Vue la stessa demo è già un componente, che spegne le sue animazioni quando esce dalla pagina.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>The cards that straighten up</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/bitcount-prop-single@5.3.0/full.css">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/instrument-sans@5.3.0/wdth.css">
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <!-- the services of a made-up games studio, Pixmoor, on three overlapping cards. Each card comes up tilted and
       off to one side, the next one the other way, and straightens as it reaches the top of the screen; its title
       turns from thin round dots into solid square pixels as it does. Leaving, the card tips over the other way -->
  <main class="pagina">
    <header class="apertura">
      <p class="occhiello">Pixmoor, what we make</p>
      <h1 class="apertura__titolo">Three things, done properly.</h1>
      <p class="scendi">Scroll</p>
    </header>

    <section class="mazzo" aria-label="Services">
      <article class="carta carta--chiara" data-carta>
        <div class="carta__dentro" data-dentro>
          <h2 class="carta__titolo" data-titolo>Level design</h2>
          <ul class="carta__voci">
            <li>Worlds</li>
            <li>Puzzles</li>
            <li>Pacing</li>
          </ul>
          <p class="carta__testo">Maps that teach without a tutorial, and a last room people talk about.</p>
        </div>
      </article>

      <article class="carta carta--scura" data-carta>
        <div class="carta__dentro" data-dentro>
          <h2 class="carta__titolo" data-titolo>Characters</h2>
          <ul class="carta__voci">
            <li>Sprites</li>
            <li>Animation</li>
            <li>Voices</li>
          </ul>
          <p class="carta__testo">Heroes with a walk you would know from across the screen.</p>
        </div>
      </article>

      <article class="carta carta--accento" data-carta>
        <div class="carta__dentro" data-dentro>
          <h2 class="carta__titolo" data-titolo>Trailers</h2>
          <ul class="carta__voci">
            <li>Teasers</li>
            <li>Launch</li>
            <li>Store pages</li>
          </ul>
          <p class="carta__testo">Ninety seconds that sell the feeling of the first hour.</p>
        </div>
      </article>
    </section>

    <footer class="chiusura">
      <p class="chiusura__titolo">Got a game?</p>
    </footer>
  </main>

  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/ScrollTrigger.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/lenis@1.3.26/dist/lenis.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

Playground

Cambia valori, colori e testi con le manopole e guarda l’animazione rispondere dal vivo. Oppure scrivi tu nel codice. Poi scarica la cartella con le tue modifiche.

32 valori da cambiare

Oppure chiedila a Claude Code

Col connettore di Animorio, Claude Code la prende da qui con tutta la sua guida e la adatta al tuo progetto. Incolla questa richiesta:

Prendi «Le carte che si raddrizzano» da Animorio e adattala al mio sito

Cosa fa

Pixmoor, uno studio di videogiochi inventato, presenta tre servizi su tre carte: una chiara, una nera e una viola, che si sovrappongono un poco. Scendendo, ogni carta entra dal fondo dello schermo inclinata di otto gradi e spostata di un decimo della sua larghezza, la prima a sinistra, la seconda a destra, la terza di nuovo a sinistra, e si raddrizza mentre sale, fino a essere dritta quando il suo bordo alto arriva a un quinto dello schermo. Il titolo la segue: mentre la carta è storta è fatto di anellini sottili, e quando è dritta i puntini sono diventati pixel quadrati e neri. Poi, mentre la carta successiva la copre, l’interno di quella sotto si inclina dall’altra parte e scivola via.

Come funziona

L’entrata

Ogni carta ha una timeline legata allo scroll con scrub, da quando il suo bordo alto entra dal fondo dello schermo a quando arriva a SETTLE: parte da rotate TILT e xPercent SHIFT, con il segno che cambia da una carta all’altra, e torna a zero con power1.out, quindi si raddrizza presto e si posa piano.

L’uscita

Una seconda timeline va da SETTLE a quando la carta esce in alto: inclina l’interno della carta dall’altra parte e lo sposta ancora di lato, con power1.in, quindi parte piano e accelera. Le due timeline muovono due elementi diversi, la carta e il suo interno, così non si contendono il transform.

Il titolo

Il titolo ha due proprietà CSS, --forma e --peso, che entrano in font-variation-settings (l’asse ELSH di Bitcount) e font-weight. Le stesse timeline le portano da ROUND e LIGHT a 50 e 700 entrando e indietro uscendo; all’uscita il tween è un fromTo con immediateRender: false, così il punto di partenza è sempre quello giusto.

Il telefono e lo scroll

Con gsap.matchMedia sul telefono inclinazione e spostamento sono a metà. Lenis rende lo scroll morbido e corto, SMOOTH secondi con una curva che frena, come sul sito.

Valori da cambiare

NomeFileDi partenzaCosa cambia
TILTscript.js8Quanto è inclinata una carta entrando e uscendo, in gradi (la metà sul telefono).
SHIFTscript.js10Di quanto è spostata di lato, in percentuale della sua larghezza (la metà sul telefono).
SETTLEscript.js'top 20%'Dove la carta è dritta: quando il suo bordo alto arriva a questo punto dello schermo.
LIGHTscript.js300Il peso del titolo a carta storta; dritta è 700.
ROUNDscript.js0La forma dei puntini del titolo a carta storta: 0 tondi, 50 quadrati.
SMOOTHscript.js0.5I secondi dello scroll morbido; 0 per quello del browser.

Provali nel Playground

Quando usarla

Per i servizi di uno studio o di un’agenzia, i piani di un’app, le sezioni di una pagina di presentazione: tre o quattro carte grandi, una dopo l’altra.

Sul telefono

Uguale, con l’inclinazione e lo spostamento a metà e il testo della carta sotto alle voci.

Con il movimento ridotto

Le carte restano dritte e ferme e il titolo è già in pixel quadrati; lo scroll non è ammorbidito.

Trappole

  • gsap.matchMedia chiama la funzione solo se almeno una delle condizioni è vera: con le sole condizioni del telefono e del movimento ridotto, sul computer non parte niente. Serve anche quella dello schermo largo.
  • Entrata e uscita sulla stessa carta si contenderebbero il transform: l’entrata muove la carta, l’uscita il suo interno.
  • Il tween d’uscita del titolo va scritto come fromTo con immediateRender: false; con un to si segnerebbe come punto di partenza i valori di quando parte la prima volta, magari a metà entrata dopo un salto di scroll.
  • Il bordo sottile della carta chiara è una box-shadow interna: con un border vero le carte avrebbero misure diverse e la sovrapposizione non tornerebbe.

Librerie

GSAP 3.15.0, Lenis 1.3.26, Bitcount Prop Single (font variabile) 5.3.0, Instrument Sans (font variabile) 5.3.0.

Compressi con gzip, i tre file della demo pesano 3,7 KB; le librerie: GSAP + ScrollTrigger 45 KB, Lenis 5,3 KB.

Collaudo

Provata il 17 ottobre 2026

  • Computer: Fatto
  • Telefono: Fatto
  • Movimento ridotto: Fatto
  • Safari su iPhone: Da fare

Licenza d’uso

Puoi usarla nei tuoi progetti e in quelli dei tuoi clienti. Non puoi rivenderla né ridistribuirla così com’è. GSAP resta sotto la sua licenza Standard. Licenza completa.

Tutte le animazioni