Re: [css3-images] Defining SVG paint servers as a CSS <image>

I like this!

Dean

On 17/06/2011, at 10:27 AM, Tab Atkins Jr. wrote:

> As the title states, I'd like to define SVG paint servers as a CSS
> <image> type.  They would be addressable via the url() function as
> normal, like "background: url(doc.svg#gradient1);".
> 
> I'm planning to follow the experimental work that Robert O'Callahan
> did in Firefox, as outlined in
> <http://weblogs.mozillazine.org/roc/archives/2008/07/svg_paint_serve.html>.
> Basically, the paint server is painted into the canvas in the obvious
> manner.  The only tricky bit is defining how the *Units attributes
> work, and I think roc got this right - "userSpaceOnUse" units will be
> CSS px, while an "objectBoundingBox" unit will be the size of the
> canvas.  For both, the origin of the coordinate space is the top left
> corner of the canvas.
> 
> This also suggests how to unify <image> and paint servers in the
> reverse direction - all CSS <image> types can become paint servers
> trivially now.  CSS-defined paint servers automatically work in
> userSpaceOnUse units, is all.
> 
> Theoretically, then, it should be acceptable to do this:
> 
> <rect fill="linear-gradient(90deg, red, green 25px, blue)" width="100"
> height="100" />
> 
> And it would work in the obvious way.  (You could also
> machine-translate linear-gradient() and radial-gradient() into
> <linearGradient> and <radialGradient>, as they're identical in
> functionality and only differ in syntax, but that's not possible for
> all <image> types.)
> 
> Anyone see any problems with this?  If not, I'll put the appropriate
> text for paint-server-as-<image> into Image Values.  What would be the
> appropriate location for <image>-as-paint-server?
> 
> ~TJ
> 

Received on Saturday, 18 June 2011 23:38:31 UTC