Transition property en CSS: Guía para hacer transiciones en tu página web

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si alguna vez te has preguntado cómo lograr que los cambios en el diseño de tu página web sean más fluidos y atractivos, estás en el lugar correcto. Hoy queremos hablarte de la transition property en CSS, una herramienta con la que puedes animar cambios en las propiedades del estilo de tu sitio. Así que te contaremos qué es, cómo funciona, cuáles son sus elementos principales y cómo puedes aplicarla a tus proyectos. 

Transition property en CSS

¿Qué es la transition property en CSS?

La transition property en CSS, o propiedad de transición, es una forma de animar las transiciones entre dos estados de estilo, como cambiar el color de un botón al pasar el cursor sobre él o hacer que una imagen aumente de tamaño al hacer clic. Con esta propiedad, puedes definir qué propiedades del elemento se animarán, cuánto tiempo debe durar la transición, cómo será el comportamiento de la animación y si habrá algún tipo de retraso antes de comenzar.

En otras palabras, esta propiedad es esencial para añadir interactividad visual a tu sitio web sin necesidad de usar JavaScript, lo que ayuda a simplificar el código y optimizar el rendimiento de la página.

Elementos principales de la transition property

La transition property se compone de cuatro subpropiedades a partir de las cuales puedes definir el comportamiento de la transición. Veamos a continuación cuáles son:

transition-property

Esta subpropiedad es la encargada de especificar qué propiedades CSS van a ser animadas. Por ejemplo, puedes animar propiedades como background-color, width o opacity. En caso de que quieras animar todas las propiedades cambiadas, puedes usar el valor all.

transition-property: background-color, width;

transition-duration

La subpropiedad transition-duration define cuánto tiempo durará la transición. Para esto, puedes usar segundos (s) o milisegundos (ms). Por ejemplo:

transition-duration: 2s, 1s;

En este caso, la animación de background-color durará 2 segundos y la de width 1 segundo.

transition-timing-function

Esta es la subpropiedad que controla cómo se comportará la animación durante su duración. Por lo general, suele especificar los siguientes valores:

  • ease: Comienza lento, acelera y termina lento.
  • linear: La transición tiene una velocidad constante.
  • ease-in: Comienza lento y acelera.
  • ease-out: Comienza rápido y desacelera.
  • cubic-bezier(x1, y1, x2, y2): Define un comportamiento personalizado.
transition-timing-function: ease-in-out;

transition-delay

Por último, la subpropiedad transition-delay es la encargada de establecer un tiempo de espera antes de que la transición comience. Al igual que transition-duration, puedes usar segundos o milisegundos para indicar el tiempo previo a la transición.

transition-delay: 0.5s;

¿Cómo usar la transition property en CSS?

Para entender mejor cómo funciona, veamos un ejemplo práctico. Supongamos que quieres que un botón cambie de color y aumente su tamaño al pasar el cursor:

<!DOCTYPE html>
<html lang="en">
<head>
<style>
button {
background-color: #3498db;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
transition: background-color 0.5s ease, transform 0.3s ease-in-out;
}

button:hover {
background-color: #2ecc71;
transform: scale(1.1);
}
</style>
</head>
<body>
<button>Haz clic aquí</button>
</body>
</html>

En este caso, la propiedad background-color cambiará en 0.5 segundos con un efecto ease, mientas el tamaño del botón aumentará ligeramente (scale(1.1)) en 0.3 segundos con un efecto ease-in-out.

Pero, si quieres ir un paso más allá, puedes intentar combinar varias transiciones en un solo elemento, como en el siguiente ejemplo:

.card {
background-color: #ffffff;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transform: scale(1);
transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.card:hover {
background-color: #f9f9f9;
box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
transform: scale(1.05);
}

En este ejemplo, al pasar el cursor sobre una tarjeta (.card), cambian su color de fondo, la sombra y el tamaño, todo de manera fluida.

Ventajas de usar la transition property

Además de aportar dinamismo a tus diseños, la transition property en CSS puede mejorar también la experiencia general del usuario en tu página web. A continuación, te presentamos algunas de sus principales ventajas:

Mejora la experiencia del usuario

¿Has notado cómo un botón que cambia suavemente de color al pasar el cursor parece más profesional? Esto no es únicamente una cuestión de estética. En realidad, las animaciones hacen que la interacción con la página sea más intuitiva y fluida. En ese sentido, las transiciones ayudan a dirigir la atención del usuario, haciéndole sentir que está navegando en un entorno bien pensado y cuidado.

Mejora la eficiencia

Una de las principales ventajas de la transition property es que simplifica la animación de los elementos sin necesidad de escribir largas líneas de código en JavaScript. De esta manera, si necesitas cambios básicos como modificar el color de fondo o el tamaño de un botón, puedes hacerlo únicamente con CSS, lo que ahorra tiempo y te ayuda a mantener tu sitio más ligero.

Te da mayor control

Con la transition property tienes la posibilidad de personalizar cada aspecto de tus animaciones, como el tiempo que dura la transición o la forma en que debe comportarse. Por ejemplo, puedes establecer si debe comenzar lento, para luego acelerarse y después detenerse suavemente. Esta versatilidad te permite adaptarlas perfectamente al estilo y objetivo de tu sitio web.

¿Por qué utilizar la transition property?

Las transiciones no son solo “un toque bonito” en tu diseño, pues son también herramientas funcionales que pueden marcar la diferencia entre una web básica y una estética, profesional y agradable de usar. Por esto, dominar la transition property en CSS es muy importante si quieres diseñar una interfaz moderna y dinámica. Además de mejorar la estética de tus diseños, también te ayudará a mejorar la experiencia del usuario.

Si quieres aprender más sobre CSS y diseño web, te invitamos a unirte al Bootcamp de Desarrollo Web, un programa diseñado para dominar los principales lenguajes de programación y las tecnologías más demandadas en la actualidad. Conviértete en un experto del desarrollo web y empieza una nueva carrera en el sector IT, una de las áreas con mejores salarios y oportunidades laborales.

¡Empieza hoy una nueva vida!

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