1. Transiciones y Animación
  2. animation

Transiciones y Animación

animation

Utilidades para animar elementos con animaciones CSS.

ClaseEstilos
animate-spin
animation: var(--animate-spin); /* rotar 1s linear infinito */ @keyframes spin { to { transform: rotate(360deg); } }
animate-ping
animation: var(--animate-ping); /* ping 1s cubic-bezier(0, 0, 0.2, 1) infinito */ @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } }
animate-pulse
animation: var(--animate-pulse); /* pulso 2s cubic-bezier(0.4, 0, 0.6, 1) infinito */ @keyframes pulse { 50% { opacity: 0.5; } }
animate-bounce
animation: var(--animate-bounce); /* rebote 1s infinito */ @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } }
animate-none
animation: none;
animate-(<custom-property>)
animation: var(<custom-property>);
animate-[<value>]
animation: <value>;

Ejemplos

Agregando una animación de giro

Usa la utilidad animate-spin para agregar una animación de giro lineal a elementos como indicadores de carga:

<button type="button" class="bg-indigo-500 ..." disabled>
<svg class="mr-3 size-5 animate-spin ..." viewBox="0 0 24 24">
<!-- ... -->
</svg>
Procesando…
</button>

Agregando una animación de ping

Usa la utilidad animate-ping para hacer que un elemento escale y se desvanezca como un ping de radar o una onda en el agua—útil para cosas como insignias de notificación:

<span class="relative flex size-3">
<span class="absolute inline-flex h-full w-full animate-ping rounded-full bg-sky-400 opacity-75"></span>
<span class="relative inline-flex size-3 rounded-full bg-sky-500"></span>
</span>

Agregando una animación de pulso

Usa la utilidad animate-pulse para hacer que un elemento se desvanezca suavemente—útil para cosas como skeleton loaders:

<div class="mx-auto w-full max-w-sm rounded-md border border-blue-300 p-4">
<div class="flex animate-pulse space-x-4">
<div class="size-10 rounded-full bg-gray-200"></div>
<div class="flex-1 space-y-6 py-1">
<div class="h-2 rounded bg-gray-200"></div>
<div class="space-y-3">
<div class="grid grid-cols-3 gap-4">
<div class="col-span-2 h-2 rounded bg-gray-200"></div>
<div class="col-span-1 h-2 rounded bg-gray-200"></div>
</div>
<div class="h-2 rounded bg-gray-200"></div>
</div>
</div>
</div>
</div>

Agregando una animación de rebote

Usa la utilidad animate-bounce para hacer que un elemento rebote hacia arriba y hacia abajo—útil para cosas como indicadores de 'desplázate hacia abajo':

<svg class="size-6 animate-bounce ...">
<!-- ... -->
</svg>

Soportando movimiento reducido

Para situaciones donde el usuario ha especificado que prefiere movimiento reducido, puedes aplicar condicionalmente animaciones y transiciones usando las variantes motion-safe y motion-reduce:

<button type="button" class="bg-indigo-600 ..." disabled>
<svg class="mr-3 size-5 motion-safe:animate-spin ..." viewBox="0 0 24 24">
<!-- ... -->
</svg>
Procesando
</button>

Usando un valor personalizado

Usa la sintaxis animate-[<value>] para establecer el animación basado en un valor completamente personalizado:

<div class="animate-[wiggle_1s_ease-in-out_infinite] ...">
<!-- ... -->
</div>

Para variables CSS, también puedes usar la sintaxis animate-(<custom-property>) :

<div class="animate-(--my-animation) ...">
<!-- ... -->
</div>

Esto es solo un atajo para animate-[var(<custom-property>)] que agrega la función var() por ti automáticamente.

Diseño Responsive

Prefija una utilidad animation con una variante de breakpoint como md: para aplicar la utilidad solo en tamaños de pantalla medium y superiores:

<div class="animate-none md:animate-spin ...">
<!-- ... -->
</div>

Aprende más sobre el uso de variantes en la documentación de variantes.

Personalizando tu tema

Usa las variables de tema --animate-* para personalizar las utilidades animation en tu proyecto:

@theme {
--animate-wiggle: wiggle 1s ease-in-out infinite;
@keyframes wiggle {
0%,
100% {
transform: rotate(-3deg);
}
50% {
transform: rotate(3deg);
}
}
}

Ahora la utilidad animate-wiggle puede ser usada en tu marcado:

<div class="animate-wiggle">
<!-- ... -->
</div>

Aprende más sobre la personalización de tu tema en la documentación del tema.

Copyright © 2025 Tailwind Labs Inc.·Política de Marca Registrada