W3C home > Mailing lists > Public > www-style@w3.org > March 2016

Re: [css-animations][web-animations] steps() timing function sometimes unintuitive

From: Brian Birtles <bbirtles@mozilla.com>
Date: Tue, 8 Mar 2016 14:00:55 +0900
To: www-style list <www-style@w3.org>
Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, "L. David Baron" <dbaron@dbaron.org>, Rachel Nabors <rachelnabors@gmail.com>, "public-fx@w3.org" <public-fx@w3.org>
Message-ID: <56DE5C87.1080106@mozilla.com>
On 2012/12/21 3:46, Tab Atkins Jr. wrote:
> On Wed, Dec 19, 2012 at 6:40 PM, L. David Baron <dbaron@dbaron.org> wrote:
>> On Wednesday 2012-12-19 10:29 -0800, Tab Atkins Jr. wrote:
>>> I propose another steps value: step-mid. It splits the animation curve
>>> into n segments, makes the first n-1 do step-end behavior, and leaves
>>> the last to just run normally.  The above example could instead be
>>> written as "steps(4, step-mid)" and have this behavior:
>>
>> I like the idea, but I find the name confusing; it sounded like
>> something that would give the first and last steps half the duration
>> of the other steps.  (I also find the description quoted above
>> confusing, but the rest of the email made it clear.)
>
> I have absolutely no attachment to the name.  It was the first thing
> that came to mind.
>
> I assume that Rachel's suggestion comes from her association of
> steps(n, end) with meaning "eat the end of the animation" (and
> likewise for "start"), so "none" is reasonable in that sense.  I'm not
> sure it makes sense if your understanding comes from the spec's
> explanation, though, where "end" means "transitions all at once at the
> end of the step".
>
> Another possibility is just a new function.  I'm not sure what I'd
> want to name it, though.

I spoke with Rachel and a few others about this recently and we were 
wondering about the name step-equal? Unfortunately, that doesn't 
translate into a function very well ('step-equal(2)'? Alternatively, 
what about 'step-stagger' and 'stagger(5)', or just the function?).

I'd like to settle on this soon because Chrome is shipping 
Element.animate() with support for 'step-middle' as defined by Web 
Animations.[1] We went to implement this in Firefox[2] but I'm concerned 
that there aren't use cases for step-middle as currently specced and 
instead what we want is what Tab originally proposed in this thread.

Assuming usage is low in Chrome, I'd like to drop step-middle from Web 
Animations and replace it with this revised timing function.

Best regards,

Brian

[1] http://w3c.github.io/web-animations/#typedef-step-timing-function
I didn't realize Chrome had implemented this, or else I would have 
brought this up sooner.
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1248340
Received on Tuesday, 8 March 2016 05:01:24 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:39:37 UTC