Esta propiedad define la forma en la que se llevará a cabo la animación, simplemente modifica el ritmo en el que esta se ejecutará, es decir dependiendo de su valor puede que el ritmo de la animación aumente o disminuya en algún punto de esta, sus valores posibles son:
-
Linear: La animación se desarrolla siempre a la misma velocidad
-
Ease: La animación empieza rápido y su velocidad disminuye a medida que termina
Nota: Este se trata del valor por defecto de la propiedad
-
Ease-in: Este valor es el opuesto de ease, la animación empieza despacio y termina rápido
-
Ease-out: Este valor se asemeja mucho a ease pero no llega a alcanzar tanta velocidad, acelera y frena más lentamente
-
Ease-in-out: La animación empieza despacio, acelera y luego termina despacio
Nota: Esta propiedad no modifica el tiempo de duración de la animación, eso es un rol exclusivo de la propiedad animation-duration
Cubic-bezier
Se trata de un valor especial que puede adoptar esta propiedad, su función consiste en utilizar las coordenadas de un cubic-bezier para definir el movimiento y la velocidad que se aplicará en la animación, ya que el cubic-bezier se basa en coordenadas como las de un mapa cartesiano, para cada coordenada se necesitan dos datos, un valor del eje X y uno del eje Y.
Gráfica de un Cubic-bezier
Código
La línea que conecta las dos coordenadas representa el desarrollo de la animación mientras que los valores del eje X y el eje Y representan la cantidad de movimiento que se realizará en ese respectivo eje en ese momento.
Es perfectamente posible el aplicar los valores de las coordenadas manualmente, sin embargo no es algo recomendable, ya que a la hora de definir adecuadamente el movimiento de la animación, es de gran ayuda apoyarse en una gráfica cubic-bezier, para lo cual es mejor recurrir a un generador cubic-bezier, ya que estos se encuentran a plena disposición en internet, y permiten interactuar con la gráfica a medida que se modifican los valores, en este enlace se encuentra un buen generador cubic-bezier.
En las herramientas de desarrollador de Google también se encuentra un generador cubic-bezier, para acceder a este es necesario dar "clic derecho", seguido se ingresa en "Inspeccionar elemento", y se procede a buscar los estilos CSS de la página, en el recuadro que permite añadir estilos ingresamos "animation-timing-function: cubic-bezier(.17,.67,.83,.67)" para aplicar la propiedad con un valor de ejemplo, junto al valor "cubic-bezier" aparecerá un recuadro al clickearlo se extiende el generador cubic-bezier que nos permite modificar los valores de las coordenadas al emplearlo.
Aplicando este recurso a las animaciones se pueden lograr movimientos más realistas o de rebote fácilmente, incluso existen librerías completas enfocadas a este recurso.