- From: Brian Manthos <brianman@microsoft.com>
- Date: Fri, 17 Jun 2011 18:00:32 +0000
- To: Simon Fraser <smfr@me.com>
- CC: Brad Kemper <brad.kemper@gmail.com>, divya manian <divya.manian@gmail.com>, Tab Atkins Jr. <jackalmage@gmail.com>, "www-style list" <www-style@w3.org>
I never said it's hard to understand. I said it's opposite from the way angles work, which is unnecessary and counter-intuitive. Sure, it's explained away in the text but -- frankly -- you don't need the text crutch if you don't do it backwards. Let's try it another way... (a) linear-gradient(from 180deg, to 0deg, red, blue); (b) linear-gradient(from bottom, to top, red, blue); (a') linear-gradient(180deg, 0deg, red, blue); (b') linear-gradient(bottom, top, red, blue); (a'') linear-gradient(0deg, red, blue); (b'') linear-gradient(bottom, red, blue); Why would you omit the first parameter in a'' but omit the second parameter in b''? Arbitrary inconsistency. > -----Original Message----- > From: Simon Fraser [mailto:smfr@me.com] > Sent: Friday, June 17, 2011 10:54 AM > To: Brian Manthos > Cc: Brad Kemper; divya manian; Tab Atkins Jr.; www-style list > Subject: Re: [css3-images] Summary of recent gradient issues > > On Jun 17, 2011, at 10:34 AM, Brian Manthos wrote: > > > I'm not clear who's saying which in the original mail, perhaps we > need a W3C spec for e-mail applications. > > > > I'll try to address the assertions generally. > > > > > >> I also think CSS authors are familiar by now of the top, right, > bottom, left keywords. This intuitively suggests the beginning > position. > > > > You're welcome to that position. I disagree. For linear gradients, > the three key elements are color stops and {start, stop} locations. > The current syntax (WD, ED 1.08, and ED 1.07) choose to omit either the > start or stop location. In the absence of that, an "almost as > expressive" alternative is to treat the two key elements as color stops > and direction. As an expression of direction, the keyword syntax prior > to 1.08 is opposite that of the angle syntax in expressing direction -- > fixed in ED 1.08 version. > > > >> Using the 'to' keyword would beg the question, why there is no > equivalent 'to' keywords elsewhere in CSS (also should there be a > 'from'?). > > Perhaps this is an oversight, perhaps it's because gradients > represent some new concept. > > > > Perhaps it's because the "to" keyword is imbedded in abbreviations > such as "LTR" and "RTL". > > http://dev.w3.org/csswg/css3-writing-modes/#direction > > > > If you prefer the "precedent must be correct" approach to design, > then perhaps we should use the following: > > LTR RTL TTB BTT etc. > > > >> I think it introduces additional complexity that could be avoided. > > Apparently it can't be avoided, because there are enough people that > prefer "to right" over "rightwards" or "right" (as end point). > > > >> In my view, this: > >> linear-gradient(top left indianred, 50% midnightblue, right > mistyrose); > >> would be something that would be understandable, given we make > similar > >> assumptions of default keyword values for background-position > >> http://dev.w3.org/csswg/css3-background/#the-background-position > > > > Once again, the position argument returns. Unless you are expressing > two positions, you haven't expressed a direction. So the argument that > you can omit one and be clear is incorrect. > > Not at all. The spec is very clear about this: > > "The second way is to simply provide a side or corner of the box that > the gradient should start at; the gradient will then automatically > angle itself to extend from the specified side or corner to the > opposite side or corner in a straight line." > > I dont see why this is hard to understand. If you use the keywords, > you're specifying the starting point of a vector that passes through > the center. If you use the angle form, you're specifying a vector > through the center with the given angle. In both cases, the end points > of the gradient are specified in the same way (explained by the figure > in Example VII). > > > > >> linear-gradient(top left indianred, 50% midnightblue, right > mistyrose); > > This seems cumbersome because you now have two places to spec start > and stop locations and there's now a blending with stop location and > end point. > > > > This is a bit more acceptable in my book: > > linear-gradient(top left, indianred, 50% midnightblue, mistyrose, > right); > > > > But it's not quite there, because it's introducing a new case that > the spec currently doesn't deal with "top left to right". Avoiding > that for now you get... > > linear-gradient(top left, indianred, 50% midnightblue, mistyrose, > bottom right); > > or > > linear-gradient(top, indianred, 50% midnightblue, bottom); > > and prior discussion on this thread had (to my recollection) pushed > back on the "specifying both start and end point" as cumbersome. > > "top left to right" is not dealt with in the spec because it's > redundant. Such a gradient is horizontal, so there is no need to > specify "top"; it's equivalent to "left to right". > > Simon >
Received on Friday, 17 June 2011 18:01:03 UTC