Transition e keyframes CSS, con 20 esempi da copiare

Playground delle transition CSS

Transition e keyframes CSS: 20 esempi dal vivo | We.Inc

Regola durata, ritardo ed easing con gli slider, guarda la curva cubic-bezier disegnata, confronta le transition con @keyframes e copia 20 micro-interazioni al passaggio del mouse che rispettano il reduced motion.

Una transition CSS anima in modo fluido una proprietà quando il suo valore cambia, per esempio al passaggio del mouse: transition: transform 200ms ease-out. Ha bisogno di uno stato iniziale e uno finale e parte una volta per ogni cambiamento. Le animazioni @keyframes definiscono i propri passaggi, possono ripetersi in loop e partono senza alcun cambio di stato. Anima transform e opacity per i risultati più fluidi.

transition, parte per parte

Il playground anima un elemento reale tra due stati con la proprietà, la durata, il ritardo e l'easing che scegli, e disegna l'easing come una curva così vedi perché ease-out sembra scattante ed ease-in sembra lento. Più in basso trovi venti effetti di hover e focus che puoi modificare dal vivo e incollare in qualsiasi sito.

Domande frequenti

Qual è la differenza tra una transition e un'animation?

Una transition reagisce a un cambio di valore, come una classe aggiunta o l'inizio di un hover, e va solo dal valore vecchio a quello nuovo. Un'animation usa @keyframes, può avere molti passaggi, può ripetersi o alternarsi, e parte appena viene applicata. Usa le transition per i cambi di stato e i keyframes per loader e richiami d'attenzione.

Perché la mia transition non parte?

Cause comuni: la proprietà non è animabile (display non lo era, fino ad allow-discrete), il valore iniziale è auto (height: auto non si può interpolare senza funzionalità più recenti), l'elemento è appena stato inserito quindi non c'è uno stile precedente, oppure la transition è dichiarata solo sullo stato hover e quindi torna indietro di scatto quando il mouse esce.

Quali proprietà costano poco da animare?

transform e opacity di solito possono essere gestite dal compositor senza ricalcolare il layout o ridisegnare, quindi restano fluide. Animare width, height, top, left o margin forza il layout a ogni frame, e box-shadow o filter provocano ridisegni, che possono scattare sui telefoni più lenti.

Che cosa significa cubic-bezier?

Descrive la curva di easing con due punti di controllo, cubic-bezier(x1, y1, x2, y2). I valori x sono il tempo e devono restare tra 0 e 1; i valori y sono l'avanzamento e possono uscire da quell'intervallo, creando un superamento o un piccolo rimbalzo all'indietro.

Come rispetto il reduced motion?

Usa la media query @media (prefers-reduced-motion: reduce) per accorciare o eliminare il movimento. Un approccio semplice è mantenere i cambi di colore e opacità ma togliere i transform, oppure impostare transition-duration e animation-duration a un valore minimo dentro quella query.

Leggere una curva di easing

Transition o @keyframes?

Animare da e verso display: none

Transition e @keyframes a confronto

Quando usare l'una o l'altra

Quanto costa animare ogni proprietà

Lavoro di rendering per frame (regola generale, varia secondo il browser)

Una rete di sicurezza per il reduced motion

Mantiene i cambi di stato ma elimina lo spostamento. Mettila verso la fine del foglio di stile.

Dissolvenza in entrata e uscita di un popover con @starting-style

Un miglioramento per i browser che supportano allow-discrete e @starting-style. Gli altri mostrano e nascondono all'istante.

20 micro-interazioni da copiare

Passa il mouse o porta il focus su ogni risultato per vederlo in azione. Ogni snippet termina con una regola per il reduced motion.

Card sollevata

Solleva una card e rende più profonda la sua ombra.

Pulsante che cresce

Un leggero ingrandimento all'hover e una pressione al clic.

Sottolineatura scorrevole

La linea cresce da sinistra usando la dimensione dello sfondo.

Riempimento di colore

Colore di sfondo e del testo si scambiano insieme.

Spinta della freccia

L'icona si sposta mentre l'etichetta resta ferma.

Rotazione dell'icona

Un più diventa una croce.

Dissolvenza dell'anello di focus

L'offset del contorno si anima per chi usa la tastiera.

Zoom dell'immagine nella cornice

L'immagine si ingrandisce ma la cornice la ritaglia.

Didascalia che appare

La didascalia sale dal bordo inferiore.

Bagliore morbido

Un'ombra colorata appare in dissolvenza.

Leggera inclinazione

Pochi gradi di rotazione fanno sembrare uno sticker appoggiato.

Bordo disegnato

Il colore del bordo passa dal grigio al blu del brand.

Attenua gli altri

Passare su un elemento attenua quelli accanto.

Riflesso che scorre

Una banda di luce attraversa l'elemento all'hover.

Cursore dello switch

Una checkbox con lo stile di uno switch e un cursore scorrevole.

Chevron della fisarmonica

L'indicatore ruota quando un elemento details si apre.

Punto pulsante (keyframes)

Un punto di stato in loop costruito con @keyframes.

Spinner (keyframes)

Il timing lineare mantiene costante la rotazione.

Dissolvenza verso l'alto al caricamento (keyframes)

fill-mode both lo tiene nascosto durante il ritardo.

Scossa di errore (keyframes)

Una breve scossa orizzontale che qui parte una volta all'hover.

Curva di easing cubic-bezier({values})

Playground delle transition

Riproduci avanti

Riproduci indietro

Il tuo dispositivo chiede movimento ridotto, quindi l'anteprima salta invece di muoversi.

Proprietà da animare

Durata: {n}ms

Ritardo: {n}ms

Preset di easing

Copia CSS

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito