<!DOCTYPE html><html lang=en><head>
  <meta content="text/html; charset=utf-8" http-equiv=Content-Type>
  <title>Web Animations CSS Integration</title>
  <link href=http://dev.w3.org/csswg/default.css rel=stylesheet type=text/css>
  <link href=http://dev.w3/org/csswg/csslogo.ico rel="shortcut icon" type=image/x-icon>
  <link href=https://www.w3.org/StyleSheets/TR/W3C-ED rel=stylesheet type=text/css>
</head>
<body class=h-entry>
<div class=head>
  <p data-fill-with=logo><a class=logo href=http://www.w3.org/>
    <img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72>
</a>
</p>
  <h1 class="p-name no-ref" id=title>Web Animations CSS Integration</h1>
  <h2 class="no-num no-toc no-ref heading settled heading" id=subtitle><span class=content>Editor’s Draft,
    <span class=dt-updated><span class=value-title title=20140501>1 May 2014</span></span></span></h2>
  <div data-fill-with=spec-metadata><dl><dt>This version:<dd><a class=u-url href=none>none</a><dt>Editor’s Draft:<dd><a href=none>none</a>
    <dt>Feedback:</dt>
        <dd><a href="mailto:public-fx@w3.org?subject=%5Bweb-animations-css%5D%20feedback">public-fx@w3.org</a>
            with subject line
            “<kbd>[web-animations-css] <var>… message topic …</var></kbd>”(<a href=http://lists.w3.org/Archives/Public/public-fx/ rel=discussion>archives</a>)<dt>Test Suite:<dd>None Yet<dt>Editors:
<dd class="p-author h-card vcard"><a class="p-name fn u-email email" href=mailto:shans@google.com>Shane Stephens</a> (<span class="p-org org">Google</span>)</dl></div>
  <div data-fill-with=warning></div>
  <p class=copyright data-fill-with=copyright><a href=http://www.w3.org/Consortium/Legal/ipr-notice#Copyright>Copyright</a> © 2014 <a href=http://www.w3.org/><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href=http://www.csail.mit.edu/><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href=http://www.ercim.eu/><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>, <a href=http://www.keio.ac.jp/>Keio</a>, <a href=http://ev.buaa.edu.cn/>Beihang</a>), All Rights Reserved. W3C <a href=http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer>liability</a>, <a href=http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks>trademark</a> and <a href=http://www.w3.org/Consortium/Legal/copyright-documents>document use</a> rules apply.
</p>
  <hr title="Separator for header">
</div>

<h2 class="no-num no-toc no-ref heading settled heading" id=abstract><span class=content>Abstract</span></h2>
<p class=p-summary data-fill-with=abstract>This specification defines mappings between <a data-biblio-type=informative data-link-type=biblio href=#css3-animations title=css3-animations>[CSS3-ANIMATIONS]</a>, <a data-biblio-type=informative data-link-type=biblio href=#css3-transitions title=css3-transitions>[CSS3-TRANSITIONS]</a> and the <a data-biblio-type=informative data-link-type=biblio href=#web-animations title=web-animations>[WEB-ANIMATIONS]</a> model.
<a href=http://www.w3.org/TR/CSS/>CSS</a> is a language for describing the rendering of structured documents 
(such as HTML and XML) 
on screen, on paper, in speech, etc.</p>

<h2 class="no-num no-toc no-ref heading settled heading" id=status><span class=content>Status of this document</span></h2>
<div data-fill-with=status><p>
	This is a public copy of the editors' draft. 
	It is provided for discussion only and may change at any moment. 
	Its publication here does not imply endorsement of its contents by W3C. 
	Don’t cite this document other than as work in progress.

<p>
	The (<a href=http://lists.w3.org/Archives/Public/public-fx/>archived</a>) public mailing list
	<a href="mailto:public-fx@w3.org?Subject=%5Bweb-animations-css%5D%20PUT%20SUBJECT%20HERE">public-fx@w3.org</a> 
	(see <a href=http://www.w3.org/Mail/Request>instructions</a>) 
	is preferred for discussion of this specification. 
	When sending e-mail, 
	please put the text “web-animations-css” in the subject, 
	preferably like this:
	“[web-animations-css] <em>…summary of comment…</em>”

<p>
	This document was produced by the <a href=http://www.w3.org/Style/CSS/members>CSS Working Group</a> 
	(part of the <a href=http://www.w3.org/Style/>Style Activity</a>) and the <a href=http://www.w3.org/Graphics/SVG/WG/>SVG Working Group</a> (part of the
	<a href=http://www.w3.org/Graphics/>Graphics Activity</a>).

<p>
	This document was produced by groups operating under 
	the <a href=http://www.w3.org/Consortium/Patent-Policy-20040205/>5 February 2004 W3C Patent Policy</a>. 
	W3C maintains a <a href=http://www.w3.org/2004/01/pp-impl/32061/status rel=disclosure>public list of any patent disclosures (CSS)</a>
	and a <a href=http://www.w3.org/2004/01/pp-impl/19480/status rel=disclosure>public list of any patent disclosures (SVG)</a> 
	made in connection with the deliverables of each group; 
	these pages also includes instructions for disclosing a patent. 
	An individual who has actual knowledge of a patent which the individual believes contains
	<a href=http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential>Essential Claim(s)</a> 
	must disclose the information in accordance with <a href=http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure>section 6 of the W3C Patent Policy</a>.</div>
<div data-fill-with=at-risk></div>

<h2 class="no-num no-toc no-ref heading settled heading" id=contents><span class=content>Table of Contents</span></h2>
<div data-fill-with=table-of-contents><ul class=toc>
	<li><a href=#introduction><span class=secno>1</span>Introduction</a>
	<li><a href=#css-transitions><span class=secno>2</span>CSS Transitions</a>
		<ul class=toc>
		<li><a href=#css-transitions-events><span class=secno>2.1</span>CSS Transitions events</a></ul>
	<li><a href=#css-animations><span class=secno>3</span>CSS Animations</a>
		<ul class=toc>
		<li><a href=#the-csskeyframesmap-mapping><span class=secno>3.1</span>The CSSKeyframesMap mapping</a>
			<ul class=toc>
			<li><a href=#the-csskeyframesmap-interface><span class=secno>3.1.1</span>The CSSKeyframesMap interface</a>
			<li><a href=#documentkeyframes><span class=secno>3.1.2</span>Document.keyframes</a>
			<li><a href=#conversion-of-css-keyframes><span class=secno>3.1.3</span>Converting a CSS Keyframes rule into a  KeyframeEffect</a></ul>
		<li><a href=#web-animations-instantiation><span class=secno>3.2</span>Web Animations Instantiation</a>
		<li><a href=#css-animations-events><span class=secno>3.3</span>CSS Animations Events</a>
		<li><a href=#instantiating-an-animating-effect><span class=secno>3.4</span>Instantiating the animating effect </a></ul>
	<li><a href=#exposure-in-the-web-animations-api><span class=secno>4</span>Exposure in the Web Animations API</a>
	<li><a href=#conformance><span class=secno></span> Conformance</a>
		<ul class=toc>
		<li><a href=#conventions><span class=secno></span> Document conventions</a>
		<li><a href=#conformance-classes><span class=secno></span> Conformance classes</a>
		<li><a href=#partial><span class=secno></span> Partial implementations</a>
		<li><a href=#experimental><span class=secno></span> Experimental implementations</a>
		<li><a href=#testing><span class=secno></span> Non-experimental implementations</a></ul>
	<li><a href=#references><span class=secno></span> References</a>
		<ul class=toc>
		<li><a href=#normative><span class=secno></span> Normative References</a>
		<li><a href=#informative><span class=secno></span> Informative References</a></ul>
	<li><a href=#index><span class=secno></span> Index</a>
	<li><a href=#property-index><span class=secno></span> Property index</a>
	<li><a href=#issues-index><span class=secno></span>Issues Index</a></ul></div>



<h2 class="heading settled heading" data-level=1 id=introduction><span class=secno>1 </span><span class=content>Introduction</span><a class=self-link href=#introduction></a></h2>

<p><a data-biblio-type=informative data-link-type=biblio href=#css3-animations title=css3-animations>[CSS3-ANIMATIONS]</a> and <a data-biblio-type=informative data-link-type=biblio href=#css3-transitions title=css3-transitions>[CSS3-TRANSITIONS]</a> provide models for defining
declarative animations via CSS. <a data-biblio-type=informative data-link-type=biblio href=#svg12 title=svg12>[SVG12]</a> provides a model for defining
declarative animations via SVG. However, the three specifications do not
define or present a unified animation model.

<p>To solve this problem, the <a data-biblio-type=informative data-link-type=biblio href=#web-animations title=web-animations>[WEB-ANIMATIONS]</a> specification defines a 
comprehensive animation model that is capable of supporting <a data-biblio-type=informative data-link-type=biblio href=#css3-animations title=css3-animations>[CSS3-ANIMATIONS]</a>,
<a data-biblio-type=informative data-link-type=biblio href=#css3-transitions title=css3-transitions>[CSS3-TRANSITIONS]</a> and <a data-biblio-type=informative data-link-type=biblio href=#svg12 title=svg12>[SVG12]</a>.

<p>This document describes how <a data-biblio-type=informative data-link-type=biblio href=#css3-animations title=css3-animations>[CSS3-ANIMATIONS]</a> and <a data-biblio-type=informative data-link-type=biblio href=#css3-transitions title=css3-transitions>[CSS3-TRANSITIONS]</a> are
supported by the <a data-biblio-type=informative data-link-type=biblio href=#web-animations title=web-animations>[WEB-ANIMATIONS]</a> model.

<h2 class="heading settled heading" data-level=2 id=css-transitions><span class=secno>2 </span><span class=content>CSS Transitions</span><a class=self-link href=#css-transitions></a></h2>

<div data-link-spec=css-transitions>

<p>For CSS Transitions, mappings into the Web Animations model are established 
pairwise for a specific CSS property, the <dfn data-dfn-type=dfn data-noexport="" id=transitioning-property>transitioning property<a class=self-link href=#transitioning-property></a></dfn>, on
a specific element, the <dfn data-dfn-type=dfn data-noexport="" id=transitioning-element>transitioning element<a class=self-link href=#transitioning-element></a></dfn>.

<p>When a CSS Transition is started for the <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-property title="transitioning property">transitioning property</a> of a
<a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-element title="transitioning element">transitioning element</a>, an <a data-link-spec=css-transitions data-link-type=dfn href=#animation title=animation>Animation</a> is constructed and
associated with a <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a> on the <a data-link-spec=css-transitions data-link-type=dfn href=#document-timeline title="document timeline">document timeline</a>, configured
with a <a data-link-spec=css-transitions data-link-type=dfn href=#custom-player-priority title="custom player priority">custom player priority</a> which ensures that the <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a> sorts
before <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a>s created through the Web Animations API and those generated
for CSS Animations. The <a data-link-spec=css-transitions data-link-type=dfn href=#animation title=animation>Animation</a> is configured as follows:

<p><ul>
<li>The <a data-link-spec=css-transitions data-link-type=dfn href=#target-element title="target element">target element</a> is set to the <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-element title="transitioning element">transitioning element</a>.
<li>The <a data-link-spec=css-transitions data-link-type=dfn href=#start-delay title="start delay">start delay</a> is set to the current used value of the <a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-delay title=transition-delay>transition-delay</a>
property.
<li>The <a data-link-spec=css-transitions data-link-type=dfn href=#iteration-duration title="iteration duration">iteration duration</a> is set to the current used value of the 
<a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-duration title=transition-duration>transition-duration</a> property.
<li>The <a data-link-spec=css-transitions data-link-type=dfn href=#timing-function title="timing function">timing function</a> is set to the current used value of the
<a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-timing-function title=transition-timing-function>transition-timing-function</a> property.
<li>The <a data-link-spec=css-transitions data-link-type=dfn href=#animation-effect title="animation effect">animation effect</a> is set to a <a data-link-spec=css-transitions data-link-type=dfn href=#keyframe-animation-effect title="keyframe animation effect">keyframe animation effect</a>
with two <a data-link-spec=css-transitions data-link-type=dfn href=#keyframes title=keyframes>keyframes</a> defined as follows:
    <ul>
    <li>The first keyframe references the <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-property title="transitioning property">transitioning property</a> with a
    value set to the <a data-link-spec=css-transitions data-link-type=dfn href=http://dev.w3.org/csswg/css-transitions-1/#start-value title="start value">start value</a> of the transition.
    <li>The second and final keyframe references the
    <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-property title="transitioning property">transitioning property</a> with a value set to the <a data-link-spec=css-transitions data-link-type=dfn href=http://dev.w3.org/csswg/css-transitions-1/#end-value title="end value">end value</a> of
    the transition.
    </ul>
</ul>

<p class=note>Note, changes to the values of the <a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-delay title=transition-delay>transition-delay</a>, <a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-duration title=transition-duration>transition-duration</a>, 
and <a class=property data-link-spec=css-transitions data-link-type=propdesc href=http://dev.w3.org/csswg/css-transitions-1/#transition-timing-function title=transition-timing-function>transition-timing-function</a> have no effect on a transition once it has
started.

<p>When a transition affecting the <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-property title="transitioning property">transitioning property</a> of a 
<a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-element title="transitioning element">transitioning element</a> is removed or interrupted the <a data-link-spec=css-transitions data-link-type=dfn href=#cancel title=cancel>cancel</a>
method of the corresponding <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a> is called.

<p>When a transition affecting the <a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-property title="transitioning property">transitioning property</a> of a 
<a data-link-spec=css-transitions data-link-type=dfn href=#transitioning-element title="transitioning element">transitioning element</a> is reversed the <a data-link-spec=css-transitions data-link-type=dfn href=#cancel title=cancel>cancel</a>
method of the corresponding <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a> is called and a new <a data-link-spec=css-transitions data-link-type=dfn href=#player title=player>Player</a> is
generated as if the transition had just begun.

<h3 class="heading settled heading" data-level=2.1 id=css-transitions-events><span class=secno>2.1 </span><span class=content>CSS Transitions events</span><a class=self-link href=#css-transitions-events></a></h3>
The <a data-link-spec=css-transitions data-link-type=dfn href=http://dev.w3.org/csswg/css-transitions-1/#transitionend title=transitionend>transitionend</a> event is triggered to fire each time the
corresponding <a data-link-spec=css-transitions data-link-type=dfn href=#animation title=animation>Animation</a> enters the <a data-link-spec=css-transitions data-link-type=dfn href=#after-phase title="after phase">after phase</a> during a
<a data-link-spec=css-transitions data-link-type=dfn href=#sample title=sample>sample</a>.
</div>

<h2 class="heading settled heading" data-level=3 id=css-animations><span class=secno>3 </span><span class=content>CSS Animations</span><a class=self-link href=#css-animations></a></h2>

<h3 class="heading settled heading" data-level=3.1 id=the-csskeyframesmap-mapping><span class=secno>3.1 </span><span class=content>The CSSKeyframesMap mapping</span><a class=self-link href=#the-csskeyframesmap-mapping></a></h3>

<div data-link-spec=html5>

<pre class=idl style=display:none>//FIXME: figure out the appropriate thing to do here and remove this!

interface <dfn class=idl-code data-dfn-type=interface data-export="" data-global-name="" id=dom-string>String<a class=self-link href=#dom-string></a></dfn> { };
</pre>    
<pre class=idl>[MapClass(<a data-link-spec=html5 data-link-type=idl href=#dom-string title=string>String</a>, <a data-link-spec=html5 data-link-type=idl href=#dom-animationeffect title=animationeffect>AnimationEffect</a>)]
interface <a class=idl-code data-global-name="" data-link-spec=html5 data-link-type=interface href=#dom-csskeyframesmap title=csskeyframesmap>CSSKeyframesMap</a> {
};

partial interface <a class=idl-code data-global-name="" data-link-spec=html5 data-link-type=interface href=http://www.w3.org/html/wg/drafts/html/CR/infrastructure.html#dom-document title=document>Document</a> {
    readonly attribute <a data-link-spec=html5 data-link-type=idl href=#dom-csskeyframesmap title=csskeyframesmap>CSSKeyframesMap</a> <a class=idl-code data-global-name="Document<interface>/keyframes<attribute>" data-link-for=Document data-link-spec=html5 data-link-type=attribute data-readonly="" data-type=CSSKeyframesMap href=#dom-document-keyframes title=keyframes>keyframes</a>;
};
</pre>
</div>

<div data-link-spec=css-animations>

<h4 class="heading settled heading" data-level=3.1.1 id=the-csskeyframesmap-interface><span class=secno>3.1.1 </span><span class=content>The CSSKeyframesMap interface</span><a class=self-link href=#the-csskeyframesmap-interface></a></h4>

<p>The <dfn class=idl-code data-dfn-type=interface data-export="" id=dom-csskeyframesmap>CSSKeyframesMap<a class=self-link href=#dom-csskeyframesmap></a></dfn> interface defines a map type that can
be used to store sequences of Keyframes indexed by Strings.

<h4 class="heading settled heading" data-level=3.1.2 id=documentkeyframes><span class=secno>3.1.2 </span><span class=content>Document.keyframes</span><a class=self-link href=#documentkeyframes></a></h4>

<p>The <dfn class=idl-code data-dfn-for=Document data-dfn-type=attribute data-export="" id=dom-document-keyframes>keyframes<a class=self-link href=#dom-document-keyframes></a></dfn> attribute on the
<a class=idl-code data-link-spec=html5 data-link-type=interface href=http://www.w3.org/html/wg/drafts/html/CR/infrastructure.html#dom-document title=document>Document</a> interface references a map of type
<a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-csskeyframesmap title=csskeyframesmap>CSSKeyframesMap</a>.

<p class=note>Note: The <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-csskeyframesmap title=csskeyframesmap>CSSKeyframesMap</a> enables animations created using the
Web Animations API to re-use the keyframe rules declared by CSS, and for
animations declared by CSS to act on <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-animationeffect title=animationeffect>AnimationEffect</a>s created
through the API.

<p class=note>Note: The processing defined in this section does not alter the way in which
keyframes rules are selected when CSS animations are started, unless a name is
explicitly overridden by setting its value in the map.

<p>When a new <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule name is encountered in a 
style sheet, the action taken depends upon the current value stored against the
name in the <a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> map.

<dl>
<dt>If the current value has never been set, or has only been set due to 
style changes:</dt>
<dd>
<p>The keyframes defined by the <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule are
converted into a <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-keyframeeffect title=keyframeeffect>KeyframeEffect</a> (see 
<a data-section="" href=#conversion-of-css-keyframes>§3.1.3 Converting a CSS Keyframes rule into a 
KeyframeEffect</a>), then stored against the
name in the <a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> map.
<dt>Otherwise:
<dd>
<p>The rule is ignored.
</dl>

<p class=issue id=issue-1a6a93a1><a class=self-link href=#issue-1a6a93a1></a> Should the KeyframeEffects generated by @keyframes rules be read-only?

<p>When the used <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule associated with a
given name changes due to a change in a style sheet, the action taken depends
upon the current value stored against the name in the 
<a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> map.

<dl>
<dt>If the current value has only been set due to style changes:
<dd>
<p>The keyframes defined by the new rule are converted into a
<a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-keyframeeffect title=keyframeeffect>KeyframeEffect</a>
(see <a data-section="" href=#conversion-of-css-keyframes>§3.1.3 Converting a CSS Keyframes rule into a 
KeyframeEffect</a>), then stored
against the name in the <a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> map.
<dt>Otherwise:
<dd>The change is ignored.
</dl>

<p>When the last <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule for a given name is
removed from a style sheet, the action taken depends upon the current value
stored against the name in the <a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a>
map.

<dl>
<dt>If the current value has only been set due to style changes:
<dd>
<p>The value referenced by the <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> name is
cleared from the <a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> map.
<dt>Otherwise:
<dd>The removal is ignored.
</dl>

<h4 class="heading settled heading" data-level=3.1.3 id=conversion-of-css-keyframes><span class=secno>3.1.3 </span><span class=content>Converting a CSS Keyframes rule into a 
KeyframeEffect</span><a class=self-link href=#conversion-of-css-keyframes></a></h4>

<p>A CSS <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule <em>keyframes</em> is
converted into a <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-keyframeeffect title=keyframeeffect>KeyframeEffect</a> using the following process:

<ol>
<li>Initialize an empty list <em>keyframeList</em>.
<li>For each <em>keyframe</em> in keyframes:
<ol>
<li>Create a new dictionary <em>newKeyframe</em>.
<li>Set <em>newKeyframe</em>’s <a data-link-spec=css-animations data-link-type=dfn href=#offset title=offset>offset</a> to the offset defined by 
<em>keyframe</em>.
<li>If <em>keyframe</em> defines an <a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-timing-function title=animation-timing-function>animation-timing-function</a>, set 
<em>newKeyframe</em>’s <a data-link-spec=css-animations data-link-type=dfn href=#easing title=easing>easing</a> to the defined <a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-timing-function title=animation-timing-function>animation-timing-function</a>.
<li>For each <em>property</em> defined in <em>keyframe</em>:
<ol>
<li>Set <em>newKeyframe[property]</em> to the value associated with that 
property in <em>keyframe</em>
<li>Add <em>property</em> to referencedProperties.
</ol>
</ol>
<li>Add <em>newKeyframe</em> to <em>keyframeList</em>.
<li>Remove keyframes with duplicated offsets from <em>keyframeList</em>such that
only the last keyframe to specify a given offset remains.
<li>Construct a new <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-keyframeeffect title=keyframeeffect>KeyframeEffect</a>, providing 
<em>keyframeList</em> as the frames parameter.
</ol>

</div>

<h3 class="heading settled heading" data-level=3.2 id=web-animations-instantiation><span class=secno>3.2 </span><span class=content>Web Animations Instantiation</span><a class=self-link href=#web-animations-instantiation></a></h3>

<div data-link-spec=css-animations>

<p>For CSS Animations, mappings into the Web Animations model are established
pairwise between a specific <a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-animationeffect title=animationeffect>AnimationEffect</a>, the 
<dfn data-dfn-type=dfn data-noexport="" id=animating-effect>animating effect<a class=self-link href=#animating-effect></a></dfn>, and a specific element, the 
<dfn data-dfn-type=dfn data-noexport="" id=animating-element>animating element<a class=self-link href=#animating-element></a></dfn>.

<p>When a CSS Animation is to be started, the value of <a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-name title=animation-name>animation-name</a> is used
as an index into the <a data-link-spec=css-animations data-link-type=dfn href=#keyframes title=keyframes>keyframes</a> map, and the matching 
<a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-animationeffect title=animationeffect>AnimationEffect</a> (if any) is used to instantiate the 
<a data-link-spec=css-animations data-link-type=dfn href=#animating-effect title="animating effect">animating effect</a> by following the procedure defined below 
(see <a data-section="" href=#instantiating-an-animating-effect>§3.4 Instantiating the animating effect
</a>).

<p>When a CSS Animation is started an <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> is constructed and 
associated with a <a data-link-spec=css-animations data-link-type=dfn href=#player title=player>Player</a> on the <a data-link-spec=css-animations data-link-type=dfn href=#document-timeline title="document timeline">Document Timeline</a>. The animation
is configured as follows:

<p><ul>
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#target-element title="target element">target element</a> is set to the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#start-delay title="start delay">start delay</a> is set to the current used value of the
<a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-delay title=animation-delay>animation-delay</a> property for the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#iteration-duration title="iteration duration">iteration duration</a> is set to the current used value of the 
<a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-duration title=animation-duration>animation-duration</a> property for the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#iteration-count title="iteration count">iteration count</a> is set to the current used value of the 
<a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-iteration-count title=animation-iteration-count>animation-iteration-count</a> property for the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#direction title=direction>direction</a> is set to the current used value of the 
<a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-direction title=animation-direction>animation-direction</a> property for the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#fill-mode title="fill mode">fill mode</a> is set to the current used value of the 
<a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-fill-mode title=animation-fill-mode>animation-fill-mode</a> property for the <a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>.
<li>The <a data-link-spec=css-animations data-link-type=dfn href=#animation-effect title="animation effect">animation effect</a> is set to the <a data-link-spec=css-animations data-link-type=dfn href=#animating-effect title="animating effect">animating effect</a>
</ul>

<p class=issue id=issue-0f1dc13a><a class=self-link href=#issue-0f1dc13a></a> Deal with animation-play-state

<p class=issue id=issue-66af4048><a class=self-link href=#issue-66af4048></a> Explain where we need to cancel the Player for a css animation.

<h3 class="heading settled heading" data-level=3.3 id=css-animations-events><span class=secno>3.3 </span><span class=content>CSS Animations Events</span><a class=self-link href=#css-animations-events></a></h3>

<p>The <a class=idl-code data-link-spec=css-animations data-link-type=event href=http://dev.w3.org/csswg/css-animations-1/#dom-animationevent-animationstart title=animationstart>animationstart</a> event is triggered to fire each time the
corresponding <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> enters the <a data-link-spec=css-animations data-link-type=dfn href=#active-phase title="active phase">active phase</a> or
<a data-link-spec=css-animations data-link-type=dfn href=#after-phase title="after phase">after phase</a> during a <a data-link-spec=css-animations data-link-type=dfn href=#sample title=sample>sample</a>.

<p>The <a class=idl-code data-link-spec=css-animations data-link-type=event href=http://dev.w3.org/csswg/css-animations-1/#dom-animationevent-animationiteration title=animationiteration>animationiteration</a> event is triggered to fire, on each <a data-link-spec=css-animations data-link-type=dfn href=#sample title=sample>sample</a>
where all of the following conditions are met:
<ol>
<li>the corresponding <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> is in the <a data-link-spec=css-animations data-link-type=dfn href=#active-phase title="active phase">active phase</a>
<li>the corresponding <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> was in the <a data-link-spec=css-animations data-link-type=dfn href=#active-phase title="active phase">active phase</a> on the
last <a data-link-spec=css-animations data-link-type=dfn href=#sample title=sample>sample</a>
<li>the corresponding <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> has a <a data-link-spec=css-animations data-link-type=dfn href=#current-iteration title="current iteration">current iteration</a> which is
different to the
<a data-link-spec=css-animations data-link-type=dfn href=#current-iteration title="current iteration">current iteration</a> of the last <a data-link-spec=css-animations data-link-type=dfn href=#sample title=sample>sample</a>.
</ol>

<p>The <a class=idl-code data-link-spec=css-animations data-link-type=event href=http://dev.w3.org/csswg/css-animations-1/#dom-animationevent-animationend title=animationend>animationend</a> event is triggered to fire each time the
corresponding <a data-link-spec=css-animations data-link-type=dfn href=#animation title=animation>Animation</a> enters the <a data-link-spec=css-animations data-link-type=dfn href=#after-phase title="after phase">after phase</a> during a
<a data-link-spec=css-animations data-link-type=dfn href=#sample title=sample>sample</a>.

<h3 class="heading settled heading" data-level=3.4 id=instantiating-an-animating-effect><span class=secno>3.4 </span><span class=content>Instantiating the animating effect
</span><a class=self-link href=#instantiating-an-animating-effect></a></h3>

<p>The <a data-link-spec=css-animations data-link-type=dfn href=#animating-effect title="animating effect">animating effect</a> is instantiated from an 
<a class=idl-code data-link-spec=css-animations data-link-type=interface href=#dom-animationeffect title=animationeffect>AnimationEffect</a> (the <em>reference effect</em>) stored in the 
<a class=idl-code data-link-spec=css-animations data-link-type=attribute href=#dom-document-keyframes title=keyframes>keyframes</a> attribute using the following process:

<p class=issue id=issue-2e72571b><a class=self-link href=#issue-2e72571b></a> turn this into boring old specificese

<dl>
<dt>If the <em>reference effect</em> is a KeyframeEffect which was converted 
from a CSS <a class=css-code data-link-spec=css-animations data-link-type=at-rule href=http://dev.w3.org/csswg/css-animations-1/#at-ruledef-keyframes title=@keyframes>@keyframes</a> rule using the process 
defined in <a data-section="" href=#conversion-of-css-keyframes>§3.1.3 Converting a CSS Keyframes rule into a 
KeyframeEffect</a>:
<dd>
<ol>
<li>The <em>result effect</em> is created as a clone of the 
<em>reference effect</em>.
<li>Convert "add" keyframes at an offset of 0 and 1 by snapshotting
their referenced properties from the computed style of the 
<a data-link-spec=css-animations data-link-type=dfn href=#animating-element title="animating element">animating element</a>, then changing the keyframe to a "replace" keyframe.
<li>Set the <a data-link-spec=css-animations data-link-type=dfn href=#easing title=easing>easing</a> of all keyframes which do not have an <a data-link-spec=css-animations data-link-type=dfn href=#easing title=easing>easing</a>
to the value of <a class=property data-link-spec=css-animations data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#propdef-animation-timing-function title=animation-timing-function>animation-timing-function</a>.
</ol>
<dt>Otherwise
<dd> The <a data-link-spec=css-animations data-link-type=dfn href=#animating-effect title="animating effect">animating effect</a> is the <em>reference effect</em>.

<h2 class="heading settled heading" data-level=4 id=exposure-in-the-web-animations-api><span class=secno>4 </span><span class=content>Exposure in the Web Animations API</span><a class=self-link href=#exposure-in-the-web-animations-api></a></h2>

<p><a data-link-spec=css-animations data-link-type=dfn href=#player title=player>Player</a>s generated by CSS Animations and CSS Transitions are accessible
via <a data-link-spec=css-animations data-link-type=dfn href=#getanimationplayers title=getanimationplayers>getAnimationPlayers</a> with the restriction that <a data-link-spec=css-animations data-link-type=dfn href=#source title=source>source</a> will
point to a read-only <a data-link-spec=css-animations data-link-type=dfn href=#timeditem title=timeditem>TimedItem</a> which disallows changes to its
<a data-link-spec=css-animations data-link-type=dfn href=#specified-timing title="specified timing">specified timing</a> and <a data-link-spec=css-animations data-link-type=dfn href=#effect title=effect>effect</a>.

<p class=note>Note: The <a data-link-spec=css-animations data-link-type=dfn href=#player title=player>Player</a> remains fully functional. The <a data-link-spec=css-animations data-link-type=dfn href=#source title=source>source</a>,
<a data-link-spec=css-animations data-link-type=dfn href=#playbackrate title=playbackrate>playbackRate</a>, <a data-link-spec=css-animations data-link-type=dfn href=#currenttime title=currenttime>currentTime</a>, startTime and play control methods will
be live and function as normal.

</dl></div>

<div style=display:none>
REMOVE ME: Definitions that should be resolved by Web Animations

<p><dfn data-dfn-type=dfn data-noexport="" id=animation>animation<a class=self-link href=#animation></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=player>player<a class=self-link href=#player></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=document-timeline>document timeline<a class=self-link href=#document-timeline></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=target-element>target element<a class=self-link href=#target-element></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=start-delay>start delay<a class=self-link href=#start-delay></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=iteration-duration>iteration duration<a class=self-link href=#iteration-duration></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=timing-function>timing function<a class=self-link href=#timing-function></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=animation-effect>animation effect<a class=self-link href=#animation-effect></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=keyframe-animation-effect>keyframe animation effect<a class=self-link href=#keyframe-animation-effect></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=keyframes>keyframes<a class=self-link href=#keyframes></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=after-phase>after phase<a class=self-link href=#after-phase></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=custom-player-priority>custom player priority<a class=self-link href=#custom-player-priority></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=cancel>cancel<a class=self-link href=#cancel></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=getanimationplayers>getanimationplayers<a class=self-link href=#getanimationplayers></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=timeditem>TimedItem<a class=self-link href=#timeditem></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=source>source<a class=self-link href=#source></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=specified-timing>specified timing<a class=self-link href=#specified-timing></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=effect>effect<a class=self-link href=#effect></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=playbackrate>playbackRate<a class=self-link href=#playbackrate></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=currenttime>currentTime<a class=self-link href=#currenttime></a></dfn>
<dfn class=idl-code data-dfn-type=interface data-export="" id=dom-keyframeeffect>keyframeEffect<a class=self-link href=#dom-keyframeeffect></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=offset>offset<a class=self-link href=#offset></a></dfn>
<dfn class=idl-code data-dfn-type=interface data-export="" id=dom-animationeffect>animationEffect<a class=self-link href=#dom-animationeffect></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=sample>sample<a class=self-link href=#sample></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=easing>easing<a class=self-link href=#easing></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=iteration-count>iteration count<a class=self-link href=#iteration-count></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=direction>direction<a class=self-link href=#direction></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=fill-mode>fill mode<a class=self-link href=#fill-mode></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=current-iteration>current iteration<a class=self-link href=#current-iteration></a></dfn>
<dfn data-dfn-type=dfn data-noexport="" id=active-phase>active phase<a class=self-link href=#active-phase></a></dfn>
</div>
<h2 class="no-ref no-num heading settled heading" id=conformance><span class=content>
Conformance</span><a class=self-link href=#conformance></a></h2>

<h3 class="no-ref heading settled heading" id=conventions><span class=content>
Document conventions</span><a class=self-link href=#conventions></a></h3>

    <p>Conformance requirements are expressed with a combination of
    descriptive assertions and RFC 2119 terminology. The key words "MUST",
    "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
    "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this
    document are to be interpreted as described in RFC 2119.
    However, for readability, these words do not appear in all uppercase
    letters in this specification.

    <p>All of the text of this specification is normative except sections
    explicitly marked as non-normative, examples, and notes. <a data-biblio-type=normative data-link-type=biblio href=#rfc2119 title=rfc2119>[RFC2119]</a></p>

    <p>Examples in this specification are introduced with the words "for example"
    or are set apart from the normative text with <code>class="example"</code>,
    like this:

    <div class=example>
        <p>This is an example of an informative example.</p>
    </div>

    <p>Informative notes begin with the word "Note" and are set apart from the
    normative text with <code>class="note"</code>, like this:

    <p class=note>Note, this is an informative note.</p>

<h3 class="no-ref heading settled heading" id=conformance-classes><span class=content>
Conformance classes</span><a class=self-link href=#conformance-classes></a></h3>

    <p>Conformance to this specification
    is defined for three conformance classes:
    <dl>
        <dt>style sheet
            <dd>A <a href=http://www.w3.org/TR/CSS21/conform.html#style-sheet>CSS
            style sheet</a>.
        <dt>renderer
            <dd>A <a href=http://www.w3.org/TR/CSS21/conform.html#user-agent>UA</a>
            that interprets the semantics of a style sheet and renders
            documents that use them.
        <dt>authoring tool
            <dd>A <a href=http://www.w3.org/TR/CSS21/conform.html#user-agent>UA</a>
            that writes a style sheet.
    </dl>

    <p>A style sheet is conformant to this specification
    if all of its statements that use syntax defined in this module are valid
    according to the generic CSS grammar and the individual grammars of each
    feature defined in this module.

    <p>A renderer is conformant to this specification
    if, in addition to interpreting the style sheet as defined by the
    appropriate specifications, it supports all the features defined
    by this specification by parsing them correctly
    and rendering the document accordingly. However, the inability of a
    UA to correctly render a document due to limitations of the device
    does not make the UA non-conformant. (For example, a UA is not
    required to render color on a monochrome monitor.)

    <p>An authoring tool is conformant to this specification
    if it writes style sheets that are syntactically correct according to the
    generic CSS grammar and the individual grammars of each feature in
    this module, and meet all other conformance requirements of style sheets
    as described in this module.

<h3 class="no-ref heading settled heading" id=partial><span class=content>
Partial implementations</span><a class=self-link href=#partial></a></h3>

    <p>So that authors can exploit the forward-compatible parsing rules to
    assign fallback values, CSS renderers <strong>must</strong>
    treat as invalid (and <a href=http://www.w3.org/TR/CSS21/conform.html#ignore>ignore
    as appropriate</a>) any at-rules, properties, property values, keywords,
    and other syntactic constructs for which they have no usable level of
    support. In particular, user agents <strong>must not</strong> selectively
    ignore unsupported component values and honor supported values in a single
    multi-value property declaration: if any value is considered invalid
    (as unsupported values must be), CSS requires that the entire declaration
    be ignored.</p>

<h3 class="no-ref heading settled heading" id=experimental><span class=content>
Experimental implementations</span><a class=self-link href=#experimental></a></h3>

    <p>To avoid clashes with future CSS features, the CSS2.1 specification
    reserves a <a href=http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords>prefixed
    syntax</a> for proprietary and experimental extensions to CSS.

    <p>Prior to a specification reaching the Candidate Recommendation stage
    in the W3C process, all implementations of a CSS feature are considered
    experimental. The CSS Working Group recommends that implementations
    use a vendor-prefixed syntax for such features, including those in
    W3C Working Drafts. This avoids incompatibilities with future changes
    in the draft.
    </p>

<h3 class="no-ref heading settled heading" id=testing><span class=content>
Non-experimental implementations</span><a class=self-link href=#testing></a></h3>

    <p>Once a specification reaches the Candidate Recommendation stage,
    non-experimental implementations are possible, and implementors should
    release an unprefixed implementation of any CR-level feature they
    can demonstrate to be correctly implemented according to spec.

    <p>To establish and maintain the interoperability of CSS across
    implementations, the CSS Working Group requests that non-experimental
    CSS renderers submit an implementation report (and, if necessary, the
    testcases used for that implementation report) to the W3C before
    releasing an unprefixed implementation of any CSS features. Testcases
    submitted to W3C are subject to review and correction by the CSS
    Working Group.

    <p>Further information on submitting testcases and implementation reports
    can be found from on the CSS Working Group’s website at
    <a href=http://www.w3.org/Style/CSS/Test/>http://www.w3.org/Style/CSS/Test/</a>.
    Questions should be directed to the
    <a href=http://lists.w3.org/Archives/Public/public-css-testsuite>public-css-testsuite@w3.org</a>
    mailing list.

<h2 class="no-num no-ref heading settled heading" id=references><span class=content>
References</span><a class=self-link href=#references></a></h2>

<h3 class="no-num no-ref heading settled heading" id=normative><span class=content>
Normative References</span><a class=self-link href=#normative></a></h3>
<div data-fill-with=normative-references><dl><dt id=rfc2119 title=RFC2119><a class=self-link href=#rfc2119></a>[RFC2119]<dd>S. Bradner. <a href=http://www.ietf.org/rfc/rfc2119.txt>Key words for use in RFCs to Indicate Requirement Levels</a>. URL: <a href=http://www.ietf.org/rfc/rfc2119.txt>http://www.ietf.org/rfc/rfc2119.txt</a></dl></div>

<h3 class="no-num no-ref heading settled heading" id=informative><span class=content>
Informative References</span><a class=self-link href=#informative></a></h3>
<div data-fill-with=informative-references><dl><dt id=css3-animations title=CSS3-ANIMATIONS><a class=self-link href=#css3-animations></a>[CSS3-ANIMATIONS]<dd>Dean Jackson; et al. <a href=http://www.w3.org/TR/2013/WD-css3-animations-20130219/>CSS Animations</a>. 19 February 2013. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2013/WD-css3-animations-20130219/>http://www.w3.org/TR/2013/WD-css3-animations-20130219/</a><dt id=css3-transitions title=CSS3-TRANSITIONS><a class=self-link href=#css3-transitions></a>[CSS3-TRANSITIONS]<dd>Dean Jackson; et al. <a href=http://www.w3.org/TR/2013/WD-css3-transitions-20130212/>CSS Transitions</a>. 12 February 2013. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2013/WD-css3-transitions-20130212/>http://www.w3.org/TR/2013/WD-css3-transitions-20130212/</a><dt id=svg12 title=SVG12><a class=self-link href=#svg12></a>[SVG12]<dd>Dean Jackson; Craig Northway. <a href=http://www.w3.org/TR/2005/WD-SVG12-20050413/>Scalable Vector Graphics (SVG) Full 1.2 Specification</a>. 13 April 2005. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2005/WD-SVG12-20050413/>http://www.w3.org/TR/2005/WD-SVG12-20050413/</a></dl></div>

<h2 class="no-num no-ref heading settled heading" id=index><span class=content>
Index</span><a class=self-link href=#index></a></h2>
<div data-fill-with=index><ul class=indexlist>
<li>active phase, <a href=#active-phase title="section 3.2">3.2</a>
<li>after phase, <a href=#after-phase title="section 3.2">3.2</a>
<li>animating effect, <a href=#animating-effect title="section 3.2">3.2</a>
<li>animating element, <a href=#animating-element title="section 3.2">3.2</a>
<li>animation, <a href=#animation title="section 3.2">3.2</a>
<li>animationEffect, <a href=#dom-animationeffect title="section 3.2">3.2</a>
<li>animation effect, <a href=#animation-effect title="section 3.2">3.2</a>
<li>cancel, <a href=#cancel title="section 3.2">3.2</a>
<li>CSSKeyframesMap, <a href=#dom-csskeyframesmap title="section 3.1.1">3.1.1</a>
<li>current iteration, <a href=#current-iteration title="section 3.2">3.2</a>
<li>currentTime, <a href=#currenttime title="section 3.2">3.2</a>
<li>custom player priority, <a href=#custom-player-priority title="section 3.2">3.2</a>
<li>direction, <a href=#direction title="section 3.2">3.2</a>
<li>document timeline, <a href=#document-timeline title="section 3.2">3.2</a>
<li>easing, <a href=#easing title="section 3.2">3.2</a>
<li>effect, <a href=#effect title="section 3.2">3.2</a>
<li>fill mode, <a href=#fill-mode title="section 3.2">3.2</a>
<li>getanimationplayers, <a href=#getanimationplayers title="section 3.2">3.2</a>
<li>iteration count, <a href=#iteration-count title="section 3.2">3.2</a>
<li>iteration duration, <a href=#iteration-duration title="section 3.2">3.2</a>
<li>keyframe animation effect, <a href=#keyframe-animation-effect title="section 3.2">3.2</a>
<li>keyframeEffect, <a href=#dom-keyframeeffect title="section 3.2">3.2</a>
<li>keyframes<ul><li>attribute for Document, <a href=#dom-document-keyframes title="section 3.1.2">3.1.2</a>
<li>definition of, <a href=#keyframes title="section 3.2">3.2</a>
</ul><li>offset, <a href=#offset title="section 3.2">3.2</a>
<li>playbackRate, <a href=#playbackrate title="section 3.2">3.2</a>
<li>player, <a href=#player title="section 3.2">3.2</a>
<li>sample, <a href=#sample title="section 3.2">3.2</a>
<li>source, <a href=#source title="section 3.2">3.2</a>
<li>specified timing, <a href=#specified-timing title="section 3.2">3.2</a>
<li>start delay, <a href=#start-delay title="section 3.2">3.2</a>
<li>String, <a href=#dom-string title="section 3.1">3.1</a>
<li>target element, <a href=#target-element title="section 3.2">3.2</a>
<li>TimedItem, <a href=#timeditem title="section 3.2">3.2</a>
<li>timing function, <a href=#timing-function title="section 3.2">3.2</a>
<li>transitioning element, <a href=#transitioning-element title="section 2">2</a>
<li>transitioning property, <a href=#transitioning-property title="section 2">2</a>
</ul></div>

<h2 class="no-num no-ref heading settled heading" id=property-index><span class=content>
Property index</span><a class=self-link href=#property-index></a></h2>
<div data-fill-with=property-index><p>No properties defined.</div>


<h2 class="no-num heading settled" id=issues-index><span class=content>Issues Index</span><a class=self-link href=#issues-index></a></h2><div style="counter-reset: issue"><div class=issue> Should the KeyframeEffects generated by @keyframes rules be read-only?

<a href=#issue-1a6a93a1> ↵ </a></div><div class=issue> Deal with animation-play-state

<a href=#issue-0f1dc13a> ↵ </a></div><div class=issue> Explain where we need to cancel the Player for a css animation.

<a href=#issue-66af4048> ↵ </a></div><div class=issue> turn this into boring old specificese

<a href=#issue-2e72571b> ↵ </a></div></div>