
Il rullo delle ore
Selettori, 3D, Fisica
NuovaGratis
Il pulsante Run workflow di uno strumento di automazione: una pillola color grafite vista dall’alto, con sopra una fila di tessere del domino in piedi, in leggera curva. Premuto, la prima tessera cade e la reazione a catena attraversa il pulsante accelerando, una tessera dopo l’altra, mentre la scritta segue i passi del flusso fino a Workflow complete. Le tessere sono corpi rigidi simulati davvero, che ruotano sullo spigolo e si appoggiano l’una sull’altra; poi si rialzano all’indietro, come un video riavvolto.
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 domino button</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/geist@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the domino button: the Run workflow button of an automation tool, a graphite pill seen from above with a row
of tiles standing on it in a gentle curve. Pressed, the first tile falls and the chain runs across the pill,
one step of the workflow after the other -->
<div class="domino" data-domino>
<div class="pill" data-pill>
<canvas class="pill__scene" aria-hidden="true" data-scene></canvas>
<!-- the words lie on the pill's top, in its perspective: real text, laid there by the script -->
<span class="pill__label" aria-hidden="true" data-label>
<span class="pill__icon" data-icon><svg viewBox="0 0 24 24"><path d="M8 5.6v12.8c0 .8.9 1.3 1.6.8l9.4-6.4c.6-.4.6-1.2 0-1.6L9.6 4.8C8.9 4.3 8 4.8 8 5.6z"/></svg></span>
<span class="pill__word" data-word>Run workflow</span>
</span>
<!-- the real button: a transparent area over the pill -->
<button class="pill__hit" type="button" aria-label="Run workflow" aria-describedby="domino-note" data-hit data-autoclic></button>
</div>
<p class="note" id="domino-note"><span data-steps>4 steps</span> · <span data-last>last run 2 hours ago</span></p>
<p class="sr" aria-live="polite" data-live></p>
</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.
27 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 «Il pulsante a domino» da Animorio e adattala al mio sitoOgni tessera è un corpo rigido che ruota sullo spigolo davanti della sua base. Il baricentro sta a metà altezza e metà spessore: la sua altezza dal piano, (t/2)·sin a + (h/2)·cos a, è l’energia della tessera, e la tessera resta in piedi finché l’angolo non supera arctan(t/h), poi la gravità la fa cadere sempre più in fretta, come un pendolo rovesciato. La spinta del dito è una velocità iniziale di PUSH volte quella appena sufficiente a farla cadere.
Una tessera caduta si appoggia alla successiva: l’angolo a cui lo fa è quello per cui il suo spigolo in alto sta esattamente sulla faccia dietro dell’altra, trovato con una bisezione. Così tutta la parte caduta della catena dipende da un angolo solo, quello della tessera davanti, e quando la tessera davanti si corica fino a toccare il piano le altre si fermano a embrice, ognuna sulla successiva.
La parte che cade ha un’energia e un’inerzia che cambiano con l’angolo: l’inerzia è la somma di quella di ogni tessera per il quadrato di quanto gira quando gira la prima, calcolato con le differenze finite. L’equazione del moto viene dal lagrangiano, q″ = (−V′ − I′·q′²/2) / I, integrata in dieci passi per fotogramma col passo limitato a 1/30 di secondo. A ogni urto la tessera nuova entra nel corpo e la catena tiene KEEP della sua energia: per questo parte piano, accelera e poi corre a velocità costante, come una catena vera.
La pillola, le tessere e le ombre sono un piccolo modello disegnato su un canvas a ogni fotogramma: una camera alzata di 56 gradi proietta i punti con un po’ di prospettiva, le facce girate dall’altra parte (riconosciute dal verso in cui girano sullo schermo) non si disegnano, le tessere vanno dalla più lontana alla più vicina, e ogni faccia prende la luce da una lampada. Le ombre sono gli otto spigoli di ogni tessera proiettati sul piano lungo la luce, chiusi in un involucro convesso e disegnati tutti insieme in un canvas a parte, così dove si sovrappongono non diventano più scure.
La scritta è testo HTML vero, posato sul piano della pillola con una matrix() fatta da due vettori proiettati, e affonda con lei. Durante la caduta lo script registra gli angoli di ogni fotogramma: il ritorno è quella registrazione suonata al contrario in REWIND secondi, così le tessere si rialzano proprio come sono cadute, dall’ultima alla prima. Quando niente si muove il canvas non viene ridisegnato.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
TILES | script.js | 15 | Quante tessere stanno in piedi nella fila (la pillola si allunga con loro). |
GAP | script.js | 23 | La distanza da una tessera all’altra, in pixel (una tessera è alta 54). |
GRAVITY | script.js | 950 | La gravità che fa cadere le tessere, in pixel al secondo quadrato: meno è un rallentatore. |
PUSH | script.js | 1.25 | Quanto forte la pressione spinge la prima tessera (1 = appena quanto basta a farla cadere). |
KEEP | script.js | 0.66 | La parte di energia che la catena tiene a ogni urto. |
CURVE | script.js | 14 | Quanto si piega la fila, in pixel. |
DONE | script.js | 2.8 | I secondi in cui il pulsante dice Workflow complete prima che le tessere si rialzino. |
REWIND | script.js | 1.2 | I secondi del video riavvolto. |
TREMBLE | script.js | 1 | Quanto tremano le tessere vicine al puntatore. |
STEPS | script.js | ['Fetching new orders', 'Enriching contacts', 'Updating the CRM', 'Posting the summary'] | I lavori del flusso che la scritta attraversa mentre la catena corre. |
Per il pulsante che fa partire qualcosa fatto di passi in fila: un flusso di automazione, una pipeline, un’importazione, una sequenza di email. La catena dice senza parole che un passo fa partire il successivo. Sta bene da solo, nel punto della pagina dove si lancia l’azione principale.
Il disegno si scala sulla larghezza dello schermo (a 390 pixel la pillola è larga circa 350) e niente sfora. Il tocco preme la pillola, che affonda sotto il dito; il tremolio al passaggio è solo del mouse.
Niente cade: la fila in piedi si dissolve nella fila coricata, coi dorsi colorati, e la scritta passa subito a Workflow complete; il ritorno è la stessa dissolvenza all’indietro. La pillola non affonda e le tessere non tremano.
GSAP 3.15.0, Geist (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 12 KB; le librerie: GSAP 28 KB.
Provata il 5 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.