Skip to content

Commit dadb67b

Browse files
authored
[css-animations-2] Added animation-delay-start/end and made animation-delay a shorthand (#14167)
* Added -delay-start/end and made -delay a shorthand * Add a note about backward compat of animation-delay with a single value
1 parent e5e48fd commit dadb67b

1 file changed

Lines changed: 80 additions & 10 deletions

File tree

css-animations-2/Overview.bs

Lines changed: 80 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ spec:web-animations-1; type:dfn;
6969
text:play state
7070
text:playback direction
7171
text:start delay
72+
text:end delay
7273
text:target element
7374
text:unresolved
7475
spec:web-animations-2; type:dfn;
@@ -530,10 +531,79 @@ The above requirements do not apply
530531
if the animation's play state is being overridden by the Web Animations API
531532
as described in [[#animations]].
532533

533-
## The 'animation-delay' property ## {#animation-delay}
534+
## The 'animation-delay-start' property ## {#animation-delay-start}
534535

535-
The 'animation-delay' property specifies the [=start delay=]
536-
of the animation's associated [=animation effect=].
536+
The 'animation-delay-start' property specifies the [=start delay=] of the
537+
animation's associated [=animation effect=], which
538+
defines when the animation will start. It allows an animation
539+
to begin execution some time after it is applied,
540+
or to appear to have begun execution some time <em>before</em> it is applied.
541+
542+
<pre class='propdef'>
543+
Name: animation-delay-start
544+
Value: <<time>>#
545+
Initial: 0s
546+
Applies to: all elements
547+
Inherited: no
548+
Animation type: not animatable
549+
Percentages: N/A
550+
Computed value: list, each item a duration
551+
Canonical order: per grammar
552+
</pre>
553+
554+
<dl>
555+
<dt><dfn value for=animation-delay-start><<time>></dfn>
556+
<dd>
557+
The <<time>> defines how long of a delay there is between the start of the animation
558+
(when the animation is applied to the element via these properties)
559+
and when it begins executing.
560+
A delay of ''0s'' (the initial value) means that the animation will execute as soon as it is applied.
561+
562+
A negative delay is <strong>valid</strong>.
563+
Similar to a delay of ''0s'', it means that the animation executes immediately,
564+
but is automatically progressed by the absolute value of the delay,
565+
as if the animation had started the specified time in the past,
566+
and so it appears to start partway through its [=active duration=].
567+
If an animation's keyframes have an implied starting value,
568+
the values are taken from the time the animation starts,
569+
not some time in the past.
570+
</dl>
571+
572+
## The 'animation-delay-end' property ## {#animation-delay-end}
573+
574+
The 'animation-delay-end' property specifies the [=end delay=] of the
575+
animation's associated [=animation effect=], which
576+
defines when the animation will start when it is reversed.
577+
578+
<pre class='propdef'>
579+
Name: animation-delay-end
580+
Value: <<time [0s,∞]>>#
581+
Initial: 0s
582+
Applies to: all elements
583+
Inherited: no
584+
Animation type: not animatable
585+
Percentages: N/A
586+
Computed value: list, each item a duration
587+
Canonical order: per grammar
588+
</pre>
589+
590+
Issue: Should animation-delay-end support negative values? If so, what would it mean?
591+
592+
Issue: Should animation-delay-end be added to the animation shorthand?
593+
594+
## The 'animation-delay' shorthand ## {#animation-delay}
595+
596+
<pre class="propdef shorthand">
597+
Name: animation-delay
598+
Value: [ <<'animation-delay-start'>> <<'animation-delay-end'>>? ]#
599+
</pre>
600+
601+
The 'animation-delay' property is a [=shorthand property|shorthand=]
602+
that sets 'animation-delay-start' and 'animation-delay-end'
603+
together in a single declaration. Specifying a single value will
604+
set the 'animation-delay-start' to that value, and will not affect
605+
the value of 'animation-delay-end', for backward compatibility with
606+
the 'animation-delay' previous longhand behavior.
537607

538608
## The 'animation-fill-mode' property ## {#animation-fill-mode}
539609

@@ -557,7 +627,7 @@ Animation type: not animatable
557627
Canonical order: per grammar
558628
</pre>
559629

560-
<span class=prod><dfn>&lt;single-animation-composition></dfn> = replace | add | accumulate</span>
630+
<span class=prod><dfn type>&lt;single-animation-composition></dfn> = replace | add | accumulate</span>
561631

562632
The values of 'animation-composition' have the meaning defined for the
563633
corresponding values of the <a>composite operation</a> defined in Web
@@ -596,9 +666,9 @@ keyframe specifying each property.
596666
</pre>
597667

598668
If these two animations are applied to the same element, normally only
599-
one animation would apply, but by specifying ''add'' as the
600-
'animation-composition' on the second animation, the result of the two
601-
animations will be combined.
669+
one animation would apply, but by specifying ''animation-composition/add''
670+
as the 'animation-composition' on the second animation, the result of
671+
the two animations will be combined.
602672

603673
Since CSS Transitions [[CSS3-TRANSITIONS]] have a lower composite
604674
order, it is possible to use 'animation-composition' to combine CSS
@@ -658,7 +728,7 @@ Animation Type: not animatable
658728
</pre>
659729

660730
<pre class=prod>
661-
<dfn>&lt;single-animation-timeline></dfn> = auto | none | <<dashed-ident>> | <<scroll()>> | <<view()>>
731+
<dfn type>&lt;single-animation-timeline></dfn> = auto | none | <<dashed-ident>> | <<scroll()>> | <<view()>>
662732
</pre>
663733

664734
The 'animation-timeline' property is similar to properties like 'animation-name'
@@ -713,7 +783,7 @@ to the simultaneously-applied timeline specified in 'animation-timeline'.
713783

714784
The 'animation' shorthand property syntax is as follows:
715785

716-
<span class=prod><dfn>&lt;single-animation></dfn> = <<'animation-duration'>> || <<easing-function>> || <<'animation-delay'>> || <<single-animation-iteration-count>> || <<single-animation-direction>> || <<single-animation-fill-mode>> || <<single-animation-play-state>> || [ none | <<keyframes-name>> ] || <<single-animation-timeline>></span>
786+
<span class=prod><dfn type>&lt;single-animation></dfn> = <<'animation-duration'>> || <<easing-function>> || <<'animation-delay-start'>> || <<single-animation-iteration-count>> || <<single-animation-direction>> || <<single-animation-fill-mode>> || <<single-animation-play-state>> || [ none | <<keyframes-name>> ] || <<single-animation-timeline>></span>
717787

718788

719789
<!-- Big Text: events
@@ -995,7 +1065,7 @@ console.log(anim.playState); // Should be 'running'.
9951065
</li>
9961066
<li>Defined that event triggers can be defined to have enter/exit pairs, like timelines.</li>
9971067
<li>Separated trigger concept from trigger instance</li>
998-
<li>Changed initial value of the exit ranges to 'auto', to match the start ranges
1068+
<li>Changed initial value of the exit ranges to auto, to match the start ranges
9991069
</li>
10001070
<li>Changed "animation-trigger-behavior" to "animation-trigger" and largely rewrote the definition
10011071
(<a href="https://github.com/w3c/csswg-drafts/pull/13009">PR 13009</a>)

0 commit comments

Comments
 (0)