W3C home > Mailing lists > Public > www-style@w3.org > May 2012

Re: [css3-transitions] colour space used for colour interpolations

From: Brad Kemper <brad.kemper@gmail.com>
Date: Sat, 26 May 2012 11:52:43 -0700
Message-Id: <56CDFA02-8C05-4192-BFAC-E2E6339A629D@gmail.com>
Cc: Rik Cabanier <cabanier@gmail.com>, Cameron McCormack <cam@mcc.id.au>, "www-style@w3.org" <www-style@w3.org>
To: "Tab Atkins Jr." <jackalmage@gmail.com>
On May 24, 2012, at 1:47 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote:

> On Thu, May 24, 2012 at 9:44 AM, Rik Cabanier <cabanier@gmail.com> wrote:
>> Reading a bit more on the wikipedia article [1] on HSL, I came across the
>> following quote:
>> 
>> Because hue is a circular quantity, represented numerically with a
>> discontinuity at 360กใ, it is difficult to use in statistical computations or
>> quantitative comparisons: analysis requires the use of circular statistics.
>> Furthermore, hue is defined piecewise, in 60กใ chunks, where the relationship
>> of lightness, value, and chroma to R, G, and B depends on the hue chunk in
>> question. This definition introduces discontinuities, corners which can
>> plainly be seen in horizontal slices of HSL or HSV.
>> 
>> I believe it doesn't make sense to transition in HSL because of these issue.
>> Who would want to create such a synthetic transition?
> 
> Heh, who would ever want to transition in RGB?  It's infinitely worse. ^_^
> 
> Ultimately, what matters is what the system graphics libraries
> support, or can be extended to support.  HSL is a pretty shitty
> colorspace, but it's simple to work with, and way better than RGB for
> most things.  If we can convince the implementors working on graphics
> to do a better colorspace, awesome, but if we can't, falling back to
> HSL is acceptable in my mind.
> 
> (The major problem with HSL, more than anything else, is that there's
> no analog of "premultiplied" colors like RGBA has, so transitions
> to/from 'transparent' are going to be ugly.  I don't think any of the
> better colorspaces have a solution to this either.)

When I am creating gradients from some color to transparent, I usually end up using rgba for the transparent side, so that I can set the rgb part of that to match the full color version. That seems to usually work well enough to render decently in UAs that don't pre-multiply. So, I would think that with hsla, it would be no worse than that. HSL is useful when you just want to adjust lightness and/or saturation, which I'd guess would be the most common gradient or transition changes, not including alpha changes, by far. In my experience, using gradients or transitions to a lighter or darker version of the same hue is much more common than rotating through different hues.
Received on Saturday, 26 May 2012 18:53:16 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:54 GMT