Skip to content

[css-values] Clarification on what the second <easing-function> in first clause in calc-interpolate do? #13848

Description

@weinig

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> ]#? )

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions