Vai al contenuto
animorio
EN
Torna alla libreria

Parole che si fondono

Scorrendo, ogni parola si scioglie nella successiva: i contorni si incollano come gocce e la larghezza del font scivola dall'una all'altra.

Testo, Scroll, SVGGSAPFacileGratis

Scorri dentro l’anteprima

Il codice

Una cartella che funziona da sola: index.html, style.css, script.js e le librerie da CDN.

<!doctype html>
<html lang="it">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Parole che si fondono</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource-variable/mona-sans@5.3.0/standard.css">
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <!-- il filtro "goo": sfoca le lettere e poi taglia la trasparenza, così i bordi si incollano come gocce -->
  <svg class="filtri" aria-hidden="true" focusable="false">
    <filter id="goo" x="-10%" y="-30%" width="120%" height="160%">
      <feGaussianBlur class="goo-sfoca" in="SourceGraphic" stdDeviation="0" result="sfocato" />
      <feColorMatrix in="sfocato" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 22 -10" result="goo" />
      <feComposite in="SourceGraphic" in2="goo" operator="atop" />
    </filter>
  </svg>

  <main class="corsa">
    <div class="palco">
      <p class="sopra">Ogni progetto passa di qui</p>
      <!-- data-w: larghezza del font (asse wdth) che ogni parola vuole avere -->
      <h1 class="parole">
        <span class="sr">idea, sketch, design, live</span>
        <span class="parola" data-w="76" style="--c: #0f4f4c" aria-hidden="true">idea</span>
        <span class="parola" data-w="96" style="--c: #146662" aria-hidden="true">sketch</span>
        <span class="parola" data-w="112" style="--c: #d9602a" aria-hidden="true">design</span>
        <span class="parola" data-w="125" style="--c: #ff8a3d" aria-hidden="true">live</span>
      </h1>
    </div>
  </main>

  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/gsap.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/ScrollTrigger.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

Cosa fa

Una catena di parole occupa lo stesso posto. Scorrendo, la parola visibile si scioglie in quella dopo: a metà fusione le lettere si sfocano e si incollano, poi tornano nitide nella nuova forma. Intanto il font si allarga o si stringe, perché ogni parola ha la sua larghezza.

Come funziona

Una cella per tutte

Le parole sono span nella stessa cella di una griglia (grid-area: 1 / 1), quindi stanno esattamente una sopra l'altra.

Il filtro goo

Sul contenitore c'è un filtro SVG: feGaussianBlur sfoca, feColorMatrix con la riga alfa '0 0 0 22 -10' taglia netta la trasparenza, feComposite rimette i colori veri. Due forme sfocate vicine diventano una goccia sola.

La fusione

Lo scorrimento porta un valore da 0 a 1. Diviso per il numero di passaggi, dice quale parola sta andando via, quale sta arrivando e a che punto è la fusione.

Sfocatura a campana

La sfocatura segue sin(π · fusione): zero all'inizio, massima a metà, zero alla fine. È proporzionale al corpo del testo, così l'effetto è uguale su ogni schermo.

Filtro spento a riposo

Quando la sfocatura è quasi zero il filtro si toglie del tutto: le lettere restano nitide e il browser non ricalcola il filtro a ogni fotogramma.

Valori da cambiare

NomeFileDi partenzaCosa cambia
data-windex.html76 → 125La larghezza del font (asse wdth) di ogni parola. Parole lunghe stanno bene strette, parole corte larghe.
--cindex.html#0f4f4c …Il colore di ogni parola: durante la fusione i due colori si mescolano.
GOCCIAscript.js0.05Quanto si sfocano le lettere a metà fusione. Più alto, più le parole diventano liquide.
PAUSAscript.js0.18Quanto resta ferma ogni parola prima di sciogliersi.
.corsa heightstyle.css420vhLa lunghezza dello scorrimento: più è alta, più lente sono le fusioni.

Quando usarla

Per raccontare una trasformazione in poche parole: un processo, un prima e dopo, una promessa. Funziona con parole corte e un colore pieno.

Sul telefono

Identica: lo scorrimento col dito guida la fusione. Il corpo del testo scala con lo schermo, e la sfocatura con il corpo.

Con il movimento ridotto

Niente fusione: le parole compaiono una accanto all'altra, tutte leggibili, senza scena fissata.

Trappole

  • Il filtro goo mangia i contorni sottili: usa un peso del font alto (800-900).
  • La regione del filtro (x, y, width, height) deve essere più grande del testo, altrimenti la sfocatura viene tagliata ai bordi.
  • Safari ricalcola i filtri SVG a ogni fotogramma: spegnerlo a riposo non è un dettaglio, è quello che lo tiene fluido.

Librerie

GSAP 3.15.0, ScrollTrigger 3.15.0, Mona Sans (font variabile) 5.3.0.

Peso: 6,1 KB dei nostri file.

Collaudo

Provata il 26 settembre 2026

  • Computer: Fatto
  • Telefono: Fatto
  • Movimento ridotto: Fatto
  • Safari su iPhone: Fatto

Licenza d’uso

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.

Tutte le animazioni