Transitions
Master Tailwind CSS transition, transform, and animation utilities. Learn duration, easing, transform origin, scale, rotate, translate, and built-in animations like spin and pulse.
Transitions in Tailwind
Transitions create smooth, animated changes between CSS states (like hover). Tailwind provides utilities for transition property, duration, timing function, and delay.
Basic Transition
<button class="bg-indigo-600 text-white py-2 px-4 rounded-lg hover:bg-indigo-700 transition-colors duration-200">
Smooth color change
</button>
Transition Properties
| Class | What It Transitions |
|---|---|
transition-none | Nothing |
transition-all | All properties |
transition | Common properties (color, bg, shadow, opacity, transform) |
transition-colors | Color-related properties only |
transition-opacity | Opacity only |
transition-shadow | Box-shadow only |
transition-transform | Transform only |
Duration
<div class="transition-all duration-75">75ms</div>
<div class="transition-all duration-100">100ms</div>
<div class="transition-all duration-150">150ms (default)</div>
<div class="transition-all duration-200">200ms</div>
<div class="transition-all duration-300">300ms</div>
<div class="transition-all duration-500">500ms</div>
<div class="transition-all duration-700">700ms</div>
<div class="transition-all duration-1000">1000ms</div>
Timing Function (Easing)
<div class="transition-all duration-300 ease-linear">Linear</div>
<div class="transition-all duration-300 ease-in">Ease in (slow start)</div>
<div class="transition-all duration-300 ease-out">Ease out (slow end)</div>
<div class="transition-all duration-300 ease-in-out">Ease in-out</div>
Delay
<div class="transition-all duration-300 delay-100">100ms delay</div>
<div class="transition-all duration-300 delay-300">300ms delay</div>
Transforms
Tailwind includes utilities for CSS transforms — scale, rotate, translate, and skew.
Scale
<div class="hover:scale-105 transition-transform duration-300">
Scales to 105% on hover
</div>
<div class="hover:scale-110 transition-transform">Scale up 110%</div>
<div class="hover:scale-95 transition-transform">Scale down 95%</div>
<div class="hover:scale-x-110 transition-transform">Scale X only</div>
Rotate
<div class="hover:rotate-6 transition-transform duration-300">Rotate 6°</div>
<div class="hover:rotate-12 transition-transform">Rotate 12°</div>
<div class="hover:rotate-45 transition-transform">Rotate 45°</div>
<div class="hover:rotate-90 transition-transform">Rotate 90°</div>
<div class="hover:rotate-180 transition-transform">Rotate 180°</div>
<div class="hover:-rotate-12 transition-transform">Rotate -12°</div>
Translate
<div class="hover:translate-x-2 transition-transform">Move right 0.5rem</div>
<div class="hover:-translate-y-1 transition-transform">Move up 0.25rem</div>
<div class="hover:translate-x-4 hover:-translate-y-2 transition-transform">Move diagonally</div>
Skew
<div class="hover:skew-x-3 transition-transform">Skew X 3°</div>
<div class="hover:skew-y-6 transition-transform">Skew Y 6°</div>
Built-in Animations
Tailwind includes four ready-made CSS animations:
<!-- Spin (loading indicator) -->
<svg class="animate-spin h-5 w-5 text-indigo-600" viewBox="0 0 24 24">...</svg>
<!-- Ping (notification pulse) -->
<span class="relative flex h-3 w-3">
<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-indigo-400 opacity-75"></span>
<span class="relative inline-flex rounded-full h-3 w-3 bg-indigo-500"></span>
</span>
<!-- Pulse (skeleton loading) -->
<div class="animate-pulse bg-gray-200 h-4 w-48 rounded"></div>
<!-- Bounce (attention getter) -->
<div class="animate-bounce text-2xl">⬇</div>
Skeleton Loading
<div class="max-w-sm bg-white rounded-xl shadow p-6">
<div class="animate-pulse space-y-4">
<div class="bg-gray-200 h-40 rounded-lg"></div>
<div class="bg-gray-200 h-4 w-3/4 rounded"></div>
<div class="bg-gray-200 h-4 w-1/2 rounded"></div>
<div class="flex space-x-2">
<div class="bg-gray-200 h-8 w-20 rounded-full"></div>
<div class="bg-gray-200 h-8 w-20 rounded-full"></div>
</div>
</div>
</div>
Practical Example — Animated Card
<div class="group bg-white rounded-2xl shadow-md hover:shadow-2xl p-6 transition-all duration-300 cursor-pointer max-w-sm hover:-translate-y-1">
<div class="overflow-hidden rounded-xl mb-4">
<img src="https://picsum.photos/400/200" alt="" class="w-full h-44 object-cover group-hover:scale-110 transition-transform duration-500">
</div>
<h3 class="font-bold text-gray-900 group-hover:text-indigo-600 transition-colors">Animated Card</h3>
<p class="mt-2 text-sm text-gray-500">This card lifts on hover with a smooth transition.</p>
</div>
Recap
transition-*+duration-*+ease-*create smooth state transitions.- Transform utilities:
scale-*,rotate-*,translate-*,skew-*. - Built-in animations:
animate-spin,animate-ping,animate-pulse,animate-bounce. - Combine
group-hover:with transforms for interactive card effects.
In the final tutorial, we will wrap up the series with best practices and resources.