Animaciones
Las transiciones como hemos visto es una forma de suavizar un cambio, las animaciones se busca lo mismo pero permitiendo añadir más estados. Para crear animaciones necesitamos hacer uso de la propiedad animation y definir con la regla @keyframes de la animación y sus estados.
Como transition hay una propiedad que engloba todas las propiedades de animation y esta es: animation: <name><duration><timing-function><delay><interaction-count><direction><fill-mode><play-state>. Veamos cada una de ellas poco a poco.
animation-name
Nombre de la animación a aplicar para uno o más @keyframe(o none en el caso de no querer aplicar ninguna animación). El nombre de la animación debemos ponerlo en kebab-case, es decir, primer carácter una minúscula y los espacios serán guiones.
animation-duration
Esta propiedad nos permite establecer la duración de una animación. Es importante indicarle las unidades (segundos o milisegundo).
animation-timing-function
animation-delay
Esta propiedad nos permite establecer el retardo con el que empezará la animación
animation-interation-count
Con esta propiedad podemos indicar el número de veces que queremos que se repita una determinada animación, este valor puede ser un número o infinite si queremos que se repita continuamente.
animation-direction
Con esta propiedad podemos poner el orden en el que se van a producir los fotogramas. Los valores que puede tener esta propiedad son: normal (desde el primero al último), reverse (del último al primero), alternate (en interaciones par se reproducen normal, en impares como reverse), alternate-reverse (en interaciones par se reproducen como reverse, en impares como normal)
animation-fill-mode
La propiedad animation-fill-mode nos permite establecer una animación antes y después de acabar (salvo si está marcada como infinite). Con esto podemos establecer qué debe hacer la animación cuando no se está reproduciendo. Los valores que puede tomar son: none, backwards (la animación debe tener aplicados los estilos del fotograma inicial antes de empezar), forwards (la animación debe tener los estilos del fotograma aplicados al final), both(se aplica tanto backwards como forwards).
animation-play-state
Con esta propiedad podemos decirle a la animación que se pause (paused) o que se reproduzca (running). Esta propiedad tiene sentido si se combina con algo de JS.
De la misma forma que con las transiciones, podemos tener animaciones múltiples o incluso animaciones en cascada.