
Il pulsante da far scorrere
Pulsanti, Fisica, Transizioni
NuovaGratis
La notifica di una bella notizia, un ordine confermato o un obiettivo raggiunto, che arriva come una bottiglia di spumante: il collo della bottiglia entra dal bordo, la gabbietta si svita e scivola via, il tappo salta girando, ricade e rimbalza fuori, e la schiuma dorata esce con le bollicine, riempie la forma della notifica e si posa diventandone il fondo, su cui si scrive il messaggio. Quando si chiude, la schiuma si sgonfia e le bollicine scoppiano.
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, viewport-fit=cover">
<title>The popping cork toast</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/fraunces@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>
<main class="stage">
<!-- the good news toast of a wine shop and a savings app, delivered like a bottle of sparkling wine: the neck of
the bottle comes in from the edge, the wire cage is untwisted and slips off, the cork creeps out and pops
(it flies, turns, falls and bounces away), and the golden foam gushes out with its bubbles, fills the shape
of the notification and settles into its background, where the message is written. When it closes, the foam
sinks back, its bubbles bursting. The bottle, the cork, the foam and the bubbles are painted by script.js
on the canvas; the words and the buttons are real HTML on top -->
<div class="cellar" data-cellar>
<div class="slot" data-slot>
<canvas class="fizz" aria-hidden="true" data-fizz></canvas>
<section class="card" aria-label="Notification" data-card inert>
<svg class="card__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon>
<path class="card__wine" d="M10.9 8.2h6.2l-.35 4.2a2.75 2.75 0 0 1-5.5 0z" data-wine/>
<path class="card__glass" d="M10 3.5h8l-.62 8.9a3.4 3.4 0 0 1-6.76 0zM14 15.8v7.6M10.4 23.9h7.2" data-glass/>
</svg>
<div class="card__text">
<p class="card__title" data-title></p>
<p class="card__body" data-body></p>
</div>
<button class="card__close" type="button" aria-label="Dismiss notification" data-close>
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M7 7l10 10M17 7L7 17"/></svg>
</button>
</section>
</div>
<button class="trigger" type="button" data-trigger data-autoclic>
<span class="trigger__label" data-trigger-label></span>
</button>
<p class="sr" role="status" aria-live="polite" aria-atomic="true" 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.
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 «La notifica del tappo che salta» da Animorio e adattala al mio sitoLa bottiglia è un profilo lungo il suo asse (il labbro tondo, l’anello, il collo, la spalla) disegnato due volte, sopra e sotto, e riempito con una sfumatura di traverso; sopra ci sono i riflessi, la stagnola col bordo strappato, le pieghe che prendono o non prendono la luce e la fascia. Tappo e gabbietta si disegnano nello stesso sistema: l’occhiello della gabbietta, visto di lato, si allarga e si stringe col coseno del suo giro mentre si svita. La bottiglia sta su un livello a parte, cancellato con due sfumature in destination-out: così esce dal buio a sinistra e sotto il pavimento.
Il tappo parte lungo il collo con una velocità ricavata dalle formule del lancio, quella che lo fa ricadere vicino al fondo della notifica (POP la moltiplica), e una rotazione costante. Poi è gravità, rimbalzo sul pavimento con BOUNCE, attrito che frena la corsa e passa parte della velocità alla rotazione, come un tappo che rotola; oltre il bordo svanisce. La gabbietta, sfilata un attimo prima, cade allo stesso modo e si spegne prima di arrivare al pulsante.
Mentre il getto è forte escono fino a 820 particelle al secondo dalla bocca, con un ventaglio che si allarga quando la spinta cala: schiuma (più leggera, frenata dall’aria), gocce di vino e bollicine. Veloci si disegnano come strisce lungo la velocità, lente come gocce con un riflesso. La forza del getto è un tween GSAP che scende come (1 − t)², e intanto la bottiglia si abbassa a versare.
La schiuma atterrata è una fila di colonne, una ogni tre pixel, mossa dalle equazioni delle acque basse su una griglia sfalsata: la differenza di altezza spinge il flusso fra due colonne, il flusso porta l’altezza, con uno smorzamento forte perché la schiuma è densa e un poco di cedimento che arrotonda i fronti. Ogni particella che atterra aggiunge il suo volume alle colonne sotto di lei e un po’ della sua spinta; nessuna colonna supera di molto la notifica, il troppo scivola ai lati. Il volume di ogni particella è calcolato perché il getto riempia circa i quattro quinti della forma.
Per posarsi le colonne vengono tirate, sempre più forte, verso il profilo di un rettangolo arrotondato: la forma della notifica, angoli compresi. Una cupola che rimbalza con un elastico e il bordo mosso dalle bolle (due seni in valore assoluto, che si calmano a riposo) fanno il resto; la schiuma si dipinge con una sfumatura dalla crema all’oro, l’ombra ai lati e in fondo, un riflesso in alto e una luce calda sul pavimento. Chiudendo, lo stesso tiro porta le colonne a zero e la schiuma si sgonfia.
Le bollicine sono un mucchio di cerchi che salgono finché la schiuma è fresca, si vedono solo sotto la superficie e quando la toccano scoppiano in un anello che si apre; quando la superficie scende, scoppiano tutte. Le parole sono HTML vero sopra il canvas: le lettere del titolo (Fraunces) salgono con lo spessore che cresce da 250 a 620, la riga sotto (Instrument Sans) si allarga con l’asse wdth. Una riga role="status" le legge, la croce ed Esc chiudono, il tempo si ferma sotto il puntatore, col dito e col focus della tastiera. Il ciclo di disegno si ferma da solo quando niente si muove.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
MESSAGES | script.js | due, Your order is confirmed e You hit your goal | Le belle notizie, a turno: le parole del pulsante, il titolo e la riga sotto. |
LIFE | script.js | 5 | I secondi in cui la notifica resta prima che la schiuma si sgonfi (0: finché la chiudi); aspetta col puntatore sopra. |
PRESSURE | script.js | 0.45 | I secondi in cui il tappo esce piano, tremando, prima di saltare. |
POP | script.js | 1 | Quanto forte salta il tappo: 1 ricade vicino al fondo della notifica, 1.3 le vola sopra. |
SPIN | script.js | 20 | Quanto gira il tappo in aria, in radianti al secondo. |
BOUNCE | script.js | 0.42 | Quanto rimbalza il tappo quando tocca terra: 0 niente, 0.8 molto. |
FOAM | script.js | 1 | Quanto spruzzo esce: 0.5 un filo, 1.8 un getto (la notifica si riempie uguale). |
BUBBLES | script.js | 1 | Quante bollicine ci sono nella schiuma: 0.3 poche, 1.8 tante. |
SETTLE | script.js | 0.8 | I secondi in cui la schiuma si posa nella forma della notifica. |
FIRST | script.js | 0 | I secondi prima che salti da solo un primo tappo (0: aspetta il pulsante). |
Per le notizie che meritano un brindisi, una alla volta: un ordine confermato in un’enoteca o in un negozio, un obiettivo di risparmio raggiunto, una prenotazione per una festa, un traguardo in un’app. Il colpo di scena dura circa quattro secondi, quindi non va bene per le notifiche di tutti i giorni; per un sito sobrio si abbassano FOAM e BUBBLES. Il posto della notifica deve avere un po’ di aria sopra, dove vola il tappo.
La notifica prende la larghezza dello schermo meno 32 pixel (358 a 390) e sotto i 420 pixel gli spazi e il testo si stringono un poco; la bottiglia entra un poco più vicina al bordo e la velocità del tappo si ricalcola dalla larghezza, così ricade comunque dentro la notifica. Col dito sulla notifica le bollicine ripartono e il tempo si ferma; la croce ha un’area di tocco più grande di quella disegnata. Al cambio di misura le colonne della schiuma si ricampionano, anche a metà del getto.
Niente bottiglia, niente tappo che vola e niente spruzzo: la notifica di schiuma compare in dissolvenza già posata, con le bollicine ferme, e le parole compaiono in dissolvenza. Chiudendo, schiuma e parole svaniscono in dissolvenza.
GSAP 3.15.0, Fraunces (font variabile) 5.3.0, Instrument Sans (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 17 KB; le librerie: GSAP 28 KB.
Provata il 17 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.