The transition-delay property controls when a CSS transition starts — after a property changes. Use it to pause before motion begins or to stagger multiple elements.
01
Wait time
Delay before start.
02
Time units
Seconds and ms.
03
Shorthand
Last value in transition.
04
Stagger
Cascade menu items.
05
Tooltips
Avoid instant flashes.
06
UX care
Keep delays reasonable.
Fundamentals
Introduction
The transition-delay property in CSS is used to specify the amount of time to wait before the transition effect starts. This property is useful for creating smoother animations and for controlling the timing of transitions on your web page. By adjusting the transition-delay, you can create more dynamic and visually appealing effects for your users.
Definition and Usage
Set transition-delay on the same element where you define transition or transition-property. The delay applies when a property value changes — for example, when the user hovers over an element or when a class is toggled.
💡
Beginner Tip
Delay does not change how long the animation takes — that is transition-duration. Delay only waits before the transition begins.
Foundation
📝 Syntax
The syntax for the transition-delay property is straightforward. It can be applied to any element that supports transitions.
syntax.css
element{transition-delay:time;}
Here, time can be specified in seconds (s) or milliseconds (ms).
Time values must use s (seconds) or ms (milliseconds).
Default is 0s — no wait before the transition starts.
You can also set delay as the fourth value in the transition shorthand.
Comma-separated values match multiple transitions when used with multiple properties.
The property is not inherited.
Related Properties
transition — shorthand for all transition longhands
transition-duration — how long the transition runs
transition-property — which properties animate
transition-timing-function — speed curve during the transition
animation-delay — delay for @keyframes animations
Defaults
🎯 Default Value
The default value of the transition-delay property is 0s, meaning the transition starts immediately when the property value changes.
Cheat Sheet
⚡ Quick Reference
Question
Answer
Default value
0s
Wait 2 seconds
transition-delay: 2s;
Short delay
transition-delay: 200ms;
In shorthand
transition: opacity 0.3s ease 0.5s;
Stagger items
Different delay per :nth-child()
Inherited
No
Reference
💎 Property Values
The transition-delay property accepts time values.
Value
Example
Description
time
2s or 200ms
Specifies the amount of time to wait before the transition effect starts. Use seconds (e.g., 2s) or milliseconds (e.g., 200ms).
0s200ms0.5s2s
Context
When to Use transition-delay
transition-delay helps you control timing and sequencing of visual changes:
Staggered reveals — Menu items or list rows appear one after another.
Delayed tooltips — Wait briefly before showing a tooltip to avoid flicker on quick mouse movement.
Sequential hover effects — Background changes after a short pause for emphasis.
Exit timing — Different delays on hover-in vs hover-out (set on base and hover rules).
Preview
👀 Live Preview
Hover the box below — the color change waits 1 second before starting:
transition-delay: 1s
Hold hover to see the delayed color shift.
Hands-On
Examples Gallery
In this example, we’ll create a simple transition effect where the background color of a div changes after a delay of 2 seconds when the user hovers over it.
📜 Core Patterns
Learn delay as a longhand property and inside the transition shorthand.
Example 1 — Box with 2 second delay
In this example, we’ll create a simple transition effect where the background color of a div changes after a delay of 2 seconds when the user hovers over it.
Set property, duration, timing, and delay on the element.
Setup
2
Property value changes
Hover, focus, or a class toggle updates a CSS property.
Trigger
3
Browser waits
The delay timer runs for the specified transition-delay time.
Wait
=
✅
Transition runs
After the wait, the property animates over the transition duration.
Compatibility
Browser Compatibility
The transition-delay property is supported in most modern browsers, including the latest versions of Chrome, Firefox, Safari, Edge, and Opera. However, it is always a good practice to test your website across different browsers to ensure compatibility.
✓ Modern browsers · Widely supported
Delayed transitions everywhere
transition-delay works in current Chrome, Firefox, Safari, Edge, and Opera alongside other transition properties.
98%Browser support
Google Chrome26+ · Desktop & Mobile
Full support
Mozilla Firefox16+ · Desktop & Mobile
Full support
Apple Safari6.1+ · macOS & iOS
Full support
Microsoft Edge12+ · All versions
Full support
Opera12.1+ · All versions
Full support
Testing tip
Test staggered delays on mobile; touch devices may not trigger hover, so provide tap or focus alternatives.
transition-delay property98% supported
Bottom line:transition-delay is safe to use for timed transition effects in modern browsers.
Wrap Up
Conclusion
The transition-delay property is a powerful tool for web developers looking to create timed transitions and animations.
By adjusting the delay, you can control the timing of your effects, making your web pages more engaging and visually appealing. Experiment with different delay times and see how this property can enhance the user experience on your website.