Fwd: Comments on gradient syntax proposal

Listserv ate this the first time.


---------- Forwarded message ----------
From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Tue, Oct 27, 2009 at 10:54 AM
Subject: Re: Comments on gradient syntax proposal
To: "L. David Baron" <dbaron@dbaron.org>
Cc: www-style@w3.org


On Tue, Oct 27, 2009 at 12:40 PM, L. David Baron <dbaron@dbaron.org> wrote:
> On Tuesday 2009-10-27 12:15 -0500, Tab Atkins Jr. wrote:
>> That makes it more difficult to specify the starting-corner for
>> gradients that have an <angle> argument.  Would it be sufficient to
>> move the talk of normalization to that section of the spec, avoiding
>> any possibility that an implementor accidentally normalizes early?
>
> You can specify the starting corner as:
>  bottom-left if sin(angle) >= 0 and cos(angle) >= 0
>  bottom-right if sin(angle) < 0 and cos(angle) >= 0
>  top-right if sin(angle) < 0 and cos(angle) < 0
>  top-left if sin(angle) >= 0 and cos(angle) < 0
> (Those work out slightly differently at the vertical/horizontal
> cases, but it doesn't matter.)
>
> That said, I think the formulation where the angle-only gradients
> have a gradient line going through the center actually turns out
> easier to implement (see
> https://bugzilla.mozilla.org/show_bug.cgi?id=513395#c48 ).

Hmm, you're right.  That does give an equivalent line.  It also seems
like it matches up better with the notions of revolving the
starting-point around that the no-<angle> case does.  I'll see how I
can revise this.

Preflight-edit:  How does this language sound?
If the `<bg-position>` is omitted in the first argument, then,
starting from the center of the box, extend the gradient-line in both
directions at the angle specified by `<angle>`.  The ending-point of
the gradient-line is where a line drawn perpendicular to the
gradient-line intersects the corner of the box in the direction of the
`<angle>`; the starting-point is figured identically, but the corner
used is the opposite of the one used to determine the ending-point.
For example, specifying an angle of "45deg" would make the
ending-point be determined by where a line perpendicular to the
gradient-line intersected the top-right corner when extended from the
center at a 45deg angle, and the starting-point would be the same but
using the bottom-left corner.

If both `<bg-position>` and `<angle>` are specified, the starting and
ending points of the gradient-line are determined as described in the
previous paragraph, except that the starting-point is where a line
drawn perpendicular to the gradient-line would intersect with the
point specified by the `<bg-position>`.  (In some cases this may cause
the gradient to 'reverse direction', for example if you specify "-10px
-10px 135deg" - the ending-point is to the right of the
starting-point, even though the `<angle>` points up and left.)

(Sorry for the formatting marks creeping in - I write those documents
in Markdown.)

>> > # Between two color-stops, the colors are interpolated as SVG
>> > # gradients.
>> >
>> > The spec ought to say explicitly whether this means that the
>> > 'color-interpolation' property applies.  See
>> > http://www.w3.org/TR/SVG11/painting.html#ColorInterpolationProperty
>>
>> Should it apply?  I'm not sure.  I don't have a good grasp of SVG.
>
> I'm not sure whether people find the 'linearRGB' option useful.
> Mozilla doesn't implement color-interpolation (though we do
> implement color-interpolation-filters, I think).

I wouldn't know if it's useful either - that's why I asked you.  ^_^
For now I'll leave it unspecified - implementors, please let me know
yay or nay on this issue.  (I suspect the answer will be "yes, it
should apply".)

>> > In the description of radial gradients:
>> >
>> > # The image is constructed by creating an infinite canvas and
>> > # painting it with concentric copies of the ending-shape, with the
>> > # color of the painted shape being the color of the gradient-line
>> > # where the two intersect.
>> >
>> > Saying that ellipses are concentric doesn't define what they are.  I
>> > think what you want to say is that they are concentric *and* the
>> > ratio of their major axis to minor axis is constant.  (You could,
>> > for example, have concentric ellipses that are confocal, but I
>> > really don't think that's what's desired here.)
>>
>> I have added the word "similar" to that sentence, which should address this.
>
> Well, confocal ellipses are "similar".  It might work if you use
> "scaled" instead of "similar" though.

They're not similar in the math sense that I know of, where the only
transformations allowed are scaling and translation (and the latter is
eliminated by the 'concentric' requirement).  But I can use 'scaled'
instead.

~TJ

Received on Tuesday, 3 November 2009 17:06:34 UTC