[css-transforms][css-transitions] transform interpolation and starting of transitions

This issue is vaguely related to the issue I raised in
http://lists.w3.org/Archives/Public/public-fx/2014JanMar/0076.html

The transitions spec (sections 17-20) at
http://dev.w3.org/csswg/css-transforms/#interpolation-of-transforms ,
as I understand it, says that if you interpolate between:
  (A) transform: translateX(0)
and
  (B) transform: translate3d(0, 0, 0)
you get
  (C) transform: translate3d(0, 0, 0)
at all points during the interpolation.  This is reasonable.

The problem here is that (A) and (B) are defined to be different
computed values, and therefore a change between the two of them
triggers a transition.  I believe 'transform' is the only CSS
property where interpolation of 100% * A + 0% * B is not equal (in
computed value equality) to A, and I think this is an invariant that
we shouldn't break.

I think it would be best if the normalization steps involved in
making things match for interpolation purposes were part of the
process of finding the computed value.  I think this would help the
transitions spec and other things that expect reasonable behavior
for computed values.

If we don't fix this in transforms, though, I think we should change
the transitions spec to perform an interpolation step before
comparing computed values to determine if a transition should be
started.

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                          https://www.mozilla.org/   𝄂
             Before I built a wall I'd ask to know
             What I was walling in or walling out,
             And to whom I was like to give offense.
               - Robert Frost, Mending Wall (1914)

Received on Wednesday, 2 July 2014 00:21:59 UTC