- From: Alan Gresley <alan@css-class.com>
- Date: Wed, 09 Feb 2011 12:45:14 +1100
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- CC: Simon Fraser <smfr@me.com>, Peter Beverloo <peter@lvp-media.com>, Irfan Mir <theirf@gmail.com>, www-style@w3.org, Adrian Low <aidypoos@optusnet.com.au>, Chris Lilley <chris@w3.org>
On 8/02/2011 4:35 AM, Tab Atkins Jr. wrote: > On Mon, Feb 7, 2011 at 9:07 AM, Alan Gresley<alan@css-class.com> wrote: >> On 6/02/2011 12:03 PM, Tab Atkins Jr. wrote: [snip] >> My conclusion was based on completely misunderstanding what 'transparent' >> was. I understood 'transparent' to represent 'inherit' color from ancestor >> since I believe wrongly that 'transparent' was clear like fully transparent >> glass. Now I understand that rgba(0,0,0,0) is different from >> rgba(255,255,255,0) and the other 10 million color in between. > > Well, 'transparent' *is* clear like fully transparent glass. All the > zero-alpha colors are, because they're all identical. But once you > have a non-zero alpha, it matters what color you have. So, the choice > of exactly which transparent color you use as the endpoint is > important, because it effects the path you take through the > colorspace, and thus what colors you see along the gradient. I wasn't really considering non-zero alpha. So rgba(255,255,255,0.5) as an endpoint does not work as one (or I) would expect. > The shape of the premultiplied colorspace is just slightly different - > it has only a single 'transparent' color, and it just so happens that > when you draw a straight line from an opaque color to this > 'transparent' point, the colors you pass through are what you'd get if > you *just* adjusted the alpha component. Ok, so I can understand a bit better. Is sRGB colorspace, which I have represented in 3D cube. Is this premultiplied colorspace, un-premultiplied colorspace or just sRGB colorspace? >> So we have this. >> >> <http://css-class.com/test/css/colors/gradient-yellow-trans.htm> >> >> And for the yellow ~ transparent [1] you want the midway point to be >> (255,255,0,0.5) [2] which when composite on a white background is the same >> as the midway point between yellow ~ white. This I tried to emulate with >> tiles [4] for many months where I could have simply used yellow ~ >> rgba(255,255,0,0.0). > > Exactly, yes. Transitioning from yellow->transparent in premultiplied > space gives you the #5 rendering automatically, which is why it's > desirable. Is it premultiplied space since the values for red and green are always the same? rgba(255,255,0,1) to rgba(255,255,0,0) > It does make it more difficult to get a rendering like #7, > but I'm okay with that. Does this apply to only the endpoint rgba(0,0,0,0) or does it have some change with other endpoints like rgba(127,127,127,0)? > (To get a rendering like #7 you have to use > multiple stops to manually specify the path through the colorspace.) > > ~TJ Something like this perhaps. linear-gradient(left rgba(255,255,0,1), 50% rgba(127,127,63,0.5), rgba(0,0,0,0)) -- Alan http://css-class.com/ Armies Cannot Stop An Idea Whose Time Has Come. - Victor Hugo
Received on Wednesday, 9 February 2011 01:46:53 UTC