
Il pulsante da far scorrere
Pulsanti, Fisica, Transizioni
NuovaGratis
I file di un progetto in un albero: una cartella si apre piegando il coperchio e girando la freccetta, i suoi file scendono uno dopo l’altro mentre la linea che li appende si disegna; una sola evidenziazione scivola su una molla fino alla voce scelta, allungandosi un poco, un file nuovo scrive il suo nome lettera per lettera e uno cancellato si richiude.
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 file tree</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/encode-sans@5.3.0/standard.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the file tree: folders open with their lid lifting and their files coming down one after another, a single
highlight slides to the item chosen, and a new file writes its own name -->
<section class="files" aria-labelledby="files-title" data-files data-autoclic>
<header class="files__head">
<h2 class="files__title" id="files-title">Explorer</h2>
<button class="files__new" type="button" data-new>
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 6v12M6 12h12"/></svg>
New file
</button>
</header>
<div class="tree" data-tree>
<span class="tree__mark" aria-hidden="true" data-mark></span>
<ul class="tree__root" role="tree" aria-labelledby="files-title" data-root></ul>
</div>
<p class="sr" aria-live="polite" data-live></p>
</section>
</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.
34 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 «L’albero dei file» da Animorio e adattala al mio sitoIl gruppo dei figli parte da altezza zero e va all’altezza letta da scrollHeight in OPEN secondi con power3.out; alla fine l’altezza scritta viene tolta (clearProps), così un file aggiunto dopo non resta fuori. Intanto i figli entrano da sinistra a CASCADE secondi l’uno dall’altro e la variabile --hang porta da 0 a 1 la scala verticale della linea che li appende. Chiudendo, l’altezza torna a zero e il gruppo viene nascosto.
La freccetta gira di 90 gradi con back.out; il coperchio della cartella, un pezzo a parte dello stesso SVG, si inclina (skewX) e si accorcia (scaleY) attorno al suo bordo basso, come una cartella aperta.
Sotto le voci c’è un solo rettangolo, mosso da una molla (GLIDE) calcolata sul ticker di GSAP a passi di 4 millisecondi verso la posizione della voce scelta, riletta a ogni fotogramma: così la segue anche mentre le cartelle sopra cambiano altezza. Più va veloce più si allunga in verticale, fino a circa un terzo; il ticker si ferma quando è arrivato e nessuna cartella si sta muovendo.
Il file nuovo va nella cartella scelta, che si apre; la sua riga cresce da zero a 32 pixel e un tween su un numero scrive il nome lettera per lettera (TYPE secondi a lettera) davanti a un cursore, che lampeggia e viene tolto. Il file cancellato va ad altezza zero scivolando di lato e, se era scelto, l’evidenziazione passa alla voce dopo (o a quella prima).
L’albero segue lo schema ARIA tree: un solo posto nel Tab, la voce scelta indicata da aria-activedescendant, frecce su e giù, Home e Fine, destra che apre o entra, sinistra che chiude o risale, Invio e spazio che aprono e chiudono, Canc che cancella; coi tasti l’anello del fuoco sta sull’evidenziazione e viaggia con lei. Un clic da script (l’anteprima della libreria) è una mano finta che sceglie file, apre e chiude cartelle, crea un file e poi lo cancella, e torna all’inizio.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
OPEN | script.js | 0.38 | I secondi che una cartella impiega ad aprirsi (a chiudersi un po’ meno). |
CASCADE | script.js | 0.04 | I secondi fra l’arrivo di un file e quello dopo. |
GLIDE | script.js | [420, 0.78] | La molla dell’evidenziazione: quanto è rigida e quanto è frenata. |
TYPE | script.js | 0.06 | I secondi che il nome di un file nuovo impiega per ogni lettera. |
TREE | script.js | ['website', [['src', […]], …]] | I file: un nome e, per una cartella, quello che contiene. |
Per un editor nel browser, il gestore dei file di un’app, la documentazione di un progetto, un indice annidato, un menu a più livelli, le categorie di un negozio.
Le voci si toccano col dito; il pannello è largo al massimo 360 pixel e sta appeso in alto, così crescendo e calando non salta; i tocchi non aspettano il doppio tocco (touch-action manipulation).
Le cartelle si aprono e si chiudono subito, l’evidenziazione va alla voce senza molla e senza allungarsi, il file nuovo compare col nome già scritto e quello cancellato sparisce subito; niente entrata.
GSAP 3.15.0, Encode Sans (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 6,5 KB; le librerie: GSAP 28 KB.
Provata il 3 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.