Utilidades de transición
Active las transiciones CSS con transition-*, y elija qué propiedades se animan con transition-colors, transition-transform y transition-all.
Utilidades de transición es una lección gratuita de Tailwind CSS Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Tailwind CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Tailwind CSS Academy incluye 4 lecciones en total.
Por qué son importantes las transiciones CSS
Las transiciones CSS hacen que los cambios de estado sean fluidos y parezcan intencionados en lugar de bruscos. Cuando un botón cambia de color de fondo al pasar el cursor, una barra lateral se desliza o un campo de entrada recibe un anillo de enfoque, las transiciones comunican a los usuarios que algo ha ocurrido y guían su atención. Las utilidades de transición de Tailwind permiten añadir estas animaciones con una sola clase, sin necesidad de CSS personalizado para los casos de uso más habituales.
La utilidad transition
La utilidad base transition habilita transiciones CSS para las propiedades que se animan con más frecuencia: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform y filter. Normalmente basta con añadir transition a un botón para animar suavemente los cambios de color al pasar el cursor.
<!-- Simple hover transition on a button -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition">
Hover Me
</button>
<!-- The transition class enables smooth color changes -->
<!-- Without it, the color snaps instantly on hover -->
<!-- With it, the background color animates over 150ms (Tailwind default) -->Propiedades de transición específicas
Utilice utilidades de transición específicas para animar solo determinadas propiedades. Esto ofrece un mejor rendimiento que transition-all, porque el navegador no necesita recalcular todas las propiedades que podrían animarse en cada fotograma. Tailwind proporciona transition-colors, transition-opacity, transition-shadow, transition-transform y transition-all para distintas necesidades.
<!-- Only animate colors -->
<button class="bg-blue-600 hover:bg-blue-700 text-white transition-colors">
Color Transition
</button>
<!-- Only animate transform (GPU accelerated) -->
<div class="hover:scale-105 transition-transform cursor-pointer">
Scale on hover
</div>
<!-- Only animate opacity -->
<div class="opacity-100 hover:opacity-75 transition-opacity">
Fade on hover
</div>
<!-- Animate shadow (depth change) -->
<div class="shadow hover:shadow-lg transition-shadow rounded-xl p-4">
Shadow depth change
</div>transition-all frente a propiedades específicas
transition-all realiza la transición de todas las propiedades CSS que se pueden animar simultáneamente. Aunque resulta práctico, puede provocar comportamientos inesperados; por ejemplo, puede animar propiedades de diseño como height o width cuando solo quería cambiar colores. También ofrece un menor rendimiento porque el navegador controla todas las propiedades. Utilice utilidades de transición específicas siempre que sea posible y recurra a transition-all solo cuando realmente necesite animar juntas varias propiedades no relacionadas.
<!-- transition-all: animates EVERYTHING that changes -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-all">
All properties animate (colors, transforms, borders...)
</div>
<!-- More precise: only animate what you intend -->
<div class="bg-gray-100 hover:bg-blue-50 hover:scale-102 transition-colors transition-transform">
Only colors and transforms animate
</div>Combinar transition con variantes de estado
Las utilidades de transición funcionan habilitando la propiedad CSS transition. Las variantes de estado como hover:, focus: y group-hover: proporcionan los estados inicial y final entre los que se ejecuta la transición. Coloque siempre la clase transition en el elemento base (no dentro de la variante) para que se aplique en ambas direcciones: la transición se ejecuta tanto al entrar como al salir del estado.
<!-- Transition enables smooth enter AND exit -->
<a class="text-gray-600 hover:text-blue-600 transition-colors duration-200"
href="#">
Animated link — hover to see color change both ways
</a>
<!-- Card with multiple transitions -->
<div class="bg-white hover:bg-blue-50
shadow-sm hover:shadow-md
border border-gray-200 hover:border-blue-200
transition-all duration-200 rounded-xl p-6 cursor-pointer">
Interactive card
</div>Animar la opacidad y la visibilidad
Para hacer que los elementos aparezcan y desaparezcan gradualmente, debe realizar una transición de opacity y gestionar también visibility o display. Las transiciones CSS no pueden animar desde ni hasta display: none, por lo que puede utilizar opacity junto con pointer-events-none para efectos sencillos de aparición gradual. Para los elementos que deben desaparecer realmente (y salir del orden de tabulación), combine las transiciones de opacidad con la alternancia de clases mediante JavaScript.
<!-- Fade an element using opacity + pointer-events -->
<div id="tooltip"
class="opacity-0 pointer-events-none
group-hover:opacity-100 group-hover:pointer-events-auto
transition-opacity duration-200
bg-gray-900 text-white text-xs px-2 py-1 rounded">
Tooltip content
</div>
<!-- JavaScript fade with class toggle -->
<!-- Remove: classList.add('opacity-0', 'pointer-events-none') -->
<!-- Show: classList.remove('opacity-0', 'pointer-events-none') -->Transiciones de transformaciones
Las transiciones de transformaciones son especialmente fluidas porque se ejecutan en la GPU en lugar de provocar nuevos cálculos de diseño. Las utilidades scale-*, rotate-*, translate-* y skew-* de Tailwind se animan correctamente con transition-transform. Los efectos de escala en tarjetas y botones, los efectos de rotación en iconos y los efectos de deslizamiento en paneles utilizan este enfoque para ofrecer el mejor rendimiento.
<!-- Subtle scale effect on card hover -->
<div class="hover:scale-105 transition-transform duration-200 cursor-pointer bg-white rounded-xl p-6 shadow">
Card that scales up on hover
</div>
<!-- Rotating icon -->
<button class="group p-2">
<svg class="w-5 h-5 group-hover:rotate-180 transition-transform duration-300">
<!-- chevron icon -->
</svg>
</button>
<!-- Slide from left with translateX -->
<div class="-translate-x-full open:translate-x-0 transition-transform duration-300">
Sidebar panel
</div>Accesibilidad y reducción del movimiento
Algunos usuarios sufren mareos o convulsiones debido a las animaciones y configuran su sistema operativo para Reducir el movimiento. Tailwind proporciona las variantes motion-reduce: y motion-safe:, que se activan según la consulta de medios prefers-reduced-motion del usuario. Utilice motion-safe: para aplicar animaciones solo cuando el usuario no haya solicitado reducir el movimiento, de modo que sus transiciones sean accesibles de forma predeterminada.
<!-- Only animate when user is OK with motion -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg
motion-safe:transition-colors motion-safe:duration-200">
Accessible Button
</button>
<!-- Remove transitions entirely for reduced-motion users -->
<div class="hover:scale-105 motion-reduce:transform-none
motion-safe:transition-transform motion-safe:duration-200">
Accessible card hover
</div>Transiciones en los estados de enfoque
Las transiciones de enfoque son especialmente importantes para la navegación con teclado. Cuando un usuario se desplaza con el tabulador hasta un campo de entrada o un botón, el anillo de enfoque debería aparecer suavemente en lugar de mostrarse de golpe. Aplique transition a todos los elementos interactivos para que la transición del anillo de enfoque resulte tan cuidada como la transición al pasar el cursor. Incluya focus:ring-* y focus:ring-offset-* junto con una transición para ofrecer la mejor experiencia con el teclado.
<input
type="text"
class="
w-full px-4 py-2 rounded-lg
border border-gray-300
text-gray-900 placeholder:text-gray-400
ring-0
focus:ring-2 focus:ring-blue-500 focus:border-transparent focus:outline-none
transition duration-150
"
placeholder="Smooth focus ring transition"
/>Múltiples propiedades de transición
Puede combinar varias utilidades de transición específicas en un mismo elemento para animar únicamente un conjunto preciso de propiedades. Tailwind las combina mediante la abreviatura CSS transition-property. Apilar transition-colors y transition-shadow en el mismo elemento hace que se animen tanto los colores como las sombras, mientras que otras propiedades, como las transformaciones, cambian de forma instantánea.
<!-- Animate colors AND shadows, but not transforms -->
<div class="
bg-white hover:bg-gray-50
shadow hover:shadow-md
scale-100 hover:scale-105
transition-colors transition-shadow
duration-200 rounded-xl p-6
">
Colors and shadows animate smoothly;
scale change happens instantly (no transition-transform)
</div>Transiciones en la práctica: ejemplo completo
A continuación se muestra un enlace de navegación real con todas las transiciones cuidadas: el fondo aparece gradualmente al pasar el cursor, el color del texto cambia al mismo tiempo, el subrayado crece de izquierda a derecha mediante una transformación de escala y los estados de enfoque coinciden exactamente con el estilo al pasar el cursor. Cada interacción resulta intencionada y fluida sin una sola línea de CSS personalizado.
<a
href="/features"
class="
relative inline-block
text-gray-600 hover:text-blue-600
font-medium text-sm
pb-0.5
transition-colors duration-150
focus:outline-none focus:text-blue-600
group
"
>
Features
<!-- Animated underline -->
<span class="
absolute bottom-0 left-0 w-full h-0.5 bg-blue-600
scale-x-0 group-hover:scale-x-100
transition-transform duration-200 origin-left
"></span>
</a>Comprobación rápida
Compruebe su comprensión de las utilidades de transición de Tailwind.
Resumen de la lección
En esta lección ha aprendido que la utilidad base transition permite animar suavemente propiedades habituales; que las utilidades de transición específicas, como transition-colors y transition-transform, ofrecen un mejor rendimiento que transition-all; y que la variante motion-safe: garantiza que las animaciones solo se apliquen cuando el usuario no haya solicitado reducir el movimiento. A continuación controlaremos la duración de las transiciones y las funciones de temporización.
Aprende HTML con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Utilidades de transición» es gratis?
Sí — el texto completo de «Utilidades de transición» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Tailwind CSS Academy, actualiza a CoddyKit PRO. El curso de Tailwind CSS Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Utilidades de transición»?
Active las transiciones CSS con transition-*, y elija qué propiedades se animan con transition-colors, transition-transform y transition-all. Practicas Tailwind CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Tailwind CSS Academy?
No se requiere experiencia previa. Tailwind CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Utilidades de transición»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Tailwind CSS Academy?
Sí. Cada lección de Tailwind CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Utilidades de transición
- Duración y aceleración
- Animaciones de fotogramas clave integradas
- Animaciones personalizadas en la configuración