Vai al contenuto
animorio
EN
Torna alla libreria

Il caricamento che diventa marchio

Un conteggio fino a cento, un binario che si allunga, poi un rettangolo che si scopre e diventa il marchio mentre le righe escono dall'inchiostro.

Transizioni, SVG, TestoGSAPMediaGratis

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>Il caricamento che diventa marchio</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>
  <!-- i filtri "inchiostro" per le righe li crea lo script qui dentro -->
  <svg class="filtri" aria-hidden="true" focusable="false"><defs></defs></svg>

  <header class="angoli">
    <button type="button" class="angolo angolo--griglia" aria-label="Griglia"><span></span><span></span><span></span><span></span></button>
    <button type="button" class="angolo angolo--menu">Menu</button>
  </header>

  <main class="pagina">
    <div class="sinistra">
      <!-- il marchio: nasce rettangolo, poi il morph lo porta alla forma finale (data-forma) -->
      <div class="marchio">
        <svg viewBox="0 0 96 160" aria-hidden="true">
          <path class="marchio__forma" d="M0 0 L96 0 L96 160 L0 160 Z"
            data-forma="M48 4 C68 22 86 44 88 64 C78 68 72 80 78 92 C86 104 90 118 84 134 C76 150 62 158 44 158 C22 158 6 140 6 114 C6 88 22 66 34 48 C42 34 44 18 48 4 Z" />
        </svg>
      </div>
      <p class="meta" data-inchiostro>Disegno<br>e sviluppo</p>
      <p class="conta" aria-hidden="true"><span class="conta__riga"><span class="conta__cifre">0</span>%</span></p>
    </div>

    <span class="binario" aria-hidden="true"></span>

    <div class="destra">
      <p class="meta meta--su" data-inchiostro>Lavora da Brescia<br>con studi di tutta Europa</p>
      <h1 class="nome" data-inchiostro>Anna Ferri</h1>
      <p class="frase" data-inchiostro>Disegno prodotti digitali, interfacce e siti che si muovono.</p>
    </div>
  </main>

  <button type="button" class="rivedi" hidden>Rivedi il caricamento</button>

  <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/MorphSVGPlugin.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/gsap@3.15.0/dist/SplitText.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

Cosa fa

Al caricamento un numero sale da zero a cento nell'angolo in basso, mentre una riga sottile scende dall'alto e divide la pagina in due colonne. A cento il numero se ne va, i due pulsanti d'angolo arrivano in diagonale da fuori e al loro posto compare il marchio: prima come un rettangolo nero che si scopre dall'alto, poi il rettangolo si piega e diventa la forma vera. Insieme escono le righe di testo, una alla volta, come macchie d'inchiostro che si stringono fino a diventare lettere.

Come funziona

Il conteggio e il binario

Un oggetto { n: 0 } va a 100 con la stessa curva power3.inOut che allunga il binario da height 0 a 100%: numero e riga arrivano insieme. Il numero sta in una riga con overflow clip, così entra ed esce dalla sua maschera con yPercent.

I pulsanti dagli angoli

A conteggio finito i due pulsanti partono spostati di 6vw in diagonale fuori dallo schermo e tornano a zero con expo.out. È un dettaglio piccolo, ma dice che il sito è pronto.

Il rettangolo che diventa marchio

Il path parte come rettangolo (M0 0 L96 0 L96 160 L0 160 Z). Prima si scopre con clip-path inset dall'alto; poi MorphSVG lo porta alla forma scritta in data-forma. Partire da una forma semplice rende il morph leggibile: si vede il rettangolo piegarsi.

Le righe dall'inchiostro

SplitText divide i testi in righe e ogni riga riceve un suo filtro SVG: feGaussianBlur seguito da feColorMatrix con una soglia sull'alfa. Con la sfocatura alta la riga sparisce del tutto; mentre stdDeviation scende a zero compaiono macchie nette che si stringono in lettere. A fine corsa il filtro si toglie.

Valori da cambiare

NomeFileDi partenzaCosa cambia
CONTEGGIOscript.js2.2Secondi per arrivare a cento. In un sito vero legalo al caricamento reale (immagini, font) con un minimo per non farlo lampeggiare.
SFOCATURAscript.js0.32La sfocatura iniziale di ogni riga, in frazione della sua altezza. Più alta: le macchie compaiono più tardi e più grosse.
SOGLIAscript.js0 0 0 22 -8L'ultima riga della matrice che taglia l'alfa. Il primo numero indurisce i bordi, il secondo sposta il punto in cui la macchia compare.
data-formaindex.htmlil germoglioIl path finale del marchio: metti il tuo, disegnato nello stesso riquadro 96 x 160.

Quando usarla

Per l'ingresso di un portfolio o di un sito di marca, alla prima visita. Non a ogni pagina: la seconda volta deve bastare il marchio già al suo posto.

Sul telefono

Le colonne si stringono a uno contro tre; conteggio, marchio e righe restano identici. I filtri SVG su testi grandi pesano: tienili solo per l'ingresso.

Con il movimento ridotto

Niente conteggio: marchio, pulsanti e testi sono già al loro posto.

Trappole

  • Dividi il testo in righe solo dopo document.fonts.ready: con il carattere di riserva le righe vengono diverse e il filtro sfoca la riga sbagliata.
  • La zona del filtro va allargata (x, y, width, height): con i valori di serie la sfocatura viene tagliata a rettangolo.
  • A fine animazione togli il filtro (filter: none): la soglia rende i bordi delle lettere un po' duri e tenere un filtro attivo su testi grandi costa.
  • Salva il path di partenza prima del morph: per rivedere l'animazione rimetti il rettangolo con attr d, altrimenti MorphSVG parte dalla forma finale.

Librerie

GSAP 3.15.0, MorphSVG (GSAP) 3.15.0, SplitText (GSAP) 3.15.0, Mona Sans (font variabile) 5.3.0.

Peso: 12 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