Transition duration en CSS: ¿Cómo controlar la duración de las transiciones?

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si alguna vez has querido hacer que tu página web sea más dinámica, probablemente hayas explorado las propiedades de transición en CSS. En esta ocasión, nos centraremos en una en particular: la transition duration. Esta propiedad es la clave para definir cuánto tiempo dura una animación entre dos estados. Pero no te preocupes si no sabes por dónde empezar, porque a continuación te explicaremos todo lo que necesitas saber.

Transition duration en CSS: ¿Cómo controlar la duración de las transiciones?

¿Qué es transition-duration en CSS?

La propiedad transition duration en CSS define el tiempo que toma una transición para completarse, desde su estado inicial hasta el estado final de una propiedad específica. Es decir, es la propiedad encargada de definir cuánto tiempo debe durar el cambio de estilo.

Por ejemplo, si tienes un botón que cambia de color al pasar el cursor, puedes usar transition duration para que el cambio sea suave y gradual en lugar de inmediato:

button {
background-color: #007BFF; /* Azul */
transition-duration: 0.5s; /* Medio segundo */
}

button:hover {
background-color: #0056b3; /* Azul más oscuro */
}

En este ejemplo, el color del botón tarda medio segundo en pasar del azul claro al azul oscuro.

¿Para qué sirve la transition duration?

Más allá de mejorar la parte estética de una página web, la propiedad transition duration puede tener un impacto significativo en la experiencia del usuario. Así que veamos con más detalle cuáles son sus principales usos:

  • Crear fluidez: Las transiciones suaves hacen que los cambios en la interfaz sean más suaves y agradables, lo mejora la experiencia de navegar por la página web.
  • Atraer la atención del usuario: Al añadir duración a una animación, puedes dirigir el foco del usuario hacia elementos importantes.
  • Optimizar la interacción: Establecer la duración de la animación ayuda a que los cambios sean intuitivos y fáciles de seguir, lo que es especialmente útil para interfaces complejas.

Sintaxis de transition duration

La sintaxis de transition duration es bastante sencilla, ya que se escribe en segundos (s) o milisegundos (ms), dependiendo de cuánto detalle necesites para ajustar la duración. Veamos un ejemplo:

/* Duración en segundos */
transition-duration: 1s;

/* Duración en milisegundos */
transition-duration: 500ms;

Además, puedes aplicar diferentes duraciones para distintas propiedades, separándolas con comas:

/* Diferentes tiempos para distintas propiedades */
transition-property: background-color, transform;
transition-duration: 0.5s, 1s;

En este caso, el color de fondo cambiará en 0.5 segundos, mientras que el tamaño o la posición (transform) lo hará en 1 segundo.

Elementos principales de transition duration

Cuando trabajas con transition-duration, hay cuatro elementos clave que debes considerar:

  1. Propiedades a animar: Debes combinarlo con la propiedad transition-property para definir qué cambios se animarán (por ejemplo, color, tamaño o posición).
  2. Duración personalizada: Puedes usar valores diferentes para cada transición dentro de un mismo selector.
  3. Unidad de medida: Siempre debes especificar si el tiempo es en segundos (s) o milisegundos (ms).
  4. Combinación con otras propiedades: Funciona mejor cuando se combina con transition-timing-function (control de la aceleración) y transition-delay (retraso antes de empezar).

Veamos a continuación un ejemplo de transición básica:

a {
color: #000;
transition: color 0.3s ease-in-out;
}

a:hover {
color: #ff0000;
}

Aquí, el enlace cambia suavemente de negro a rojo en 0.3 segundos cuando pasas el cursor.

Ahora, veamos un ejemplo donde se establecen diferentes duraciones para varias propiedades:

div {
width: 100px;
height: 100px;
background-color: #007BFF;
transition-property: width, background-color;
transition-duration: 1s, 0.5s;
}

div:hover {
width: 200px;
background-color: #FF5733;
}

En este caso, el cambio de tamaño tarda 1 segundo, mientras que el color tarda 0.5 segundos

Ventajas de la propiedad transition duration

Como hemos mencionado, la propiedad transition duration en CSS no solo es útil para crear animaciones estéticas y atractivas, sino que también puede marcar la diferencia en la experiencia de navegación y el rendimiento de tu página web. 

Mejora la experiencia del usuario

¿Alguna vez has navegado por un sitio donde todo cambia de golpe? Eso puede producir una sensación desagradable. Pero, al implementar la propiedad transition duration, las transiciones se sienten más naturales, lo que hace que los usuarios se adapten mejor a los cambios en la interfaz. Por ejemplo, al pasar de un color a otro o al ampliar un elemento, el ojo humano tiene tiempo para seguir el movimiento, haciendo que la navegación sea mucho más fluida e intuitiva.

Ahorra recursos

Para crear efectos básicos, como cambiar colores, tamaños o posiciones, no necesitas complicarte la vida con JavaScript. En su lugar, usar transition duration directamente en CSS es más ligero y eficiente, lo que ayuda a mantener un buen rendimiento en la página, especialmente en dispositivos con recursos limitados. De esta manera, menos código significa más rapidez.

Es flexible

Además de controlar el tiempo de una transición, esta propiedad permite combinarla con otras propiedades como transition-timing-function o transition-delay para ajustar cada detalle del comportamiento de las animaciones. Así, si quieres que algo tarde 0.3 segundos en moverse y 1 segundo en cambiar de color, puedes hacerlo sin problema.

¿Por qué usar la propiedad transition duration en CSS?

La propiedad transition duration es una herramienta sencilla, pero muy útil que te ayudará a darle vida a tu página web. Más allá de embellecer el diseño, te permite mejorar la interacción y la experiencia del usuario. Ahora que sabes cómo usarla, ¡es hora de ponerla en práctica! 

¿Quieres aprender más sobre CSS y diseño web? En nuestro Bootcamp de Desarrollo Web, podrás dominar en poco tiempo los principales lenguajes de programación y las tecnologías más demandadas en la actualidad. Empieza ahora una nueva carrera en un sector lleno de oportunidades, buenos salarios y con estabilidad laboral.

¡Una nueva vida te espera!

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