W3C home > Mailing lists > Public > www-style@w3.org > January 2015

Re: [css-transitions]: Extend CSS property list

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

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:50 UTC