RE: [css3-images] interpolation of color stop positions (was Re: Change to currentColor means it's no longer animatable?)

Example A
 linear-gradient(red 10%, blue 20%, green 15%);


Reviewing the language...

http://dev.w3.org/csswg/css3-images/#color-stop-syntax

# Color-stops must be specified in order.

What does "must" mean for example A?  Does it mean it should be rejected by parser?  Does it mean "invalid; renders as transparent"?

Previously, I've taken it to mean "bad author, we'll fix it for them according to the normative steps".  If that interpretation is correct, is "must" really the right word?


Example B
 Linear-gradient(red 10%, blue calc(20%+10px), green calc(15%+5px));

For all boxes with non-negative heights, this has exactly the same concerns ("error!") as A but that is likely not discovered until long after parse time.


So getting back to your assertion...

> The step in question is *error-handling*


Perhaps that's one way to characterize, but it still has a fundamental impact on how the CSS is processed and how the image is rendered (or not).

Changing it by-default (rather than opt-in) in CSS4 seems detrimental to pages published against CSS3.

-Brian


-----Original Message-----
From: Tab Atkins Jr. [mailto:jackalmage@gmail.com] 
Sent: Tuesday, May 01, 2012 2:06 PM
To: Brian Manthos
Cc: Shane Stephens; L. David Baron; www-style list
Subject: Re: [css3-images] interpolation of color stop positions (was Re: Change to currentColor means it's no longer animatable?)

On Tue, May 1, 2012 at 1:58 PM, Brian Manthos <brianman@microsoft.com> wrote:
> In animation cases, it effectively removes a feature (and adds a new one).
>
> As such "in the wild" we don't really have data yet because animations + gradients is new territory.
>
> We should probably at least have a note in CSS3 that it is likely the rule ordering will change in CSS4 so that authors have a warning now rather than having content break later.

There already is such a warning - we tell authors explicitly *not* to misorder their stops, and to avoid certain practices that might accidentally result in misordered stops.

The step in question is *error-handling*, so that we have a sane model to work with when we actually draw the gradient.  It's not actually *functionality*, except insofar as *every* detail is a function to someone.

~TJ

Received on Tuesday, 1 May 2012 21:20:52 UTC