Transition utilities animate CSS property changes smoothly instead of snapping instantly, essential for polished hover states, dropdowns, and interactive UI. This lesson covers duration, easing, delay, and the property-scoped transition classes.
What Are Transition Utilities?
transition-* utilities map to the CSS transition-property value, telling the browser which properties to animate, transition covers a sensible common set, while transition-colors, transition-transform, and transition-opacity scope it more narrowly.
Transitions are typically combined with duration-* (how long the animation takes) and ease-* (its acceleration curve) to fully control the animation feel.
transition animates a default common set of properties (color, background, border, opacity, shadow, transform).
Scoped variants (transition-colors, transition-transform) animate only that property group, which can be more performant.
duration-* sets how long the transition takes, in milliseconds.
ease-* sets the timing function, and delay-* sets a start delay before the transition begins.
Transition Utilities Cheatsheet
Common transition combinations for smooth interactive UI.
Class
Effect
transition
Animates a default common property set
transition-colors
Animates only color-related properties
transition-transform
Animates only transform (scale, rotate, translate)
transition-opacity
Animates only opacity changes
duration-150
150ms transition duration, fast and snappy
duration-300
300ms transition duration, standard feel
ease-in-out
Smooth acceleration and deceleration
delay-100
Starts the transition after a 100ms delay
transition-none
Disables transitions entirely
Hover Scale Effect
Combining transition-transform with a hover:scale-* utility creates a satisfying "pop" effect on cards, buttons, or images when hovered, one of the most common Tailwind interaction patterns.
<div class="rounded-lg bg-white p-6 shadow-md transition-transform duration-200 hover:scale-105">
Hover to scale up slightly.
</div>
Why Scope Transitions to Specific Properties
Using the broad transition class animates several property groups even if only one is actually changing, which can occasionally cause unwanted side effects (like a shadow subtly animating when you only meant to animate color). Scoped classes like transition-colors are more predictable and slightly more efficient.
<a class="text-slate-600 transition-colors hover:text-blue-600" href="/about">
Only the text color transitions, nothing else.
</a>
Fine-Tuning With Easing and Delay
Different easing curves create different "feels": ease-out feels responsive and snappy for entering elements, ease-in suits elements leaving the screen, and a small delay-* can stagger multiple elements animating in sequence.
<div class="opacity-0 transition-opacity duration-300 ease-out delay-100 group-hover:opacity-100">
Fades in with a slight delay after its group is hovered.
</div>
Common Mistakes
Forgetting duration-*, which leaves the default transition duration (150ms) even when a slower or faster feel was intended.
Using the broad transition class when a scoped class like transition-colors would be more predictable and slightly more efficient.
Animating layout-affecting properties like width or height with transitions, which can be less performant than transform-based animations.
Not testing hover transitions on touch devices, where hover states behave differently or not at all.
Overusing long transition durations (500ms+) for frequent micro-interactions, making the UI feel sluggish.
Key Takeaways
Transition utilities animate CSS property changes instead of letting them snap instantly.
Scoped transition classes like transition-colors are more predictable than the broad default transition class.
duration-* and ease-* control the speed and feel of the animation.
hover:scale-* combined with transition-transform is a common, satisfying interactive pattern.
Prefer animating transform and opacity over layout properties like width/height for smoother performance.
Pro Tip
For the smoothest-feeling animations, animate transform and opacity wherever possible instead of properties like width, height, or top/left, browsers can composite transform/opacity changes more efficiently.
You now understand Tailwind's transition utilities for smooth animations. Next, move into Forms, starting with an overview of Tailwind's form styling approach.