- From: Rik Cabanier <cabanier@gmail.com>
- Date: Thu, 31 Jan 2013 19:25:03 -0800
- To: Alan Gresley <alan@css-class.com>
- Cc: fantasai <fantasai.lists@inkedblade.net>, "www-style@w3.org" <www-style@w3.org>
- Message-ID: <CAGN7qDD5xZRbLzB3gru+KM-D3a_47b97i7jVdgNg0UJcJQ2ioQ@mail.gmail.com>
So, can we fix the spec?
I volunteer to fix the implementation in FF and WK.
On Thu, Jan 31, 2013 at 7:00 PM, Alan Gresley <alan@css-class.com> wrote:
> On 25/11/2012 8:14 AM, Rik Cabanier wrote:
>
>> On Thu, Nov 22, 2012 at 2:39 AM, Alan Gresley <alan@css-class.com>
>> wrote:
>>
>
> Tab: Because CSS gradient has been pre-multiplied for a while.
>>>>
>>>>
>>> But still FF17, Chrome 23 and Safari 5.1.7 show gradients in non
>>> pre-multiplied for what is now longer that a year since it was
>>> resolved that they shouldn't because supposedly authors may not
>>> understand that 'transparent' is shorthand for 'transparent-black'.
>>> The reasoning behind this resolution is ill founded.
>>>
>>>
>> I agree. It's interesting that they are still using
>> non-premultiplied colors.
>>
>
> FF16+ does one better. It supports _un-prefixed_ gradients using
> non-premultiplied colors.
>
> <!DOCTYPE html>
>
> <style type="text/css" media="screen">
> div {
> border: 1em solid #555;
> padding: 1em;
> background: linear-gradient(to right, rgba(255,0,255,0),
> rgba(255,255,0,1) 50%, rgba(255,0,255,0)), linear-gradient(to right, white,
> white 50%, black 50%, black);
> }
>
> </style>
>
> <div>Gradients using non-premultiplied colors</div>
>
>
>
>
> Dino: benefit of pre-mul is you don't gray when animating to
>>>> transparent. And can solve it by going to rgb(...)
>>>>
>>>>
>>> You do *NOT* go to gray with pre-mul unless the initial color is
>>> white or somewhere between white and black (within the grayscale).
>>>
>>>
>> No, you can go to gray if for any of the interpolated values, r/g/b
>> become approximately the same value.
>>
>
> As Dino said "you don't go gray when animating to transparent." He
> referring to the grayish (or less saturated color) midpoints when going
> from color to transparent black. This is most noticeable when composite on
> a whitish backgrounds.
>
> <!DOCTYPE html>
>
> <style type="text/css" media="screen">
> div {
> border: 0.25em solid #555;
> padding: 1em;
> background: linear-gradient(to right, white, transparent);
> }
> </style>
>
> <div>Gradients using non-premultiplied colors</div>
>
>
> This was always the main issue. When animating or transitioning from one
> color to another color where one of the colors was transparent-black.
>
>
>
> Alan
>
>
> --
> Alan Gresley
> http://css-3d.org/
> http://css-class.com/
>
Received on Friday, 1 February 2013 03:25:31 UTC