- From: L. David Baron <dbaron@dbaron.org>
- Date: Tue, 1 Jul 2014 17:21:34 -0700
- To: www-style@w3.org
- Message-ID: <20140702002134.GA26687@crum.dbaron.org>
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