Editor de cubic-bezier CSS
Dissenya corbes d'easing CSS amb un editor cubic-bezier arrossegable, compara-les amb linear en una animació i copia cubic-bezier() o una versió linear().
Arrossega els dos tiradors (P1 i P2). El temps va d'esquerra a dreta i el progrés de baix a dalt; els tiradors poden passar de 1 o baixar de 0 per aconseguir un rebot. Amb un tirador seleccionat, fes servir les tecles de fletxa (Maj per a 0,1).
Previsualització de l'animació
L'animació està aturada perquè el teu sistema demana reduir el moviment. Prem Reprodueix per executar-la igualment.
La mateixa corba mostrejada com a easing linear() de CSS (Chrome 113+, Firefox 112+, Safari 17.2+). Com més punts, més s'ajusta a la corba.
Com utilitzar l’editor de cubic-bezier
- Arrossega els dos tiradors del gràfic. P1 (el primer punt de control) dona forma a l’inici del moviment, i P2 al final. El temps va d’esquerra a dreta i el progrés de baix a dalt.
- O bé escriu un valor a Valor de cubic-bezier(): un
cubic-bezier(0.4, 0, 0.2, 1)complet, quatre nombres, o una paraula clau comease-in-out. Els camps x1, y1, x2 i y2 editen una coordenada cada vegada. - Comença pel menú Predefinits (paraules clau CSS, les famílies de sine a back i les corbes de Material Design) o pels botons de paraules clau. Quan la teva corba coincideix amb un predefinit, el seu nom es mostra al costat dels botons.
- Observa la Previsualització de l’animació: el punt de La teva corba i el de linear recorren la mateixa distància amb la mateixa Durada. Fes servir Atura/Reprodueix i Reinicia per comparar-los.
- Copia el resultat de Funció de temps CSS, o copia l’Aproximació amb linear() i tria-ne el nombre de Segments.
Teclat: posa el focus en un tirador i fes servir les tecles de fletxa per moure’l 0,01, o 0,1 amb Maj.
Si el teu sistema està configurat per reduir el moviment, l’animació comença aturada. Prem Reprodueix si vols executar-la igualment.
Què vol dir cubic-bezier()
Una funció d’easing de CSS associa el temps transcorregut d’una transició (de 0 a 1) amb el seu progrés (de 0 a 1). cubic-bezier(x1, y1, x2, y2) descriu aquesta associació amb una corba de Bézier cúbica que comença a (0, 0), acaba a (1, 1) i és estirada per dos punts de control, P1 = (x1, y1) i P2 = (x2, y2).
- Els valors x són temps i han de quedar entre 0 i 1, altrament la funció no seria una corba de temps vàlida. L’editor els manté dins de l’interval.
- Els valors y són progrés i poden baixar de 0 o superar 1. Una y superior a 1 fa que l’animació passi de l’objectiu i torni enrere, com les corbes Back; per sota de 0, primer es mou cap enrere.
- Un pendent pronunciat vol dir moviment ràpid, i un pendent pla, moviment lent.
ease-outcomença ràpid i acaba lent, cosa que resulta natural per als elements que entren a la pantalla.ease-infa el contrari i va bé per als elements que en surten.
Les paraules clau de CSS són dreceres: 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) i linear = (0, 0, 1, 1).
L’aproximació amb linear()
La funció més nova linear() llista valors de progrés a intervals de temps iguals, per exemple linear(0, 0.25, 0.5, 0.75, 1), i els uneix amb línies rectes. L’eina mostreja la teva corba (resol la corba de Bézier per a cada pas de temps) i escriu aquests valors amb tres decimals. Amb 20 a 40 segments, el resultat és visualment idèntic a la corba. El veritable avantatge de linear() és per a corbes que una corba de Bézier no pot dibuixar, com els rebots i les molles, però també permet compartir una única sintaxi. Funciona a Chrome i Edge 113+, Firefox 112+ i Safari 17.2+, així que conserva el valor cubic-bezier() com a alternativa.
Preguntes freqüents
On faig servir el valor?
A transition-timing-function, animation-timing-function, o a la forma abreujada: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. L’API Web Animations l’accepta com a easing.
Quines són bones durades?
Els canvis petits d’interfície solen durar entre 150 i 300 ms; els moviments grans per la pantalla, entre 300 i 500 ms. Les animacions més llargues aviat semblen lentes.
Per què no puc arrossegar un tirador més enllà de la vora esquerra o dreta?
Perquè x és el temps, i el temps no pot anar cap enrere: CSS rebutja els valors x fora de 0–1.
Quines corbes fa servir Material Design?
La corba estàndard clàssica és cubic-bezier(0.4, 0, 0.2, 1), amb variants de desacceleració, acceleració i brusques. Material 3 hi afegeix les corbes emfatitzades; totes són al menú Predefinits.
Com he de tractar el moviment reduït?
Respecta @media (prefers-reduced-motion: reduce) al teu CSS: escurça o elimina els moviments grans i conserva els esvaïments simples.
Eines relacionades
- Generador d'ombres CSS (box-shadow) Dissenya ombres CSS box-shadow en capes amb previsualització en directe. Ajusta desplaçament, desenfocament i color, prova el neumorfisme i copia el codi.
- Generador de Flexbox i CSS Grid Construeix maquetacions flexbox i CSS grid de manera visual. Defineix propietats, anomena àrees, mira el resultat en directe i copia el CSS i l'HTML.
- Generador de degradats CSS Crea degradats CSS lineals, radials i cònics amb previsualització en directe. Afegeix parades de color, ajusta l'angle i copia el codi CSS amb un clic.