The calc-interpolate() grammar is currently:
<calc-interpolate()> = calc-interpolate(
[
<progress-source> && [ by <easing-function> ]?
&& <easing-function>?
] ,
<input-position>{1,2} : <calc-sum> ,
[ <easing-function>? , <input-position>{1,2} : <calc-sum> ]#? )
In that first clause:
[
<progress-source> && [ by <easing-function> ]?
&& <easing-function>?
] ,
There are two <easing-function> productions.
The first one, with a by prefix, is defined in 7.1.1.1. Easing Interpolation Progress: the by <easing-function> argument , and "It applies the specified easing function to the “timeline” of progress as a whole by modifying the interpolation progress before it’s applied to".
The second one, however, I am not 100% clear on.
I think it is the <easing-function> that https://drafts.csswg.org/css-values-5/#valdef-calc-interpolate-easing-function describes as "appearing in the first argument" and therefore "specifies the “default” easing function to be used between each stop.", but since it that is the "7.1.2. Defining the Interpolation Map" I am not completely confident.
This could maybe be made a bit clearer if the various arguments were aliased. Perhaps something like:
<timeline-easing-function> = <easing-function>
<default-easing-function> = <easing-function>
<surrounding-stops-easing-function> = <easing-function>
<calc-interpolate()> = calc-interpolate(
[
<progress-source> && [ by <timeline-easing-function> ]?
&& <default-easing-function>?
] ,
<input-position>{1,2} : <calc-sum> ,
[ <surrounding-stops-easing-function>? , <input-position>{1,2} : <calc-sum> ]#? )
The calc-interpolate() grammar is currently:
In that first clause:
There are two
<easing-function>productions.The first one, with a
byprefix, is defined in7.1.1.1. Easing Interpolation Progress: the by <easing-function> argument, and "It applies the specified easing function to the “timeline” of progress as a whole by modifying the interpolation progress before it’s applied to".The second one, however, I am not 100% clear on.
I think it is the
<easing-function>that https://drafts.csswg.org/css-values-5/#valdef-calc-interpolate-easing-function describes as "appearing in the first argument" and therefore "specifies the “default” easing function to be used between each stop.", but since it that is the "7.1.2. Defining the Interpolation Map" I am not completely confident.This could maybe be made a bit clearer if the various arguments were aliased. Perhaps something like: