
Il pulsante da far scorrere
Pulsanti, Fisica, Transizioni
NuovaGratis
Il «Book a table» di una pizzeria, fatto di pasta morbida: un corpo molle vero che si sporge verso il puntatore e cede sotto il dito. Al clic la pasta viene stesa con uno schiaffo, il pomodoro va giù a spirale, mozzarella e basilico cadono dall'alto e rimbalzano, un arco di mattoni si costruisce intorno col fuoco in fondo, il cornicione si gonfia e si macchia di bruciato. Il forno si alza, sale il vapore e la pizza si cuoce in una pillola dorata con scritto «Table booked».
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 pizza button</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/mona-sans@5.3.0/wdth.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the pizza button: the Book a table of a pizzeria, a pill of soft dough on a black page. The dough is a soft
body on a canvas: it leans towards the pointer and gives under the finger. A click slaps it out wider, the
sauce goes on in a spiral, mozzarella and basil drop on it and settle, a brick oven arch builds itself
round it with the fire at the back, the crust puffs and chars, the oven lifts away and the baked pill
says Table booked -->
<div class="pizza" data-pizza>
<canvas class="pizza__art" aria-hidden="true" data-art></canvas>
<button class="pizza__btn" type="button" data-btn data-autoclic>
<span class="pizza__face" data-face="rest">
<span class="pizza__word" data-label-text>Book a table</span>
</span>
<span class="pizza__face pizza__face--done" data-face="done" aria-hidden="true">
<svg class="pizza__tick" viewBox="0 0 20 20" aria-hidden="true"><path data-tick d="M4.5 10.5l3.6 3.6 7.4-8.2"/></svg>
<span class="pizza__word" data-done-text>Table booked</span>
</span>
</button>
<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.
37 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 della pizza» da Animorio e adattala al mio sitoSettantadue punti sul contorno della pillola, distribuiti alla stessa distanza lungo il perimetro (due tratti dritti e due mezzi cerchi). Ogni punto è tirato da una molla verso il suo posto e da un'altra verso la media dei suoi due vicini, con lo smorzamento; quattro piccoli passi per fotogramma, col passo limitato a 1/30 di secondo, lo tengono stabile. Il contorno si disegna con curve quadratiche fra i punti di mezzo, così resta morbido.
Il puntatore sposta i posti delle molle: vicino a lui il contorno si sporge verso di lui, sotto la pressione rientra lungo la normale. Lo schiaffo è un colpo di velocità verso l'esterno a tutti i punti (più forte sulle teste tonde), mentre GSAP porta i posti a una forma più larga e più bassa con un contorno irregolare fatto di tre sinusoidi: le molle fanno il resto, con l'oscillazione.
Il bordo interno del cornicione è l'anello stesso, spostato verso dentro lungo la sua normale. Il pomodoro è lo stesso contorno interno rimpicciolito verso il centro con un poco di rumore, ritagliato dentro il cornicione, e sopra due spirali sottili, scura e chiara, disegnate fino al punto in cui è arrivato il mestolo. Le macchie di bruciato stanno a gruppi lungo l'anello e compaiono ognuna a una soglia diversa della cottura, con un alone morbido intorno.
Ogni pezzo ha una velocità e la gravità; toccata la pizza rimbalza se arriva abbastanza forte e prende un colpo su una molla che lo schiaccia e lo allarga per un attimo. Le foglie di basilico hanno la resistenza dell'aria, quindi cadono più piano, ondeggiano e girano. L'ombra sotto ogni pezzo diventa più scura man mano che si avvicina.
L'arco è un'ellisse divisa in mattoni di uguale lunghezza misurata sulla sua linea di mezzo. GSAP fa cadere ogni mattone al suo posto con un rimbalzo, dai piedi alla chiave, e all'uscita li fa volare via in ordine inverso. Il fuoco sono particelle tonde e morbide sommate con 'lighter', ritagliate dentro il forno e disegnate dietro la pizza; la stessa luce, con un tremolio di tre sinusoidi, si somma sulla pizza e sui mattoni.
Una timeline GSAP muove pochi numeri (stesura, pomodoro, forno, fuoco, cottura, vapore) e chiama gli istanti delle cadute; la fisica e il disegno girano sul ticker di GSAP. Quando molle, ingredienti e particelle sono fermi e la timeline è finita, il canvas non viene più ridisegnato.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
LABEL | script.js | 'Book a table' | La scritta a riposo. |
DONE | script.js | 'Table booked' | La scritta sulla pillola cotta. |
STRETCH | script.js | 1.08 | Quanto si allarga la pasta con lo schiaffo: 1 per niente. |
MOZZARELLA | script.js | 6 | Quanti pezzi di mozzarella cadono sulla pizza. |
BASIL | script.js | 3 | Quante foglie di basilico cadono sulla pizza. |
GRAVITY | script.js | 2400 | Quanto forte cadono gli ingredienti. |
BOUNCE | script.js | 0.28 | Quanto rimbalzano gli ingredienti quando arrivano: 0 per niente. |
BAKE | script.js | 1.4 | I secondi che la pizza resta in forno. |
BRICKS | script.js | 13 | Quanti mattoni fanno l'arco del forno. |
HOLD | script.js | 2.6 | I secondi in cui resta la pillola cotta prima di tornare pasta. |
SOFT | script.js | 1 | Quanto è morbida la pasta: 0,5 soda, 1,6 molto molle. |
Per la prenotazione di una pizzeria, di un ristorante o di un forno, o per l'ordine di una consegna a domicilio: un'azione sola e importante, dove si può spendere qualche secondo per farla ricordare.
I tocchi fanno come i clic e il dito ammacca la pasta dove tocca; col dito non c'è la pasta che si sporge verso il puntatore. Il forno sale circa 60 pixel sopra la pillola e sporge una trentina di pixel ai lati: a 390 pixel ci sta senza sforare.
Niente molle, niente schiaffo, niente cadute, niente fuoco che si muove, niente farina né vapore. Al clic la scritta svanisce, il pomodoro e poi gli ingredienti compaiono già al loro posto con una dissolvenza, il forno appare e sparisce in dissolvenza con un bagliore fermo, la cottura si dissolve sulla pizza e la pillola dorata con la scritta arriva con una dissolvenza; poi torna pasta allo stesso modo.
GSAP 3.15.0, Mona Sans (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 15 KB; le librerie: GSAP 28 KB.
Provata il 13 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.