- From: L. David Baron <dbaron@dbaron.org>
- Date: Wed, 28 Jan 2015 08:50:47 -0800
- To: Axel Dahmen <brille1@hotmail.com>
- Cc: www-style@w3.org
- Message-ID: <20150128165047.GA26388@crum.dbaron.org>
On Wednesday 2015-01-28 17:28 +0100, Axel Dahmen wrote:
> The list properties to which transitions apply seems rather short.
> Important visual properties are missing:
>
> ------------------
> background:
> ------------------
>
> * backgrounds should fade if property rules can't be matched,
> e. g. from "background: linear-gradient();" to "background:
> radial-gradient()"
>
> * otherwise, if properties can be matched, animate these,
> e.g. from "background: linear-gradient(black, black 20%, white;)"
> to "background: linear-gradient(black, black 80%, #888;)"
> which would result in an in-between of "background:
> linear-gradient(black, black 50%, #ccc;)" at 50% of the transition
The transitions spec is intended to give a baseline for existing
properties; other specs, such as css-images, will add further
behavior for their properties (existing and new) in the future.
In particular, I think animation of gradients is part of
http://dev.w3.org/csswg/css-images-3/#interpolation
> ------------------
> box-shadow:
> ------------------
>
> * if the number of shadows defined for a box-shadow rule won't match,
> replace each missing shadow with "[inset] 0 0 0 0 rgba(0,0,0,0)",
> animate each of the given shadows then separately,
> e.g. from "box-shadow: 1ex 1ex 1ex 0 rgba(255,0,0,.5), inset
> 1ex 1ex 1ex 0 rgba(0,0,255,.5)"
> to "box-shadow: -1ex -1ex -1ex 0 rgba(0,255,0,.5)"
> would result in first extending the second box-shadow definition to:
> "box-shadow: -1ex -1ex -1ex 0 rgba(0,255,0,.5), inset
> 0 0 0 0 rgba(0,0,0,0)"
> then "1ex 1ex 1ex 0 rgba(255,0,0,.5)" would be transitioned to
> "-1ex -1ex -1ex 0 rgba(0,255,0,.5)"
> while simulatenously "inset 1ex 1ex 1ex 0 rgba(0,0,255,.5)"
> would be transitioned to
> "inset 0 0 0 0 rgba(0,0,0,0)"
The spec already requires this.
http://dev.w3.org/csswg/css-transitions/#animtype-shadow-list says:
# Each shadow in the list is interpolated via the color (as color)
# component, and x, y, blur, and (when appropriate) spread (as
# length) components. For each shadow, if both input shadows are
# inset or both input shadows are not inset, then the interpolated
# shadow must match the input shadows in that regard. If any pair
# of input shadows has one inset and the other not inset, the
# entire shadow-list is uninterpolable. If the lists of shadows
# have different lengths, then the shorter list is padded at the
# end with shadows whose color is transparent, all lengths are 0,
# and whose inset (or not) matches the longer list.
-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, 28 January 2015 16:51:13 UTC