@@ -121,14 +121,8 @@ end points <var ignore>P0</var> and <var ignore>P3</var> are fixed at (0, 0) and
121121The <var> x</var> coordinates of <var> P1</var> and <var> P2</var> are
122122restricted to the range [0, 1] .
123123
124- The mapping from input progress to output progress is performed by
125- determining the corresponding <var> y</var> value ([=output progress value=] ) for
126- a given <var> x</var> value ([=input progress value=] ).
127- The evaluation of this curve is covered in many sources such as
128- [[FUND-COMP-GRAPHICS]] .
129-
130124<figure>
131- <img src="cubic-bezier-timing-curve.svg" width="500 "
125+ <img src="cubic-bezier-timing-curve.svg" width="400 "
132126 alt="A cubic Bezier curve used as a timing function.">
133127 <figcaption>
134128 A cubic Bézier curve used as a timing function.<br>
@@ -139,33 +133,8 @@ The evaluation of this curve is covered in many sources such as
139133 </figcaption>
140134</figure>
141135
142- For [=input progress values=] outside the range [0, 1] , the curve is extended
143- infinitely using tangent of the curve at the closest endpoint as follows:
144-
145- * For [=input progress values=] less than zero,
146-
147- 1. If the <var> x</var> value of P1 is greater than zero, use
148- a straight line that passes through P1 and P0 as the tangent.
149-
150- 1. Otherwise, if the <var> x</var> value of P2 is greater than
151- zero, use a straight line that passes through P2 and P0 as the tangent.
152-
153- 1. Otherwise, let the [=output progress value=] be zero for all
154- [=input progress values=] in the range [-∞, 0).
155-
156- * For [=input progress values=] greater than one,
157-
158- 1. If the <var> x</var> value of P2 is less than one, use
159- a straight line that passes through P2 and P3 as the tangent.
160-
161- 1. Otherwise, if the <var> x</var> value of P1 is less than
162- one, use a straight line that passes through P1 and P3 as the tangent.
163-
164- 1. Otherwise, let the [=output progress value=] be one for all
165- [=input progress values=] in the range (1, ∞].
166-
167- A <a>cubic Bézier timing function</a> may be specified as a string
168- using the following syntax (using notation from [[!CSS3VAL]] ):
136+ A <a>cubic Bézier timing function</a> has the following syntax
137+ (using notation from [[!CSS3VAL]] ):
169138
170139<div class="prod"> <dfn type><cubic-bezier-timing-function></dfn> =
171140 ''ease'' | ''ease-in'' | ''ease-out'' | ''ease-in-out'' |
@@ -178,13 +147,13 @@ The meaning of each value is as follows:
178147<dl dfn-type="value" dfn-for="cubic-bezier-timing-function, <cubic-bezier-timing-function> ">
179148
180149: <dfn>ease</dfn>
181- :: Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1).
150+ :: Equivalent to '' cubic-bezier(0.25, 0.1, 0.25, 1)'' .
182151: <dfn>ease-in</dfn>
183- :: Equivalent to cubic-bezier(0.42, 0, 1, 1).
152+ :: Equivalent to '' cubic-bezier(0.42, 0, 1, 1)'' .
184153: <dfn>ease-out</dfn>
185- :: Equivalent to cubic-bezier(0, 0, 0.58, 1).
154+ :: Equivalent to '' cubic-bezier(0, 0, 0.58, 1)'' .
186155: <dfn>ease-in-out</dfn>
187- :: Equivalent to cubic-bezier(0.42, 0, 0.58, 1).
156+ :: Equivalent to '' cubic-bezier(0.42, 0, 0.58, 1)'' .
188157: <dt> <dfn function lt="cubic-bezier()">cubic-bezier(<<number>>, <<number>>, <<number>>, <<number>>)</dfn> </dt>
189158:: Specifies a <a>cubic Bézier timing function</a> .
190159 The four numbers specify points <var> P1</var> and <var> P2</var> of
@@ -206,6 +175,39 @@ The keyword values listed above are illustrated below.
206175 </figcaption>
207176</figure>
208177
178+ ### Output of a cubic bézier timing function ### {#cubic-bezier-algo}
179+
180+ The mapping from input progress to output progress is performed by
181+ determining the corresponding <var> y</var> value ([=output progress value=] ) for
182+ a given <var> x</var> value ([=input progress value=] ).
183+ The evaluation of this curve is covered in many sources such as
184+ [[FUND-COMP-GRAPHICS]] .
185+
186+ For [=input progress values=] outside the range [0, 1] , the curve is extended
187+ infinitely using tangent of the curve at the closest endpoint as follows:
188+
189+ * For [=input progress values=] less than zero,
190+
191+ 1. If the <var> x</var> value of P1 is greater than zero, use
192+ a straight line that passes through P1 and P0 as the tangent.
193+
194+ 1. Otherwise, if the <var> x</var> value of P2 is greater than
195+ zero, use a straight line that passes through P2 and P0 as the tangent.
196+
197+ 1. Otherwise, let the [=output progress value=] be zero for all
198+ [=input progress values=] in the range [-∞, 0).
199+
200+ * For [=input progress values=] greater than one,
201+
202+ 1. If the <var> x</var> value of P2 is less than one, use
203+ a straight line that passes through P2 and P3 as the tangent.
204+
205+ 1. Otherwise, if the <var> x</var> value of P1 is less than
206+ one, use a straight line that passes through P1 and P3 as the tangent.
207+
208+ 1. Otherwise, let the [=output progress value=] be one for all
209+ [=input progress values=] in the range (1, ∞].
210+
209211
210212Step timing functions: ''step-start'' , ''step-end'' , ''steps()'' {#step-timing-functions}
211213----------------------------------------------------------------
0 commit comments