Transition timing function en CSS: Cómo controlar el ritmo de tus transiciones

| Última modificación: 17 de diciembre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Quieres que tus transiciones en CSS tengan un toque más profesional? Para esto es importante que conozcas la transition timing function. Esta es la propiedad que define cómo cambia la velocidad de una animación mientras dura, lo que puede ayudarte a crear efectos más dinámicos y atractivos para los usuarios que visitan tu página web. Así que, en este artículo, te contaremos qué es la transition timing function, cómo funciona, y cómo puedes usarla para mejorar el diseño de tus páginas web. 

Transition timing function en CSS: Cómo controlar el ritmo de tus animaciones

¿Qué es la transition timing function en CSS?

La transition timing function es la propiedad que controla el ritmo de una transición. En otras palabras, determina si la animación será lineal, si debe acelerar o no, o incluso si tendrá un efecto más complejo como un rebote. Para esto, se suelen utilizar curvas de Bézier predefinidas o personalizadas, que dictan cómo debe comportarse el cambio de estilo.

Por ejemplo, si estás animando el color de fondo de un botón, puedes hacer que el cambio sea gradual y uniforme, o que comience rápido y termine lento, dependiendo de la función de tiempo que elijas.

¿Para qué sirve la transition timing function?

Esta propiedad tiene un objetivo claro: hacer que las transiciones sean más naturales y visualmente agradables. En lugar de tener cambios bruscos, te permite añadir un efecto de fluidez más agradable para la vista y que, por tanto, mejore la experiencia del usuario al navegar por la página. Veamos algunas de sus funciones más comunes:

  • Botones interactivos: Puedes darle más vida a los botones de tu sitio, haciendo que cambien de color o tamaño de manera suave cuando el usuario pase el cursor.
  • Sliders o galerías: Te permite controlar la forma en que se desplazan las imágenes para que el movimiento sea más atractivo.
  • Menús desplegables: Puedes hacer que los menús aparezcan con una animación que sea rápida, pero también agradable.

Elementos principales de la transition timing function

Para entender cómo usar esta propiedad, primero veamos sus funciones más comunes:

Funciones predefinidas

CSS te ofrece varias curvas de Bézier listas para usar. Algunas de las más populares son:

  • ease: Esta es la función más común, ya que es perfecta para estilizar transiciones genéricas. En este caso, la animación comienza lenta, acelera a la mitad y termina despacio. 
  • linear: Mantiene una velocidad constante durante toda la transición y es perfecta para aquellas animaciones que necesitan ser precisas.
  • ease-in: Empieza lenta y acelera al final, por lo que funciona muy bien para aquellos elementos que “entran en escena”.
  • ease-out: Contrario a la función anterior, esta comienza rápido y desacelera hacia el final. Por esto, es muy útil para animar salidas de elementos.
  • ease-in-out: Combina lo mejor de la función ease-in y ease-out, ya que empieza lenta, acelera a la mitad y termina despacio.

Funciones personalizadas

Si las opciones predefinidas no se ajustan a lo que necesitas, puedes crear tus propias curvas de Bézier utilizando la función cubic-bezier(). De esta manera, puedes ajustar manualmente los puntos de control para ajustar el ritmo de la animación.

Por ejemplo:

transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);

Sintaxis básica de la transition timing function

La sintaxis de esta propiedad es bastante sencilla y siempre va acompañada de otras propiedades como transition-duration y transition-property. Veamos el siguiente ejemplo:

button {
background-color: #ff6347;
transition: background-color 0.5s ease-in-out;
}

button:hover {
background-color: #4682b4;
}

En este caso, la transición dura 0.5 segundos y se usa la función de tiempo ease-in-out para hacerla más fluida, pero aplica solo al cambio del color de fondo.

Ahora, veamos un ejemplo diferente. Imagina que quieres animar un cuadro que cambia de tamaño y color al pasar el cursor:

.box {
width: 100px;
height: 100px;
background-color: #ff6347;
transition: all 1s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

.box:hover {
width: 150px;
height: 150px;
background-color: #4682b4;
}

Este código utiliza una curva personalizada para añadir un efecto de rebote que hace que la animación sea más divertida y dinámica.

Ventajas de usar transition timing function

Si todavía te preguntas por qué deberías incluir esta propiedad en tus herramientas de diseño, presta atención porque te daremos algunas razones:

Mejora la experiencia del usuario 

Imagina un botón que cambia de color o aumenta de tamaño al pasar el cursor: esta interacción visual no solo es atractiva, sino que también refuerza la funcionalidad del elemento. En ese sentido, las animaciones crean una experiencia más fluida, lo que aumenta la percepción de calidad y profesionalismo del diseño.

Es flexible

Con la propiedad transition timing function, puedes ajustar cada animación para que cuente una historia o se adapte al tono de tu diseño. Por ejemplo, si quieres que algo comience lento y termine rápido, puedes usar ease-in. En caso de que prefieras que la transición mantenga una velocidad constante, puedes elegir usar linear. Lo importante es que esta flexibilidad te permite experimentar y dar un toque de personalidad a tu proyecto.

Es fácil de implementar

Al usar la propiedad transition timing function en CSS, puedes integrar transiciones sin recurrir a librerías externas ni scripts complejos en JavaScript. Esto es una gran ventaja, pues no sólo reduce la carga en tu proyecto, sino que también mejora el rendimiento general de la página.

¿Por qué usar la propiedad transition timing function en CSS?

Usar la propiedad transition timing function es una forma sencilla y muy útil de estilizar las animaciones de tu página web, lo que le permitirá al usuario tener una interacción más fluida y, sin duda, mejorará su experiencia. Por esto, vale la pena que te animes a probarla en el diseño de tus páginas

Únete a nuestro Bootcamp de Desarrollo Web si quieres aprender más sobre CSS y diseño web. Nuestro curso está diseñado para que puedas aprender a manejar en poco tiempo los principales lenguajes de programación y empezar a trabajar en uno de los sectores con mayor demanda, salarios altos y mayor estabilidad de la actualidad.

¡Tu futuro está en la tecnología!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado