docs.rodeo

MDN Web Docs mirror

animation-duration

{{CSSRef}} 

The animation-duration CSS property sets the length of time that an animation takes to complete one cycle.

{{EmbedInteractiveExample("pages/css/animation-duration.html")}} 

It is often convenient to use the shorthand property {{ cssxref("animation") }}  to set all animation properties at once.

Syntax

/* Single animation */
animation-duration: auto; /* Default */
animation-duration: 6s;
animation-duration: 120ms;

/* Multiple animations */
animation-duration: 1.64s, 15.22s;
animation-duration: 10s, 35s, 230ms;

/* Global values */
animation-duration: inherit;
animation-duration: initial;
animation-duration: revert;
animation-duration: revert-layer;
animation-duration: unset;

Values

[!NOTE] Negative values are invalid, causing the declaration to be ignored. Some early, prefixed, implementations may consider them as identical to 0s.

[!NOTE] When you specify multiple comma-separated values on an animation-* property, they are applied to the animations in the order in which the {{cssxref("animation-name")}} s appear. For situations where the number of animations and animation-* property values do not match, see Setting multiple animation property values.

[!NOTE] When creating CSS scroll-driven animations, specifying an animation-duration value in seconds or milliseconds doesn’t really make sense. In tests, it seemed to have no effect on scroll progress timeline animations, while on view progress timeline animations it seemed to push the animation to happen nearer the end of the timeline. However, Firefox requires an animation-duration to be set for it to successfully apply the animation. You are therefore advised to set animation-duration to 1ms so that animations will work in Firefox, but the effect is not altered too much by it.

Formal definition

{{cssinfo}} 

Formal syntax

{{csssyntax}} 

Examples

Setting animation duration

This animation has an animation-duration of 0.7 seconds.

HTML

<div class="box"></div>

CSS

.box {
  background-color: rebeccapurple;
  border-radius: 10px;
  width: 100px;
  height: 100px;
}

.box:hover {
  animation-name: rotate;
  animation-duration: 0.7s;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

Result

Hover over the rectangle to start the animation.

{{EmbedLiveSample("Setting animation duration","100%","250")}} 

See CSS animations for more examples.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN