
Attrezzi che cadono
Fisica, Hover
NuovaGratis
I colleghi sono cursori con un nome: girano per la tavola e si scansano quando il puntatore si avvicina; messi all’angolo o cliccati, si fermano e rispondono. Sopra il titolo il tuo cursore diventa un quadrato che inverte i colori.
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 cursors that run away</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/anybody@5.3.0/wdth.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/geist-mono@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- a shared board: the studio's people are cursors with a name, and they keep away from yours -->
<main class="board" data-board>
<header class="top">
<p class="brand">Offcut</p>
<p class="top__line">The people at the studio</p>
</header>
<h1 class="headline" data-headline>Nobody here<br>likes to be<br>pointed at.</h1>
<!-- the colleagues: the script writes one for each name in its list -->
<div class="peers" data-peers aria-hidden="true"></div>
<!-- your cursor: an arrow with its tag; over the headline it becomes a square that inverts what is under it -->
<div class="lens" data-lens aria-hidden="true"></div>
<div class="lens-frame" data-lens-frame aria-hidden="true"><i></i><i></i><i></i><i></i></div>
<div class="you" data-you aria-hidden="true">
<svg class="you__arrow" viewBox="0 0 24 26" width="24" height="26"><path d="M2 2 L2 21 L7.4 16.2 L11 24 L14.6 22.4 L11.2 14.8 L18.6 14.4 Z"/></svg>
<span class="you__tag">You</span>
</div>
<p class="note" data-note>Go after them: they keep their distance. Corner one, or click it, and it answers.</p>
</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.
50 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 «I cursori che scappano» da Animorio e adattala al mio sitoOgni cursore ha un posto, in frazioni della tavola, e ci gira intorno: un seno lungo una sua linea, con un periodo fra 5 e 8 secondi, e un secondo seno più lento di traverso. Niente tween: a ogni fotogramma la posizione voluta si calcola dal tempo.
Se il puntatore è a meno di 260 px, alla posizione voluta si aggiunge una spinta lungo la linea che li unisce, verso fuori: 190 px quando sono uno sull’altro, zero a 260. La distanza si misura dalla posizione che il cursore ha adesso, quindi scappa anche mentre lo insegui. I bordi della tavola fermano la posizione voluta: è lì che lo si mette all’angolo.
Il cursore non salta alla posizione voluta: ce lo porta una molla (rigidità 120, smorzamento 15), integrata a passi di un centoventesimo di secondo dentro il ticker di GSAP. La freccia si inclina con la velocità di lato. Vicino al bordo destro nome e fumetto passano a sinistra della freccia, con due soglie diverse per non tremare sulla linea.
Sotto i 26 px dal puntatore, o con un clic entro 46 px, il cursore è preso: la posizione voluta diventa quella in cui si trova, la freccia sobbalza, e una timeline scrive la risposta una lettera ogni 0,05 secondi, la tiene, la cancella un poco più in fretta. Poi torna libero, con quasi un secondo in cui non lo si può riprendere.
Quando il puntatore entra nel rettangolo del titolo, un numero va da 0 a 1 in 0,4 secondi: è la scala di un quadrato bianco centrato sul puntatore, con mix-blend-mode: difference. Bianco meno blu dà giallo, bianco meno bianco dà nero. I quattro quadratini agli angoli stanno in un elemento a parte, senza fusione, e la freccia sfuma mentre il quadrato si apre.
Dopo tre secondi senza puntatore parte una mano: segue una curva di Lissajous e i cursori la evitano come eviterebbero te. Ogni sei secondi e mezzo punta dritta al più vicino, che per quella volta non la vede arrivare, e lo prende. Al primo movimento vero sparisce.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
TEAM | script.js | 5 | Nomi, colori, posti e risposte: una riga per persona. |
REACH, PUSH | script.js | 260, 190 | Da che distanza cominciano a scansarsi, e di quanto sono spinti quando il puntatore è su di loro, in pixel. |
SPRING | script.js | 120 / 15 | La molla che li porta, rigidità e smorzamento: meno smorzamento, più rimbalzo. |
DRIFT | script.js | [90, 56] | Quanto si allontanano dal loro posto girando: lungo la loro linea, e di traverso. |
CATCH, CLICK | script.js | 26, 46 | Sotto che distanza un cursore è preso, e fino a che distanza vale un clic. |
LETTER | script.js | 0.05 | I secondi per ogni lettera della risposta. |
IDLE, HUNT_EVERY | script.js | 3, 6.5 | Dopo quanti secondi senza puntatore la tavola gioca da sola, e ogni quanto la mano ne prende uno. |
LENS | script.js | [190, 0.26, 340] | Il quadrato che inverte: lato minimo, parte della larghezza della tavola, lato massimo. |
Per la pagina di una squadra, di uno studio o di uno strumento dove si lavora in tanti: l’apertura di un «chi siamo», una pagina di assunzioni, il lancio di un prodotto collaborativo.
I cursori scappano dal dito mentre lo si trascina, e un tocco su uno lo prende. Portata, spinta e giro si accorciano con la tavola; vicino al bordo nomi e fumetti si aprono a sinistra. Alzato il dito, dopo tre secondi riparte la mano che gioca da sola.
I cursori stanno fermi al loro posto e non scappano: portando il puntatore su uno, o toccandolo, la sua risposta compare tutta insieme per due secondi. Il quadrato che inverte si apre e si chiude senza animazione, e la tavola non gioca da sola.
GSAP 3.15.0, Anybody (font variabile) 5.3.0, Geist Mono (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 7,0 KB; le librerie: GSAP 28 KB.
Provata il 30 settembre 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.