CSS Portal

CSS transition-delay Property

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!

Description

The transition-delay property controls the amount of time the browser waits after a property change before beginning the transition effect. It does not change which properties animate or how they interpolate; it only offsets when the animation actually starts. Because it is an independent timing parameter, you can use it to sequence visual changes (start one transition after another) or to give users a brief moment before an effect runs, which is useful for hover interactions, staged entrance effects, or coordinating multiple animated parts of a UI.

Timing and composition are handled in concert with the other transition-related properties: the properties that will animate are chosen by transition-property, how long each animation runs is governed by transition-duration, and the easing curve is determined by transition-timing-function. You can also express all of these together with the shorthand transition. When multiple transitions are declared (for example, a list of properties to animate), the delay values are matched positionally to the corresponding durations and properties; that positional matching is important when sequencing or staggering effects across several CSS properties.

In practical use, transition-delay is a lightweight way to orchestrate timing without JavaScript: staggered delays create a natural, cascading feel; short delays can avoid flicker from accidental pointer movements; and long delays can be used to make a response feel more deliberate. Keep in mind that if the property change that would trigger a transition is reversed before the delay elapses, the transition may never run; likewise, negative offset values (conceptually) can cause a transition to appear already in progress when it begins. For accessibility and user control, always consider users who prefer reduced motion and prefer coordinating delays with clear affordances rather than relying solely on timing.

Definition

Initial value
0s
Applies to
All elements, :before and :after pseudo elements
Inherited
No
Computed value
Same as specified value
Animatable
No
JavaScript syntax
object.style.transitionDelay

Interactive Demo

Hover over me
to see transition.

Syntax

transition-delay: <time> [, <time>]*

Values

  • <time>Is the amount of time to wait between a property's value changing and the start of the animation effect.

Example

<div class="container">
<div class="box" tabindex="0">Hover me</div>
</div>
/* Transition-delay example: different delays for background and transform */
.container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    background: #f3f4f6;
}

.box {
    width: 150px;
    height: 150px;
    background: #2563eb;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    border-radius: 8px;
    cursor: pointer;

    /* transition:     */
    transition: background-color 300ms ease 200ms, transform 300ms ease 600ms;
}

.box:hover,
.box:focus {
    background: #ef4444;
    transform: translateY(-20px) scale(1.05);
}

Browser Support

The following information will show you the current browser support for the CSS transition-delay property. Hover over a browser icon to see the version that first introduced support for this CSS property.

This property is supported by all modern browsers.
Desktop
Chrome
Edge
Firefox
Opera
Safari
Tablets & Mobile
Chrome Android
Firefox Android
Opera Android
Safari iOS
Samsung Internet
Android WebView
-

Last updated by CSSPortal on: 1st January 2026

If this site has been useful, we’d love your support! Consider buying us a coffee to keep things going strong!