
La stanza delle carte
3D, Transizioni, Immagini
Gratis
Un cambio di pagina nello stile minimal: la pagina è un paravento, con le pieghe segnate da righe sottili. Al clic si richiude a fisarmonica contro il bordo sinistro, in 3D, partendo dal pannello libero, e ogni pannello prende la sua luce; dietro c’è la pagina dopo. Tornando indietro il paravento si riapre un pannello dopo l’altro, passa il piano di un soffio e si assesta.
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 folding screen transition</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/bricolage-grotesque@5.3.0/standard.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage" data-stage>
<!-- the first page: the screen itself, with its folds drawn as hairlines -->
<section class="page page--a is-on" data-page="a" aria-label="Studio">
<div class="creases" data-creases aria-hidden="true"></div>
<header class="bar">
<span class="brand">Noll</span>
<nav class="nav" aria-label="Pages">
<a href="#studio" aria-current="page">Studio</a>
<a href="#screens" data-go="b">Screens</a>
</nav>
</header>
<div class="main">
<h1 class="big" data-big>Make a room.</h1>
<div class="below">
<p class="lede">Folding screens in oak, linen and paper. Open one to make a room; fold it to give the room back.</p>
<a class="go" href="#screens" data-go="b" data-autoclic>
<span class="go__t">Fold it away</span>
<svg class="go__arrow" viewBox="0 0 26 12" aria-hidden="true"><path d="M1 6h22M18.5 1.5 23.5 6l-5 4.5"/></svg>
</a>
</div>
</div>
<footer class="foot">
<span>Folding screens and room dividers</span>
<span>Made to order</span>
</footer>
</section>
<!-- the second page: the room behind the screen -->
<section class="page page--b" data-page="b" aria-label="Screens" aria-hidden="true">
<header class="bar">
<span class="brand">Noll</span>
<nav class="nav" aria-label="Pages">
<a href="#studio" data-go="a">Studio</a>
<a href="#screens" aria-current="page">Screens</a>
</nav>
</header>
<div class="main">
<h2 class="big" data-big>Behind it.</h2>
<ul class="list" aria-label="Screens">
<li class="row" data-late><span class="row__rule" data-rule></span><span>Oak</span><span class="row__soft">Four panels</span><span class="row__soft row__end">180 cm</span></li>
<li class="row" data-late><span class="row__rule" data-rule></span><span>Linen</span><span class="row__soft">Three panels</span><span class="row__soft row__end">170 cm</span></li>
<li class="row" data-late><span class="row__rule" data-rule></span><span>Paper</span><span class="row__soft">Six panels</span><span class="row__soft row__end">160 cm</span></li>
</ul>
<a class="go go--back" href="#studio" data-go="a" data-autoclic data-late>
<svg class="go__arrow" viewBox="0 0 26 12" aria-hidden="true"><path d="M25 6H3M7.5 1.5 2.5 6l5 4.5"/></svg>
<span class="go__t">Open the screen</span>
</a>
</div>
<footer class="foot" data-late>
<span>Folding screens and room dividers</span>
<span>Made to order</span>
</footer>
</section>
<!-- the screen while it folds: hinged panels, each showing its slice of the first page; built by the script -->
<div class="screen" data-screen aria-hidden="true"></div>
</main>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
<script src="script.js"></script>
</body>
</html>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.
39 valori da cambiare
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 «La transizione a paravento» da Animorio e adattala al mio sitoIl paravento è una catena di cerniere: ogni cerniera è un div con transform-style: preserve-3d e transform-origin sul bordo sinistro, e contiene la faccia del suo pannello e la cerniera dopo, spostata a destra di una larghezza. Girare una cerniera porta con sé tutti i pannelli dopo di lei. Ogni faccia ha overflow: hidden e dentro una copia intera della pagina, spostata a sinistra di quanto serve per mostrare la sua fetta: le copie non hanno data-go né data-autoclic e i loro link escono dal Tab.
Ogni pannello ha la sua piega f, da 0 (piatto) a 90 (di taglio). L’angolo assoluto è +f per i pannelli pari e −f per i dispari, e a ogni cerniera si scrive la differenza con il pannello prima: rotateY(+f), rotateY(−2f), rotateY(+2f)… Così i bordi si toccano sempre e il paravento si schiaccia contro il bordo sinistro. Chiudendo, le pieghe partono dal pannello libero; aprendo, da quello attaccato al bordo, sfalsate di STAGGER.
Sopra ogni faccia c’è un velo scuro con opacità SHADE · sin(f) per i pannelli girati via dalla finestra e un terzo di quella per gli altri: chiudendosi, il paravento si riempie di strisce chiare e scure come un paravento vero. Le pieghe a riposo sono righe di un pixel al 17% d’inchiostro; al clic si scuriscono prima che il paravento si muova.
La timeline muove un solo numero da 0 a 1 con ease none; ogni pannello ne ricava il suo tempo e lo passa per power3.inOut chiudendo e per back.out(1.1) aprendo, così il paravento riaperto va qualche grado oltre il piano e torna. Prima di chiudersi riceve una spinta di 3 gradi dall’altra parte. La pagina dietro viene avanti da scale 0.965 a 1 mentre il paravento se ne va.
Le larghezze dei pannelli e delle copie si scrivono di nuovo a ogni ridimensionamento, anche a metà piega: gli angoli sono numeri, quindi il disegno continua giusto. Al telefono i pannelli sono uno di meno. La prospettiva sta solo sul paravento, non sul palco. Con il movimento ridotto le due pagine si scambiano in dissolvenza.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
PANELS | script.js | 4 | Quanti pannelli ha il paravento su uno schermo largo; al telefono uno di meno. |
FOLD | script.js | 1.15 | I secondi che il paravento impiega a richiudersi. |
UNFOLD | script.js | 1.3 | I secondi che il paravento impiega a riaprirsi. |
STAGGER | script.js | 0.35 | Quanto sono sfalsati i pannelli, come parte del tempo: 0 = tutti insieme. |
SHADE | script.js | 0.4 | Quanto si scurisce un pannello girato via dalla luce. |
SPEED | script.js | 1 | La velocità di tutto: 2 è il doppio, 0.5 la metà. |
Per passare da una pagina all’altra in un sito di arredamento o di interni: un marchio di mobili, uno studio di interior design, un negozio di tessuti, un hotel che mostra le stanze, la pagina di una collezione che si apre su un catalogo. Va bene dove la seconda pagina è «dietro» la prima: una stanza, un retrobottega, una collezione.
La stessa piega con un pannello di meno, così i pannelli restano larghi abbastanza da leggere il titolo spezzato sulle pieghe; il paravento si chiude contro il bordo sinistro dello schermo alto e si riapre da lì.
Niente si piega: la pagina dopo compare in dissolvenza sopra quella di prima, con il titolo e l’elenco già al loro posto.
GSAP 3.15.0, Bricolage Grotesque (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 7,5 KB; le librerie: GSAP 28 KB.
Provata il 19 ottobre 2026
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.
Con l’email e la password del tuo account.
oppure con l’email
Hai fatto l’accesso come .
Con l’account scarichi lo zip di ogni animazione e di ogni pacchetto, gratis.