[web-animations] Web Animations minutes, 27 Nov 2014

Web Animations minutes, 27 Nov 2014

Present: Doug, Dirk, Shane, Brian
Archived etherpad: 
https://web-animations.etherpad.mozilla.org/ep/pad/view/ro.92487irtSfEow/rev.28425

Agenda:
1. If you set the startTime on a paused player, what happens?
2. Should the player states be pause-pending and play-pending?
3. Should we call it timingFunction instead of easing? (and other naming 
issues)
4. Should we call it totalDuration instead of activeDuration?
5. Should we expose playbackRate on AnimationNode without groups?
6. Should AnimationPlayer.play() block on display:none content?
7. Does the polyfill require explicit opt-in for using groups and if 
not, can we please do that?
8. Should AnimationPlayer.play() return the ready promise? Likewise pause()?


1. IF YOU SET THE STARTTIME ON A PAUSED PLAYER, WHAT HAPPENS?
=============================================================
(Brian)

Suggestion: it plays
http://lists.w3.org/Archives/Public/public-fx/2014OctDec/0026.html
All: playing sounds good

This is in the spec now:
https://github.com/w3c/web-animations/commit/a34a193749a808750813a8a2227aa25617338261


2. SHOULD THE PLAYER STATES BE PAUSE-PENDING AND PLAY-PENDING?
==============================================================
(Brian)

Doug: And reverse-pending... I'm not sure we need these.
Brian: I tend to agree
Doug: Normally you only care whether the player is pending or not, not 
why it's pending
Shane: If we need to add this later we can add a separate pendingType member
Brian: Too many play states makes it hard to work with

 > Leave it as is for now


3. SHOULD WE CALL IT timingFuncion INSTEAD OF easing?
======================================================
(Brian)

Doug: Pretty sure we've had this conversation before. I think we settled 
on 'easing' because, 1. it's short, 2. it's already used in the industry.

Brian: Recently I've received feedback about inconsistent naming for 
animation
e.g.
https://twitter.com/rachelnabors/status/520506288401170434
https://twitter.com/rachelnabors/status/520511744461254656

 > Shane to suggest to CSS WG they add aliases
 > Shane to coordinate with Tab / Paul Irish / someone to collect data 
from developers about their preference: consistent naming or short naming

To summarise the naming differences:
* animation-timing-function vs easing
* animation-iteration-count vs iterations
* animation-fill-mode vs fill (this one might be ok because SVG uses 'fill')

 > Brian to add a note to the spec that infinite repetitions can be 
specified using Infinity.


4. SHOULD WE CALL IT totalDuration INSTEAD OF activeDuration?
=============================================================
(Brian)

Green Sock uses totalDuration.

Shane:
   activeDuration = iterations * duration / playbackRate

but totalDuration seems like it should be:

   totalDuration = activeDuration + startDelay + endDelay

Could replace activeDuration with totalDuration and update meaning, or 
add totalDuration as well.

Brian: I'm inclined not to add it until we see concrete use cases. We 
only have activeDuration because the TAG indicated that the results of 
calculations should be exposed.
Shane: but this is also an important concept in the spec - it's used to 
determine the activeDuration of containers.
Brian: let's not add it or change it for now


5. SHOULD WE EXPOSE playbackRate ON AnimationNode WITHOUT GROUPS?
=================================================================
(Brian)

Brian: playbackRate is on both AnimationPlayer and AnimationNode. It's 
mostly used on AnimationNode for groups, but until we have groups it 
seems unnecessary to have it on AnimationNode as well.
All: yes, let's defer AnimationNode.timing.playbackRate until we have 
groups.


6. SHOULD AnimationPlayer.play() BLOCK ON display:none CONTENT?
===============================================================
(Brian)

Doug: Don't understand the question completely. But I suspect, no. Is 
this a CSS integration issue? Some thoughts. 1. Animations can have a 
null target, and still play. 2. An effect callback may not care.
Brian: Agreed
Shane: It would be weird if an animation with a null target played but 
an animation targetting something in a display:none subtree didn't.


7. DOES THE POLYFILL REQUIRE EXPLICIT OPT-IN FOR USING GROUPS?
==============================================================
(Brian)

Brian: and if not, can we please do that? Groups are likely to change 
and I'd rather we didn't have to support a lot of legacy content.

Doug: Yes, there are now different targets for what should be 
web-animations-1, and things which are further out.

See: 
https://github.com/web-animations/web-animations-js#different-build-targets


8. SHOULD AnimationPlayer.play() RETURN THE READY PROMISE? LIKEWISE pause()?
============================================================================
(Brian)

We decided Element.animate returns the player, but is there any reason 
Animation.play doesn't return the ready promise?

Doug: Performance? If we don't return the promise we never need to 
construct it.
Brian: I don't think this is significant. We can still lazily construct 
the Promise for animations created via Element.animate / CSS

Doug: This is just

   p.play().then(...)
vs
   p.play(); p.ready.then(...)

Doug: I think we may also have discussed that this would be confusing. 
play().then(...) sounds like we're chaining animations.

Brian: It allows use like:

   Promise.all([player1.play(), player2.play(), 
player3.play()]).then(function() { ... });

Doug: Although, these should all resolve at the same time. So we only 
need to wait on a single promise.

player1.play(); p.ready.then(...)

In favour of adding:
  - There are other APIs that do this (e.g. font loading)
  - Brian thinks this is idiomatic
  - Brian thinks it is easier to use: both play().then(...) and 
Promise.all(...)

In favour of leaving:
  - It is very easy to add later
   - but it is hard to start using later, as you wouldn't want to 
feature detect and switch
  - It isn't an essential addition (it adds no capabilities)
  - Shane isn't convinced that font loading is that similar.
  - Possible confusion: does p.play().then(..) fire when play starts, or 
when the animation finishes?

 > Not sure what to do here


Next meeting, Fri 28 Nov 2014 06:00 UTC
   Local time: 
http://arewemeetingyet.com/UTC/2014-11-28/06:00/Web%20Animations

Past meetings: http://www.w3.org/Graphics/fx/wiki/Web_Animations/Meetings

Received on Thursday, 27 November 2014 06:58:30 UTC