- From: Brad Kemper <brad.kemper@gmail.com>
- Date: Fri, 14 Aug 2009 16:16:46 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
Sent from my iPhone On Aug 14, 2009, at 2:54 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote: > On Fri, Aug 14, 2009 at 4:27 PM, Brad Kemper<brad.kemper@gmail.com> > wrote: >> >> >> On Aug 14, 2009, at 1:33 PM, "Tab Atkins Jr." >> <jackalmage@gmail.com> wrote: >> >>> On Fri, Aug 14, 2009 at 3:01 PM, Brad >>> Kemper<brad.kemper@gmail.com> wrote: >>>> >>>> On Aug 14, 2009, at 11:03 AM, "Tab Atkins Jr." <jackalmage@gmail.com >>>> > >>>> wrote: >>>>> >>>>> I don't see why the color *has* to come first, still. Leaving >>>>> it as >>>>> it is, where you can specify them in either order. >>>> >>>> If you keep the ability to specify the starting point as a >>>> coordinate >>>> that >>>> could contain percentages or lengths, then it can be very >>>> confusing to >>>> have >>>> the first thing after be a percentage (or a length). Making the >>>> color as >>>> the >>>> first item of the pair prevents that. If we get rid of the >>>> coordinate >>>> stops >>>> then it's not s problem. >>> >>> Alternate idea: bring back the functional syntax for this. ^_^ >>> "point(<bg-position) point(bg-position)" would work. That way we're >>> not introducing a sometimes-comma, and the complex lengths/ >>> percentages >>> are clearly separated from the color-stops. >> >> Using xy points is really not neccesary when 0% is always a corner >> or side, >> and 100% is always it's opposite corner. > > Indeed, but the whole purpose of the <bg-position> construction is to > allow gradients that start/end at points *not* on a corner or > side-center. (Example 7 in my draft.) Given that each color of the gradient is a 2 diminsuonal line, perpendicular to the angle, the need to start somewhere other than some distance or percentage from a corner or side seems like an extreme edge case, and not worth the extra complexity and readability problems. > >>> I'm really not averse to requiring [<color> <percentage>?], I just >>> don't feel like restricting it unless necessary. >> >> It's not neccesary if we get rid of the measurements before the >> first stop, >> as I've suggested. > > Not convinced yet that that's desirable. The additional comma has > been removed at this point, though, and I've changed the separator > between the direction and color-stops to be / rather than a comma. > That should completely disambiguate things. I'm OK with that. > >>>>> Also, leaving out <distance>. Mixing percentages and distances >>>>> brings >>>>> up the possibility (in fact, the certainty) of color-stops >>>>> swapping >>>>> their order based on box size. I don't think that's desirable. >>>>> The >>>>> only way around it would be to force the color-stops to be >>>>> specified >>>>> in order, and say that out-of-order stops are treated the same as >>>>> same-position stops (they produce an instant transition from the >>>>> first >>>>> specified to the last). Would this be okay? >>>> >>>> I think it would be OK to have the starting and ending points as >>>> distances >>>> or percentages, and have either percentages-only or distances- >>>> only in >>>> between. >>> >>> I thought about allowing distances for the start/end points, but >>> this >>> produces an ambiguity. Is 0%/100% defined by the first and last >>> color-stop, or by <direction>? If the former, how does this work >>> when >>> first/last color-stops have a %? >> >> Usually, 0% would always be a corner or side, and 100% would always >> be it's >> opposite. But... I think that maybe if the first and last are both >> fixed >> lengths with percentages between them, then they could become the >> new 0% and >> 100%. But only in that case and no others. If that's too >> complicated then >> just don't mix at all. > > Hmm... > >>>> Any distance that went beyond 100% would be clipped (unless we are >>>> seriously going to define "running into a side" as being 100%. >>> >>> I can seriously see myself wanting to do "background: >>> linear-gradient(-45deg inner, silver, white)" on a long article, >>> as a >>> little visual flourish that only affects the top of the block. >> >> It seems kind of unpredictable or difficult to imagine where that >> would >> stop. I think you'd want more control. Like this: >> >> background: linear-gradient(-45deg, silver 0, white 200px) >>> [snip] >>> You're trying >>> instead indicate how far from the *original ending-point* the new >>> ending-point should be. >> >> No I'm not. I'm measuring from the starting point to say where the >> ending >> point should be. > > I'm not sure that it's useful to be able to say "push the starting > point this many pixels from the original location", but then "set the > ending-point to this new distance from the starting point". I meant from the original starting point. > The two > things aren't symmetrical now. Better if we can specify someway that > the start should be x distance from the edge/corner, and the end > should be y distance from the edge/corner. That's what I meant, if you are talking about the same corner or edge. Except I wouldn't use x and y, since they tend to equate to horizontal and vertical positions. A and B. > In other words, I want a gradient that goes left-to-right, but leaving > 100px free on each edge. linear-gradient(left, silver 100px, black calc(100% - 200px) > I'm not sure how wide the box would be. I > can't do this in your proposal - something like "linear-gradient(left > / white 100px, silver 50%, white 100px)" would instead either do > nothing, or make an image with 100px of white, then 50px of > white->silver and 50px of silver->white, with white filling the rest. > > I can do this with the <bg-position> construction, as > "linear-gradient(100px top to calc(100% - 100px) top / white, silver, > white)". I like mine better.
Received on Friday, 14 August 2009 23:17:38 UTC