Editor cubic-bezier
Crea curve di easing CSS con un editor cubic-bezier trascinabile, confrontale con linear in un'animazione dal vivo e copia cubic-bezier() o linear().
Trascina le due maniglie (P1 e P2). Il tempo scorre da sinistra a destra, l'avanzamento dal basso verso l'alto; le maniglie possono andare sopra 1 o sotto 0 per un rimbalzo. Con una maniglia selezionata, usa i tasti freccia (Maiusc per 0,1).
Anteprima dell'animazione
L'animazione è in pausa perché il tuo sistema chiede di ridurre il movimento. Premi Avvia per eseguirla comunque.
La stessa curva campionata come easing CSS linear() (Chrome 113+, Firefox 112+, Safari 17.2+). Più punti seguono la curva più fedelmente.
Come usare l’editor cubic-bezier
- Trascina le due maniglie sul grafico. P1 (il primo punto di controllo) modella l’inizio del movimento, P2 la fine. Il tempo scorre da sinistra a destra e l’avanzamento dal basso verso l’alto.
- Oppure scrivi un valore in Valore cubic-bezier(): un
cubic-bezier(0.4, 0, 0.2, 1)completo, quattro numeri o una parola chiave comeease-in-out. I campi x1, y1, x2 e y2 modificano una coordinata alla volta. - Parti dal menu Modelli (parole chiave CSS, le famiglie da Sine a Back e le curve di Material Design) o dai pulsanti delle parole chiave. Quando la tua curva coincide con un modello, il suo nome compare accanto ai pulsanti.
- Osserva l’Anteprima dell’animazione: il punto su La tua curva e quello su linear percorrono la stessa distanza nella stessa Durata. Usa Pausa/Avvia e Ricomincia per confrontarli.
- Copia il risultato da Funzione di temporizzazione CSS, oppure copia l’Approssimazione linear() scegliendone il numero di Segmenti.
Da tastiera: seleziona una maniglia e usa i tasti freccia per spostarla di 0,01, o di 0,1 con Maiusc.
Se il tuo sistema è impostato per ridurre il movimento, l’animazione parte in pausa. Premi Avvia se vuoi eseguirla comunque.
Cosa significa cubic-bezier()
Una funzione di easing CSS associa il tempo trascorso di una transizione (da 0 a 1) al suo avanzamento (da 0 a 1). cubic-bezier(x1, y1, x2, y2) descrive questa corrispondenza con una curva di Bézier cubica che parte da (0, 0), arriva a (1, 1) ed è attirata da due punti di controllo, P1 = (x1, y1) e P2 = (x2, y2).
- I valori x sono tempi e devono restare tra 0 e 1, altrimenti la funzione non sarebbe una curva di temporizzazione valida. L’editor li mantiene nell’intervallo.
- I valori y sono l’avanzamento e possono scendere sotto 0 o superare 1. Una y sopra 1 fa oltrepassare all’animazione il suo obiettivo per poi tornare indietro, come le curve Back; sotto 0 si muove prima all’indietro.
- Una pendenza ripida significa movimento veloce, una pendenza piatta movimento lento.
ease-outparte veloce e finisce lento, il che risulta naturale per gli elementi che entrano sullo schermo.ease-infa il contrario ed è adatto agli elementi che escono.
Le parole chiave CSS sono scorciatoie: ease = cubic-bezier(0.25, 0.1, 0.25, 1), ease-in = (0.42, 0, 1, 1), ease-out = (0, 0, 0.58, 1), ease-in-out = (0.42, 0, 0.58, 1) e linear = (0, 0, 1, 1).
L’approssimazione linear()
La più recente funzione linear() elenca valori di avanzamento a intervalli di tempo regolari, per esempio linear(0, 0.25, 0.5, 0.75, 1), e li unisce con segmenti retti. Lo strumento campiona la tua curva (risolve la Bézier per ogni istante) e scrive quei valori con tre decimali. Con 20–40 segmenti il risultato è visivamente identico alla curva. Il vero vantaggio di linear() riguarda le curve che una Bézier non può disegnare, come rimbalzi e molle, ma ti permette anche di usare un’unica sintassi. Funziona in Chrome ed Edge 113+, Firefox 112+ e Safari 17.2+, quindi tieni il valore cubic-bezier() come ripiego.
Domande frequenti
Dove si usa questo valore?
In transition-timing-function, animation-timing-function o nella forma abbreviata: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. La Web Animations API lo accetta come easing.
Quali durate sono consigliate?
I piccoli cambiamenti dell’interfaccia durano di solito da 150 a 300 ms; i grandi spostamenti sullo schermo da 300 a 500 ms. Le animazioni più lunghe sembrano subito lente.
Perché non posso trascinare una maniglia oltre il bordo sinistro o destro?
Perché x è il tempo, e il tempo non può tornare indietro: il CSS rifiuta i valori di x fuori dall’intervallo 0–1.
Quali curve usa Material Design?
La classica curva standard è cubic-bezier(0.4, 0, 0.2, 1), con le varianti decelerate, accelerate e sharp. Material 3 aggiunge le curve emphasized; sono tutte nel menu Modelli.
Come gestisco la riduzione del movimento?
Rispetta @media (prefers-reduced-motion: reduce) nel tuo CSS: accorcia o elimina i grandi spostamenti e mantieni solo semplici dissolvenze.
Strumenti correlati
- Generatore di box-shadow Crea ombre CSS box-shadow a più livelli con anteprima dal vivo. Regola spostamento, sfocatura, espansione, colore, opacità e inset, poi copia il codice.
- Generatore Flexbox e Grid Crea layout flexbox e CSS grid in modo visivo. Imposta le proprietà di contenitore ed elementi, dai un nome alle aree e copia il codice CSS e HTML.
- Generatore di gradienti CSS Crea gradienti CSS lineari, radiali e conici con anteprima dal vivo. Aggiungi e trascina i punti di colore, imposta l'angolo e copia il codice CSS.