
Il menu che si apre dal pulsante
Menu, Transizioni, Testo
Gratis
Un cerchio con la lente che si apre in un campo di ricerca: mentre si scrive i luoghi sotto si filtrano, le righe che restano scivolano al loro posto, le altre se ne vanno, le lettere trovate si accendono e una fascia segue le frecce.
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 opening search</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/onest@5.3.0/index.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="stage">
<!-- the search: a round button with a lens that opens into a field. Typing, the places below filter as you
go: the rows that stay slide to their new places, the others leave, the letters found are lit, and a band
follows the arrow keys or the pointer. The rows are made by the script -->
<div class="find" data-find data-autoclic>
<div class="find__bar" data-bar>
<button class="find__open" type="button" aria-label="Search destinations" aria-expanded="false" data-open>
<svg viewBox="0 0 24 24" aria-hidden="true" data-lens><path d="M10.5 4.5a6 6 0 1 0 0 12a6 6 0 1 0 0-12zM15 15l4.5 4.5"/></svg>
</button>
<input class="find__input" type="search" role="combobox" aria-label="Search destinations" aria-expanded="false" aria-controls="find-list" aria-autocomplete="list" autocomplete="off" autocapitalize="off" spellcheck="false" enterkeyhint="go" tabindex="-1" data-input>
<span class="find__hint" aria-hidden="true" data-hint><span data-hint-in>Search destinations</span></span>
<button class="find__close" type="button" aria-label="Close the search" tabindex="-1" data-close>
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M7 7l10 10M17 7 7 17"/></svg>
</button>
</div>
<div class="find__panel" data-panel>
<span class="find__pick" aria-hidden="true" data-pick></span>
<ul class="find__list" id="find-list" role="listbox" aria-label="Destinations" data-list></ul>
<p class="find__none" data-none></p>
</div>
<p class="sr" role="status" aria-live="polite" data-said></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.
51 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 ricerca che si apre» da Animorio e adattala al mio sitoIl campo è largo 56 pixel da chiuso e si allarga fino a WIDTH in OPEN secondi con expo.out; il testo e la crocetta compaiono un poco dopo, la lente gira di 90 gradi e torna (yoyo), e il fuoco va nel campo. Chiudendo, tutto si stringe di nuovo e il fuoco torna sulla lente.
search() cerca le lettere nel nome e nel paese senza badare a maiuscole e accenti, mette prima i nomi che cominciano così e ne tiene al massimo SHOWN; lit() avvolge in un mark le lettere trovate. È la sola funzione da cambiare per chiedere i risultati a un server.
Le righe restano le stesse per ogni luogo (una Map). Prima di cambiarle lo script misura dove sono: quelle che se ne vanno escono dal flusso al loro posto (misurate tutte prima di spostarne una) e scivolano via; quelle che restano partono da dove erano e scivolano al posto nuovo; le nuove entrano un attimo dopo. Il pannello si allunga o si accorcia fino alla misura della lista.
La fascia è un elemento solo che scivola sulla riga scelta (52 pixel per riga). Il campo ha role combobox e aria-activedescendant sulla riga scelta, che ha aria-selected; le frecce la spostano, Invio sceglie, Esc svuota e poi chiude.
A campo vuoto il suggerimento cambia ogni 2,4 secondi, fra quelli di TRIES. Un clic da script (detail 0, l’anteprima della libreria) manda avanti la ricerca di un passo: la apre e scrive lis una lettera alla volta, poi sceglie il luogo trovato, poi la richiude.
| Nome | File | Di partenza | Cosa cambia |
|---|---|---|---|
WIDTH | script.js | 520 | Quanto si apre al massimo il campo, in pixel. |
OPEN | script.js | 0.6 | I secondi in cui il cerchio si apre nel campo. |
SHOWN | script.js | 6 | Quanti luoghi mostra al massimo il pannello. |
TRIES | script.js | ['Search destinations', 'Try “Kyoto”', 'Try “Porto”', 'Try “Tallinn”'] | Quello che propone il campo vuoto, a turno. |
PLACES | script.js | [['Lisbon', 'Portugal'], ['Lyon', 'France'], …] | I luoghi in cui cercare: nome e paese. |
Per la ricerca di un sito, di un negozio o di un catalogo, per scegliere una città, un prodotto o una persona da un elenco: ovunque si cerca mentre si scrive.
Il campo si apre fino alla larghezza dello schermo meno un margine; il testo è di 17 pixel, così iPhone non ingrandisce la pagina toccandolo, e la tastiera mostra Vai. Le righe si toccano per scegliere.
Il campo si apre e si chiude di colpo, la lente non gira, i suggerimenti non scorrono, le righe compaiono e spariscono senza scivolare e la fascia salta da una riga all’altra.
GSAP 3.15.0, Onest (font variabile) 5.3.0.
Compressi con gzip, i tre file della demo pesano 6,7 KB; le librerie: GSAP 28 KB.
Provata il 3 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.