- From: Glenn Adams <glenn@skynav.com>
- Date: Wed, 8 Oct 2014 17:50:18 -0600
- To: Sylvain Galineau <galineau@adobe.com>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Tim Larson <Tim.Larson@telventdtn.com>, "<www-style@w3.org>" <www-style@w3.org>
- Message-ID: <CACQ=j+eM5Zsz__U+CDUpTg9iPgG5PKoPXsRPf3jZHOMktVO78A@mail.gmail.com>
On Wed, Oct 8, 2014 at 4:26 PM, Sylvain Galineau <galineau@adobe.com> wrote: > > On Oct 8, 2014, at 10:35 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > > > On Thu, Oct 2, 2014 at 3:43 AM, Tim Larson <Tim.Larson@telventdtn.com> > wrote: > >> Background: I had the idea recently to implement a simple "busy > spinner" using text. Cycling through a sequence like the characters U+25F0 > through U+25F3, or even 0 through 9, seems like a good way to convey this > idea. Using text eliminates the need for downloading an image, and this > would also theoretically be possible in a console UA. > >> > >> So after I'd whipped up the @keyframes declaration to try it out, I was > surprised to notice that the content property is not animatable. Why is > that? Of course, one could code it up in JS, but it would be so much > simpler to do it declaratively, this ought to be a CSS solution. > >> > >> I've been trying to find the answer to why some properties can be > animated but others cannot. Perhaps some just wouldn't make sense, but this > one does. > > > > Originally we only made properties animatable if they lived in a > > reasonable metric space - we needed some way to compute distance and > > represent intermediate values at all points of the animation. This > > covers everything whose value is a number or number-like things (such > > as colors). > > > > We've planned for some time to allow all properties to be animatable, > > even when they don't have a metric. Instead, they'd just switch from > > their start to end value halfway through the timing-function progress. > > This is still the plan of record, but nobody's tried out the > > implementation yet to see if there are any compat issues that we'd > > have to address. > > > What Tab said; we can't really 'animate' from any content property value > to any other as in "Let's compute all the intermediate values to go smoothy > from content:'foo' to content:'bar'". We can merely pick a consistent time > at which one value replaces the other when you specify these in @keyframes. > > Yes, in some cases you want to go through a series of strings that could > be interpolated e.g. because you just want to animate through a contiguous > sequence of single-character things. That'd solve your problem, but is it > something we can always assume any time the start/end values of the content > property are single characters? If I want to turn bullets in a custom list > control into checkmarks as part of an animation I probably do not want all > the intermediate code points in between the bullet and the checkmark to > show up in between. Or maybe I do want to animate through a small series of > characters in an icon font but their values are in fact not contiguous. > > So the challenge here is defining a default animation behavior that is > generally useful for a wide subset of the values and use-cases people use > the content property for. Iterating between Unicode code point value is not > a good default. Though it'll be nice some of the time it'll likely be > surprising and unwanted most of the time. > The SMIL/SVG <set/> animation element can handle discrete animation with no problem Any property that can be set should be animatable by discrete animation, with no interpolation.
Received on Wednesday, 8 October 2014 23:51:05 UTC