Skip to content

Commit 4dce6d1

Browse files
committed
[web-animations-1][editorial] Improve DFNs for direction control and timing function
* Integrate normative and non-normative text of “direction control” and give each playback direction value a proper definition. * DFN a term for the effect-wide easing function, and clarify its effect. * DFN “keyframe-specific timing function” for parallelism and easier referencing.
1 parent b6b65b8 commit 4dce6d1

File tree

1 file changed

+38
-29
lines changed

1 file changed

+38
-29
lines changed

web-animations-1/Overview.bs

Lines changed: 38 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3190,56 +3190,61 @@ Animation effects {#animation-effects}
31903190
a <dfn>playback direction</dfn> parameter
31913191
which takes one of the following values:
31923192

3193-
* normal,
3194-
* reverse,
3195-
* alternate, or
3196-
* alternate-reverse.
3193+
<dl dfn-for="playback direction">
31973194

3198-
The semantics of these values are incorporated into
3199-
the calculation of the [=directed progress=] which follows.
3200-
3201-
<div class=informative-bg>
3202-
<em>This section is non-normative</em>
3203-
3204-
A non-normative definition of these values is as follows:
3205-
3206-
: normal
3195+
: <dfn>normal</dfn>
32073196
::
32083197
All iterations are played as specified.
32093198

3210-
: reverse
3199+
: <dfn>reverse</dfn>
32113200
::
32123201
All iterations are played in the reverse direction
32133202
from the way they are specified.
32143203

3215-
: alternate
3204+
: <dfn>alternate</dfn>
32163205
::
32173206
Even iterations are played as specified;
32183207
odd iterations are played in the reverse direction
32193208
from the way they are specified.
32203209

3221-
: alternate-reverse
3210+
: <dfn>alternate-reverse</dfn>
32223211
::
32233212
Even iterations are played in the reverse direction
32243213
from the way they are specified;
32253214
odd iterations are played as specified.
32263215

3227-
</div>
3216+
</dl>
3217+
3218+
The semantics of these values are incorporated into
3219+
the calculation of the [=directed progress=]
3220+
in [[#calculating-the-directed-progress]].
32283221

3229-
### Time transformations ### {#time-transformations}
3222+
### Easing (effect timing transformations) ### {#time-transformations}
32303223

32313224
It is often desirable to control the rate
32323225
at which an [=animation effect=] progresses.
32333226
For example, easing the rate of animation
32343227
can create a sense of momentum and produce a more natural effect.
3235-
The CSS Easing Functions Module [[!CSS-EASING-1]]
3228+
The <a href="https://www.w3.org/TR/css-easing/">CSS Easing Functions Module</a>
32363229
defines [=timing functions=] for this purpose.
3230+
[[!CSS-EASING-1]]
32373231

3238-
[=Animation effects=] have
3239-
one [=timing function=] associated with them.
3240-
The default [=timing function=]
3232+
[=Animation effects=] each have
3233+
an <dfn for="animation effect">effect timing function</dfn>,
3234+
which is a [=timing function=]
3235+
used to transform progress across the entirety of each iteration.
3236+
See [[#calculating-the-transformed-progress]].
3237+
3238+
The default [=effect timing function=]
32413239
is the [=linear timing function=].
32423240

3241+
Note: Specific [[#types-of-animation-effects|types of animation effects]]
3242+
may provide additional time transformations.
3243+
For example, [=keyframe effects=] can provide
3244+
[=keyframe-specific timing functions=]
3245+
that can apply a [=timing function=]
3246+
specifically between two adjacent keyframes.
3247+
32433248
Calculating progress {#core-animation-effect-calculations}
32443249
--------------------
32453250

@@ -3470,19 +3475,21 @@ Calculating progress {#core-animation-effect-calculations}
34703475

34713476
<dl class=switch>
34723477

3473-
: If [=playback direction=] is <code>normal</code>,
3478+
: If [=playback direction=] is [=playback direction/normal=],
34743479
::
34753480
Let the |current direction| be forwards.
34763481

3477-
: If [=playback direction=] is <code>reverse</code>,
3482+
: If [=playback direction=] is [=playback direction/reverse=],
34783483
::
34793484
Let the |current direction| be reverse.
34803485

3481-
: Otherwise,
3486+
: Otherwise
3487+
(the [=playback direction=] is
3488+
[=playback direction/alternate=] or [=playback direction/alternate-reverse=])p,
34823489
::
34833490
1. Let |d| be the [=current iteration index=].
34843491

3485-
1. If [=playback direction=] is <code>alternate-reverse</code>
3492+
1. If [=playback direction=] is [=playback direction/alternate-reverse=]
34863493
increment |d| by 1.
34873494

34883495
1. If <code><var>d</var> % 2 == 0</code>,
@@ -3520,7 +3527,7 @@ Calculating progress {#core-animation-effect-calculations}
35203527
and <var>going forwards</var> is false.
35213528

35223529
1. Return the result of evaluating
3523-
the [=animation effect=]’s [=timing function=]
3530+
the [=effect timing function=]
35243531
passing [=directed progress=] as the <a spec=css-easing>input progress value</a>
35253532
and |before flag| as the <a spec=css-easing>before flag</a>.
35263533

@@ -3748,11 +3755,13 @@ Keyframe effects {#keyframe-effects}
37483755
or have unsupported values is defined in
37493756
[[#the-effect-value-of-a-keyframe-animation-effect]].
37503757

3751-
Each keyframe also has a [=timing function=] associated with it
3758+
Each keyframe also has a <dfn>keyframe-specific timing function</dfn>
3759+
associated with it, which is a [=timing function=]
37523760
that is applied to the period of time between
37533761
the keyframe on which it is specified
37543762
and the <em>next</em> keyframe in the list.
3755-
The [=timing function=] specified on the last keyframe in the list
3763+
3764+
Note: The [=timing function=] specified on the last keyframe in the list
37563765
is never applied.
37573766

37583767
Each [=keyframe=] may have a <dfn>keyframe-specific composite operation</dfn>

0 commit comments

Comments
 (0)