Tailwind CSS Academy · Lezione

Utility per le transizioni

Abiliti le transizioni CSS con transition-*, quindi scelga quali proprietà animare con transition-colors, transition-transform e transition-all.

Lezione 1 di 413 passaggi

Utility per le transizioni è una lezione Tailwind CSS Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Tailwind CSS Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Tailwind CSS Academy include 4 lezioni in totale.

Perché le transizioni CSS sono importanti

Le transizioni CSS rendono fluidi i cambiamenti di stato e li fanno percepire come intenzionali anziché improvvisi. Quando un pulsante cambia colore di sfondo al passaggio del mouse, una barra laterale scorre all'interno della pagina o un campo di input riceve un anello di messa a fuoco, le transizioni comunicano all'utente che è successo qualcosa e guidano la sua attenzione. Le utility per le transizioni di Tailwind permettono di aggiungere queste animazioni con una sola classe, senza ricorrere a CSS personalizzato per i casi d'uso più comuni.

La utility transition

La utility di base transition abilita le transizioni CSS per le proprietà animate più comuni: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform e filter. In genere basta aggiungere transition a un pulsante per animare in modo fluido i cambiamenti di colore al passaggio del mouse.

<!-- Simple hover transition on a button -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition">
  Hover Me
</button>

<!-- The transition class enables smooth color changes -->
<!-- Without it, the color snaps instantly on hover -->
<!-- With it, the background color animates over 150ms (Tailwind default) -->

Proprietà di transizione specifiche

Usi utility di transizione mirate per animare solo proprietà specifiche. È più efficiente di transition-all, perché il browser non deve ricalcolare tutte le possibili proprietà animate a ogni fotogramma. Tailwind mette a disposizione transition-colors, transition-opacity, transition-shadow, transition-transform e transition-all per esigenze diverse.

<!-- Only animate colors -->
<button class="bg-blue-600 hover:bg-blue-700 text-white transition-colors">
  Color Transition
</button>

<!-- Only animate transform (GPU accelerated) -->
<div class="hover:scale-105 transition-transform cursor-pointer">
  Scale on hover
</div>

<!-- Only animate opacity -->
<div class="opacity-100 hover:opacity-75 transition-opacity">
  Fade on hover
</div>

<!-- Animate shadow (depth change) -->
<div class="shadow hover:shadow-lg transition-shadow rounded-xl p-4">
  Shadow depth change
</div>

transition-all e proprietà specifiche

transition-all applica una transizione simultaneamente a ogni proprietà CSS animabile. Sebbene sia comoda, può causare comportamenti imprevisti: ad esempio, proprietà del layout come height o width possono diventare animate quando si desiderava modificare solo i colori. È inoltre meno efficiente, perché il browser tiene traccia di tutte le proprietà. Quando possibile, usi utility di transizione specifiche; ricorra a transition-all solo quando ha davvero bisogno di animare insieme più proprietà non correlate.

<!-- transition-all: animates EVERYTHING that changes -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-all">
  All properties animate (colors, transforms, borders...)
</div>

<!-- More precise: only animate what you intend -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-colors transition-transform">
  Only colors and transforms animate
</div>

Combinare transition con le varianti di stato

Le utility di transizione funzionano abilitando la proprietà CSS transition. Le varianti di stato come hover:, focus: e group-hover: definiscono gli stati iniziale e finale tra i quali avviene l'animazione. Posizioni sempre la classe transition sull'elemento di base, non all'interno della variante, in modo che si applichi in entrambe le direzioni: la transizione viene eseguita sia entrando nello stato sia uscendone.

<!-- Transition enables smooth enter AND exit -->
<a class="text-gray-600 hover:text-blue-600 transition-colors duration-200"
   href="#">
  Animated link — hover to see color change both ways
</a>

<!-- Card with multiple transitions -->
<div class="bg-white hover:bg-blue-50
            shadow-sm hover:shadow-md
            border border-gray-200 hover:border-blue-200
            transition-all duration-200 rounded-xl p-6 cursor-pointer">
  Interactive card
</div>

Animare opacità e visibilità

Per fare comparire e scomparire gradualmente gli elementi, è necessario applicare una transizione a opacity e gestire anche visibility o display. Le transizioni CSS non possono animare il passaggio da o verso display: none, quindi per semplici effetti di dissolvenza usi opacity insieme a pointer-events-none. Per gli elementi che devono scomparire davvero, uscendone dall'ordine di tabulazione, combini le transizioni dell'opacità con la commutazione delle classi tramite JavaScript.

<!-- Fade an element using opacity + pointer-events -->
<div id="tooltip"
     class="opacity-0 pointer-events-none
            group-hover:opacity-100 group-hover:pointer-events-auto
            transition-opacity duration-200
            bg-gray-900 text-white text-xs px-2 py-1 rounded">
  Tooltip content
</div>

<!-- JavaScript fade with class toggle -->
<!-- Remove: classList.add('opacity-0', 'pointer-events-none') -->
<!-- Show: classList.remove('opacity-0', 'pointer-events-none') -->

Transizioni delle trasformazioni

Le transizioni delle trasformazioni sono particolarmente fluide perché vengono eseguite dalla GPU invece di attivare ricalcoli del layout. Le utility scale-*, rotate-*, translate-* e skew-* di Tailwind vengono tutte animate in modo fluido con transition-transform. Gli effetti di ridimensionamento su card e pulsanti, gli effetti di rotazione sulle icone e gli effetti di scorrimento sui pannelli usano tutti questo approccio per ottenere le migliori prestazioni.

