animation-duration
The animation-duration CSS property sets the length of time that an animation takes to complete one cycle.
{{InteractiveExample("CSS Demo: animation-duration")}} 
animation-duration: 750ms;
animation-duration: 3s;
animation-duration: 0s;
<section class="flex-column" id="default-example">
  <div class="animating" id="example-element"></div>
  <button id="play-pause">Play</button>
</section>
#example-element {
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-name: slide;
  animation-play-state: paused;
  animation-timing-function: ease-in;
  background-color: #1766aa;
  border-radius: 50%;
  border: 5px solid #333333;
  color: white;
  height: 150px;
  margin: auto;
  margin-left: 0;
  width: 150px;
}
#example-element.running {
  animation-play-state: running;
}
#play-pause {
  font-size: 2rem;
}
@keyframes slide {
  from {
    background-color: orange;
    color: black;
    margin-left: 0;
  }
  to {
    background-color: orange;
    color: black;
    margin-left: 80%;
  }
}
const el = document.getElementById("example-element");
const button = document.getElementById("play-pause");
button.addEventListener("click", () => {
  if (el.classList.contains("running")) {
    el.classList.remove("running");
    button.textContent = "Play";
  } else {
    el.classList.add("running");
    button.textContent = "Pause";
  }
});
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
- 
auto- : For time-based animations, 
autois equivalent to a value of0s(see below). For CSS scroll-driven animations,autofills the entire timeline with the animation. 
 - : For time-based animations, 
 - 
{{cssxref("<time>")}}- 
: The time that an animation takes to complete one cycle. This may be specified in either seconds (
s) or milliseconds (ms). The value must be positive or zero and the unit is required.If no value is provided, the default value of
0sis used, in which case the animation still executes (theanimationStartandanimationEndevents are fired). Whether or not the animation will be visible when the duration is0swill depend on the value ofanimation-fill-mode, as explained below:- If 
animation-fill-modeis set tobackwardsorboth, the first frame of the animation as defined byanimation-directionwill be displayed duringanimation-delaycountdown. - If 
animation-fill-modeis set toforwardsorboth, the last frame of the animation will be displayed, as defined byanimation-direction, after theanimation-delayexpires. - If 
animation-fill-modeis set tonone, the animation will have no visible effect. 
 - If 
 
 - 
 
[!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 andanimation-*property values do not match, see Setting multiple animation property values.
[!NOTE] When creating CSS scroll-driven animations, specifying an
animation-durationvalue 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 ananimation-durationto be set for it to successfully apply the animation. You are therefore advised to setanimation-durationto1msso 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
- Using CSS animations
 - JavaScript 
{{domxref("AnimationEvent")}}API - Other related animation properties: 
{{cssxref("animation")}},{{cssxref("animation-composition")}},{{cssxref("animation-delay")}},{{cssxref("animation-direction")}},{{cssxref("animation-fill-mode")}},{{cssxref("animation-iteration-count")}},{{cssxref("animation-name")}},{{cssxref("animation-play-state")}},{{cssxref("animation-timeline")}},{{cssxref("animation-timing-function")}}