
L’indicatore a lancetta
Contatori, Fisica, SVG
NuovaGratis
La barra in basso di un'app con cinque icone disegnate a tratti: scegliendone una si ridisegna a colori sopra quella grigia e fa la sua mossa (la casa fuma dal camino e apre la porta, la lente fa il giro, la campanella oscilla col batacchio, il profilo annuisce, il più diventa una X), mentre la pillola scivola allungandosi e l'etichetta sale.
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 living icons tab bar</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/figtree@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the tab bar of a phone app: five icons drawn as SVG strokes. Each one, chosen, plays its own little move: the
house puffs smoke from its chimney, the lens sweeps a circle, the bell rings, the head nods, the plus turns
into a cross. The strokes are redrawn by the script on every frame; the label and the pill move from one tab
to the next -->
<nav class="bar" aria-label="Main" data-bar>
<span class="bar__pill" data-pill aria-hidden="true"></span>
<button class="tab" type="button" data-tab="home" data-autoclic>
<svg class="tab__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon></svg>
<span class="tab__label">Home</span>
</button>
<button class="tab" type="button" data-tab="search" data-autoclic>
<svg class="tab__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon></svg>
<span class="tab__label">Search</span>
</button>
<button class="tab" type="button" data-tab="add" data-autoclic>
<svg class="tab__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon></svg>
<span class="tab__label">New</span>
</button>
<button class="tab" type="button" data-tab="bell" data-autoclic>
<svg class="tab__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon></svg>
<span class="tab__label">Alerts</span>
<span class="tab__dot" aria-hidden="true" data-dot>3</span>
</button>
<button class="tab" type="button" data-tab="profile" data-autoclic>
<svg class="tab__icon" viewBox="0 0 28 28" aria-hidden="true" data-icon></svg>
<span class="tab__label">Profile</span>
</button>
</nav>
</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.
20 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 barra con le icone vive» da Animorio e adattala al mio sitoOgni icona è una funzione che, da pochi numeri, restituisce i suoi tratti come tracciati SVG: la casa da quanto è aperta la porta, quanto è schiacciata e dove sono i riccioli di fumo; la lente da quanto ha girato; il più da quanto ha ruotato e quanto sono lunghi i bracci; la campanella dai due angoli dei suoi pendoli; il profilo da quanto annuisce. A ogni fotogramma i tracciati si ricalcolano e si scrivono nell'attributo d.
Ogni icona è disegnata due volte con gli stessi tracciati: grigia sotto, a colori sopra. Il livello a colori ha pathLength="1" e stroke-dasharray, e un solo numero (da 0 a 1) dice quanto inchiostro c'è: ogni tratto ne ha la sua parte, uno dopo l'altro, così l'icona si ridisegna tratto per tratto e, al contrario, si spegne dall'ultimo all'indietro. Il fumo, la luce della porta, il riflesso e la cornice del più stanno solo nel livello a colori.
Le mosse sono timeline di GSAP sui numeri delle icone (la porta, i riccioli di fumo, il giro della lente, la rotazione del più con back.out), scalate da PLAY. La campanella no: è un pendolo scritto a mano, e il batacchio è un secondo pendolo appeso dentro di lei e spinto dalla sua accelerazione, così la segue in ritardo; una scelta le dà solo un colpo, il resto lo fa la fisica.
La pillola segue il centro della voce scelta su una molla (PILL), a passi di 4 millisecondi con il passo del fotogramma limitato a 1/30 di secondo. Dalla velocità vengono quanto si allunga (STRETCH) e quanto si abbassa, e l'allungamento sta più davanti che dietro, come una goccia che corre.
Le voci sono button in un nav e quella scelta ha aria-current="page"; le frecce passano da una voce all'altra, Inizio e Fine vanno ai capi. L'anteprima della libreria clicca le voci a turno: ognuna ha data-autoclic.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
START | script.js | 0 | La voce scelta all'apertura della pagina (0 è la prima). |
DRAW | script.js | 0.5 | I secondi che un'icona impiega a ridisegnarsi a colori. |
PLAY | script.js | 1 | Quanto sono ampie le mosse delle icone (0 ferme, 2 il doppio). |
PILL | script.js | [380, 0.62] | La molla della pillola: quanto è rigida e quanto è frenata. |
STRETCH | script.js | 0.0016 | Quanto si allunga la pillola con la velocità. |
BADGE | script.js | 3 | Il numero sulla campanella (0 lo nasconde). |
Per la barra di navigazione di un'app o di un sito pensato per il telefono, con quattro o cinque sezioni: dove ogni tocco può avere la sua piccola ricompensa e le icone possono raccontare cosa c'è dietro (una casa abitata, una ricerca che cerca, un avviso che suona).
La barra è larga 360 pixel e su un telefono si stringe alla larghezza dello schermo; resta di cinque voci uguali e ogni voce è un bersaglio di almeno 60 pixel. Al tocco l'icona si stringe appena come col mouse premuto, poi fa la sua mossa.
Le icone cambiano colore in un colpo e restano ferme: niente mosse, niente fumo né oscillazioni; la pillola salta alla voce nuova senza corsa, l'etichetta compare senza salire, e il più resta un più.
GSAP 3.15.0, Figtree (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 8,2 KB; le librerie: GSAP 28 KB.
Provata il 4 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.