- From: Dirk Schulze <dschulze@adobe.com>
- Date: Thu, 8 Aug 2013 00:30:04 -0700
- To: Brian Birtles <bbirtles@mozilla.com>
- CC: "public-fx@w3.org" <public-fx@w3.org>
Agree on all of the suggested renamings! I was unsure about timingFunction -> easing (especially because of CSS's animation-timing-function), but think it is reasonable to rename that as well. +1 from me. Greetings, Dirk On Aug 8, 2013, at 3:54 AM, Brian Birtles <bbirtles@mozilla.com> wrote: > (2013/08/06 9:35), Brian Birtles wrote: >> (I've suggested renaming 'iterationDuration' to 'duration' before but >> no-one seemed interested. Having now noticed that jQuery uses 'duration' >> for this I think it's worth re-considering.) > > Since it seems like we're mostly settled on (1), I'd like to raise the > issue of renaming. I know it's still a long way to CR which is when we > traditionally rename all the things, but I couldn't wait. > > The specific proposals (in decreasing order of how much I care about > them) are below: > > > (A) iterationDuration -> duration > > Two new data points make this renaming worthwhile. > > i. We made the effective default fill mode for animations 'none'. As a > result, for common usage authors can no longer use the shortcut where > the duration is a numeric argument, but must now type: > > elem.animate({ left: '100px' }, { iterationDuration: 3, fillMode: > 'forwards' }); > > ii. I recently noticed that jQuery, which I suspect is the most commonly > used animation API on the Web today and which defines an Element.animate > method that is is remarkably similar to that in Web Animations API, > calls this parameter 'duration'. e.g. > > $(elem).animate({ left: '100px' }, { duration: 3 }); > > Other data points which are not particularly new but worth mentioning: > > iii. CSS Animations and CSS Transitions call this simply 'duration' > (i.e. 'animation-duration' not 'animation-iteration-duration'). > > iv. Every other API in the _whole_wide_world_ calls this duration :) > > e.g. > QML: duration > CA: duration (the active duration is called repeatDuration) > Android: duration > SMIL: dur (ok, not 'duration', but it's even shorter still!) > WPF: Duration > MathBox: duration > HTMLMediaElement: duration > d3: duration > YUI: duration > S2.FX: duration > > We would, of course, in the *model* still refer to this as the > 'iteration duration' for clarity but in the API (both Timing interface > and TimingInput dictionary) it would just be 'duration'. The description > of the 'duration' would say that it refers to the 'iteration duration'. > > activeDuration would remain activeDuration. It's used much less often > and CA offers a precedent for naming this differently. > > That would make common to-animation with filling a little easier: > > elem.animate({ left: '100px' }, { duration: 3, fillMode: 'forwards' }); > > > (B) startDelay -> delay > > I'm not quite as concerned about this, but I notice many other APIs call > this 'delay'. 'startDelay' seems unnecessarily long. > > A quick survey of other APIs that have a similar property: > > GSAP: delay > Raphaël: delay() > CA: timeOffset > Android: startDelay > MathBox: delay > d3: delay > > So only Android thinks it's important to spell out 'start'. > > More critically, CSS calls this delay (i.e. 'animation-delay' and > 'transition-delay') which I think is a pretty persuasive reason to adopt > that naming in the API. > > Once again, the model would continue to refer to 'start delay' for clarity. > > As a further data point, when I come to do the SVG bindings I'll > probably introduce the 'delay' attribute. > > > (C) fillMode -> fill > > I'd *really* like to rename this so that our common usage becomes: > > elem.animate({ left: '100px' }, { duration: 3, fill: 'forwards' }); > > Looking at other APIs with a fill mode we have: > > SVG/SMIL: fill > CA: fillMode > WPF: FillBehavior > > So nothing conclusive there. > > However, CSS uses 'animation-fill-mode' so maybe we should stick with that. > > > While we're talking about renaming, a few other possibilities that I > don't necessarily think are worthwhile but are worth considering anyway: > > (D) iterationCount -> repeat > > This one I'm really not concerned about. Just looking at other APIs though: > > GSAP: repeat > Raphaël: repeat() > CA: repeatCount > Android: repeatCount > QML: loops > YUI: iterations (confusingly iterationCount corresponds to our > currentIteration) > > Again, although repeat is nice and short, I think keeping consistency > with CSS' 'animation-iteration-count' is probably key here. > > > (E) timingFunction -> easing > > Again, looking around we have: > > jQuery: easing > GSAP: ease > QML: easing > MathBox: ease > d3: ease > YUI: easing > > But we're probably stuck with CSS' 'animation-timing-function'. > > > What do you think? > > Best regards, > > Brian >
Received on Thursday, 8 August 2013 07:30:46 UTC