- From: Christoph Päper <christoph.paeper@tu-clausthal.de>
- Date: Tue, 16 Aug 2005 18:41:32 +0200
- To: www-style@w3.org
Ben Ward:
> Whilst I agree with you that this is perfectly possible to do with
> SVG, I also agree the others that providing *simple* gradients in CSS
> would be beneficial to the CSS developer base.
FWIW, I agree, like most participants here seem to do.
> * start colour
> * end colour
> * direction
Note that CSS has three units for degrees already.
> More complex gradients with defined start points, > 2 colours, etc.
Others added "weight" ((linear) distribution between start and end
color, a percentage maybe) and "type" (x->y, x->y->x, radial etc., a
keyword).
> really should be left for SVG, in my opinion, but something with a
> 'small' syntax would be nice.
The question is where to draw the line.
> background-color: gradient(start-color, end-color, direction);
We could add another function to either colors or images like you suggest:
<color>: keyword | hexadecimal | rgb() | ... | gradient()
or
<image>¹: url() | gradient().
This function would be unique, because other functions may appear
inside, e.g.
background-color: gradient(rgb(0,0,0), #F00, 100grad);.
If that was allowed, you could perhaps solve the degree versus start and
end point issue by reüsing <shape>, i.e. |rect()|, which is currently
only used with |clip| and described there².
Alternatively (or even additionally) we could use @-rules that are
referenced, either using the existing function |url()| or a new one,
perhaps |symbol()|:
@gradient id {...}
<color>: keyword | hexadecimal | rgb[a]() | hsl[a]() | url()
or
<image>¹: url(),
where |url()| can handle fragment identifiers (maybe after being told so
by a second parameter like |attr()| in level 3), as in
border-color: url("#id");
or
border-image: url("id", fragment);.
This approach requires further properties (or descriptors) inside the
at-rule. They should perhaps mimick SVG.
¹ <image> is not a CSS data type. It basically stands for <uri> here,
where it is applied to an property ending in "-image".
² IMHO <shape> should be defined in chapter 4.3 "Values" in CSS2.
I haven't checked where it is in the CSS3 modules.
Received on Tuesday, 16 August 2005 16:42:07 UTC