On Tue, Nov 23, 2010 at 2:09 PM, Philip Taylor <excors+wha...@gmail.com> wrote: > On Tue, Nov 23, 2010 at 8:43 PM, Tab Atkins Jr. <jackalm...@gmail.com> wrote: >> Right now, canvas gradients interpolate their colors in >> non-premultiplied space; that is, the raw values of r, g, b, and a are >> interpolated independently. This has the unfortunate effect that >> colors darken as they transition to transparent, as "transparent" is >> defined as "rgba(0,0,0,0)", a transparent black. Under this scheme, >> the color halfway between "yellow" and "transparent" is >> "rgba(127,127,0,.5)", a partially-transparent dark yellow, rather than >> "rgba(255,255,0,.5)".* > > If you define the gradient as interpolating from solid yellow to > transparent black, I'd expect that it *should* be semi-transparent > blackish-yellow in the middle. > > If you want it to be pure yellow, don't use a keyword which is > explicitly specified as transparent black - define the gradient from > rgba(255,255,0,1) to rgba(255,255,0,0) instead. Then you'll get > rgba(255,255,0,0.5) in the middle.
For what it's worth, I suspect most people don't think of "transparent" as "transparent black", but rather as "fully see-through". / Jonas