Animaciones en CSS
Las animaciones en CSS permiten agregar movimiento y dinamismo a los elementos de una página web, mejorando la experiencia del usuario. Con CSS, podemos definir cómo un elemento cambia de un estilo a otro a lo largo del tiempo. Hay dos formas principales de animar en CSS: transiciones y animaciones con keyframes.
Transiciones
Una transición define cómo cambia una propiedad CSS cuando un elemento pasa de un estado a otro. Se utiliza para animar cambios de estilo, como la posición, el color, la opacidad, etc.
.elemento {
transition: propiedad tiempo_funcion_timing retraso;
}
propiedad: La propiedad CSS que quieres animar, como background-color, transform, etc.
tiempo: El tiempo que tarda la transición en completarse, como 0.5s o 2s.
función timing: Define cómo se desarrolla la transición a lo largo del tiempo (ease, linear, ease-in, ease-out, ease-in-out).
retraso (opcional): El tiempo que espera antes de iniciar la transición.
Ejemplo
En este ejemplo, el color de fondo del botón cambiará suavemente de azul a rojo cuando se coloque el cursor sobre él.
.boton {
background-color: blue;
transition: background-color 0.3s ease;
}
.boton:hover {
background-color: red;
}
Keyframes
Las animaciones con keyframes permiten más control y complejidad que las transiciones. Los @keyframes definen una secuencia de estilos que un elemento seguirá durante la animación.
@keyframes nombre_animacion {
0% { propiedad: valor_inicial; }
100% { propiedad: valor_final; }
}
.elemento {
animation: nombre_animacion duración función_timing retraso número_iteraciones dirección relleno;
}
nombre_animacion: El nombre de la animación definida por @keyframes.
duración: El tiempo que dura la animación (por ejemplo, 2s).
función timing: Similar a las transiciones (ease, linear, etc.).
retraso: Tiempo antes de que comience la animación.
número_iteraciones: Cuántas veces se repite la animación (infinite para que se repita indefinidamente).
dirección: Puede ser normal, reverse, alternate, o alternate-reverse.
relleno (fill-mode): Define cómo aplicar los estilos de la animación antes o después de la ejecución (none, forwards, backwards, both).
Ejemplo
En este ejemplo, un elemento se desvanece suavemente desde completamente invisible (opacity: 0) hasta completamente visible (opacity: 1) en 2 segundos.
@keyframes desvanecer {
0% { opacity: 0; }
100% { opacity: 1; }
}
.elemento {
animation: desvanecer 2s ease-in-out;
}
Last updated