<!-- Subtle scale effect on card hover -->
<div class="hover:scale-105 transition-transform duration-200 cursor-pointer bg-white rounded-xl p-6 shadow">
  Card that scales up on hover
</div>

<!-- Rotating icon -->
<button class="group p-2">
  <svg class="w-5 h-5 group-hover:rotate-180 transition-transform duration-300">
    <!-- chevron icon -->
  </svg>
</button>

<!-- Slide from left with translateX -->
<div class="-translate-x-full open:translate-x-0 transition-transform duration-300">
  Sidebar panel
</div>

Accessibilità e riduzione del movimento

Alcuni utenti soffrono di cinetosi o convulsioni a causa delle animazioni e impostano il sistema operativo su Riduci movimento. Tailwind fornisce le varianti motion-reduce: e motion-safe:, che si attivano in base alla media query prefers-reduced-motion dell'utente. Usi motion-safe: per applicare le animazioni solo quando l'utente non ha richiesto la riduzione del movimento, rendendo le transizioni accessibili per impostazione predefinita.

<!-- Only animate when user is OK with motion -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg
               motion-safe:transition-colors motion-safe:duration-200">
  Accessible Button
</button>

<!-- Remove transitions entirely for reduced-motion users -->
<div class="hover:scale-105 motion-reduce:transform-none
            motion-safe:transition-transform motion-safe:duration-200">
  Accessible card hover
</div>

Transizioni negli stati di messa a fuoco

Le transizioni dello stato di messa a fuoco sono particolarmente importanti per la navigazione da tastiera. Quando un utente raggiunge un campo di input o un pulsante premendo Tab, l'anello di messa a fuoco dovrebbe comparire gradualmente invece di apparire all'improvviso. Applichi transition a tutti gli elementi interattivi, così la transizione dell'anello di messa a fuoco risulta curata quanto quella al passaggio del mouse. Per un'esperienza da tastiera ottimale, includa focus:ring-* e focus:ring-offset-* insieme a una transizione.

<input
  type="text"
  class="
    w-full px-4 py-2 rounded-lg
    border border-gray-300
    text-gray-900 placeholder:text-gray-400
    ring-0
    focus:ring-2 focus:ring-blue-500 focus:border-transparent focus:outline-none
    transition duration-150
  "
  placeholder="Smooth focus ring transition"
/>

Più proprietà di transizione

Può combinare più utility di transizione specifiche su un singolo elemento per animare solo un insieme preciso di proprietà. Tailwind le compone usando la proprietà CSS abbreviata transition-property. Sovrapponendo transition-colors e transition-shadow sullo stesso elemento, sia i colori sia le ombre vengono animati, mentre le altre proprietà, come le trasformazioni, cambiano istantaneamente.

<!-- Animate colors AND shadows, but not transforms -->
<div class="
  bg-white hover:bg-gray-50
  shadow hover:shadow-md
  scale-100 hover:scale-105
  transition-colors transition-shadow
  duration-200 rounded-xl p-6
">
  Colors and shadows animate smoothly;
  scale change happens instantly (no transition-transform)
</div>

Le transizioni nella pratica: esempio completo

Ecco un link di navigazione realistico con transizioni completamente curate: lo sfondo appare gradualmente al passaggio del mouse, il colore del testo cambia contemporaneamente, la sottolineatura si estende da sinistra verso destra usando una trasformazione di scala e gli stati di messa a fuoco corrispondono esattamente allo stile al passaggio del mouse. Ogni interazione risulta intenzionale e fluida, senza una sola riga di CSS personalizzato.

<a
  href="/features"
  class="
    relative inline-block
    text-gray-600 hover:text-blue-600
    font-medium text-sm
    pb-0.5
    transition-colors duration-150
    focus:outline-none focus:text-blue-600
    group
  "
>
  Features
  <!-- Animated underline -->
  <span class="
    absolute bottom-0 left-0 w-full h-0.5 bg-blue-600
    scale-x-0 group-hover:scale-x-100
    transition-transform duration-200 origin-left
  "></span>
</a>

Verifica rapida

Verifichi la sua comprensione delle utility per le transizioni di Tailwind.

Riepilogo della lezione

In questa lezione ha imparato che la utility di base transition abilita animazioni fluide per le proprietà più comuni, che le utility di transizione specifiche come transition-colors e transition-transform sono più efficienti di transition-all e che la variante motion-safe: assicura che le animazioni vengano applicate solo quando l'utente non ha richiesto la riduzione del movimento. Nella prossima lezione controlleremo la durata delle transizioni e le funzioni di temporizzazione.

Gratis per iniziare

Impara HTML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Utility per le transizioni» è gratuita?

Sì — il testo completo di «Utility per le transizioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Tailwind CSS Academy, passa a CoddyKit PRO. Il corso Tailwind CSS Academy include 4 lezioni in totale.

Cosa imparerò in «Utility per le transizioni»?

Abiliti le transizioni CSS con transition-*, quindi scelga quali proprietà animare con transition-colors, transition-transform e transition-all. Eserciti Tailwind CSS Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Tailwind CSS Academy?

Non è richiesta alcuna esperienza precedente. Tailwind CSS Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Utility per le transizioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Tailwind CSS Academy?

Sì. Ogni lezione Tailwind CSS Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Utility per le transizioni
  2. Durata e funzione di easing
  3. Animazioni keyframe integrate
  4. Animazioni personalizzate nella configurazione
← Torna a Tailwind CSS Academy