Animaciones en Tailwind: clases integradas y keyframes propios

Guía de animaciones en Tailwind

Animaciones en Tailwind: clases integradas y keyframes propios | We.Inc

Mira animate-spin, ping, pulse y bounce en acción con su CSS exacto y luego añade keyframes propios en Tailwind v4 con @theme, usando un generador de keyframes y consejos sobre movimiento reducido.

Tailwind incluye cuatro animaciones listas: animate-spin para indicadores de carga, animate-ping para puntos de notificación, animate-pulse para pantallas esqueleto y animate-bounce para invitar a desplazarse, además de animate-none para detenerlas. En v4 añades las tuyas declarando una variable --animate-name y sus @keyframes dentro de @theme, lo que crea una clase animate-name.

Utilidades de animación integradas en Tailwind v4

Todas las animaciones integradas de abajo están funcionando en vivo, junto a los keyframes que Tailwind genera para ellas. Después crea una propia: elige el movimiento, la duración y el número de repeticiones, y copia un bloque @theme listo para Tailwind v4, o la configuración equivalente para proyectos antiguos en v3.

Preguntas frecuentes

¿Cómo añado una animación personalizada en Tailwind v4?

Dentro de @theme en tu archivo CSS principal, declara --animate-wiggle: wiggle 1s ease-in-out infinite; y pon la regla @keyframes wiggle en el mismo bloque @theme. Tailwind genera entonces una clase animate-wiggle que puedes usar en cualquier parte.

¿Dónde quedaron los keyframes de tailwind.config.js en v4?

v4 se configura en CSS, así que theme.extend.keyframes y theme.extend.animation pasan a ser @keyframes y variables --animate-* dentro de @theme. Una configuración en JavaScript sigue funcionando si la cargas con la directiva @config, lo que ayuda durante una migración.

¿Cómo hago que una animación se ejecute una sola vez?

Quita infinite del valor y añade forwards si el elemento debe quedarse en el último fotograma, por ejemplo --animate-fade-in: fade-in 0.3s ease-out forwards. Para un caso puntual también puedes escribir animate-[fade-in_0.3s_ease-out_forwards].

¿Respeta Tailwind automáticamente la configuración de movimiento reducido?

No. Las variantes motion-safe: y motion-reduce: corresponden a la media query prefers-reduced-motion, pero tienes que aplicarlas tú. Un patrón habitual es motion-safe:animate-bounce, que solo anima para quienes no han pedido movimiento reducido.

Para qué sirve cada animación integrada

Keyframes propios en v4

Movimiento y accesibilidad

El CSS detrás de las clases integradas

Keyframes que genera Tailwind v4

Cada clase animate-* asigna a animation una variable del tema; estos son los valores y keyframes por defecto.

Animaciones personalizadas en v4 y v3

Tailwind v4: @theme en tu CSS

Esto crea animate-wiggle y animate-fade-up. Úsalas como nombres de clase de inmediato.

La configuración antigua en JavaScript, para proyectos que aún no se han pasado a v4.

Usarlas en el marcado

Valores arbitrarios, una referencia a una variable y motion-safe para que el movimiento respete el ajuste del sistema.

Keyframes propios funcionando en vivo

Wiggle, fade up y una tarjeta esqueleto

Equivalentes en CSS puro de las clases personalizadas de arriba, para que puedas editar la duración y ver cómo cambia.

Las animaciones integradas, en vivo

Cada vista previa usa la clase real de Tailwind. Activa la vista previa de movimiento reducido para ver motion-safe en acción.

Vista previa de movimiento reducido: activada

Vista previa de movimiento reducido: desactivada

Generador de keyframes

Elige movimiento, duración, easing y número de repeticiones, y copia el bloque @theme para Tailwind v4.

Movimiento

Duración: {n}ms

Easing

Repetición

Repetir

CSS para Tailwind v4

Copiar CSS

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio