On Nov 30, 2012, at 8:36 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> On Thu, Nov 29, 2012 at 10:27 PM, Cameron McCormack <cam@mcc.id.au> wrote:
>> marker-pattern: 50% url() 50%;
>>
>> The former interpretation would result in:
>>
>> X-------X-------X
>
> You mean:
>
> --------X-------X
>
>
>> My feeling is that these two meanings of offset cater to different use
>> cases:
>>
>> * the former interpretation is for sliding the marker pattern so that it
>> looks nicer at the start of the path
>>
>> * the latter interpretation is for ensuring that the marker pattern isn't
>> painted at the start/end vertices of the path (since they might otherwise
>> collide with other markers or graphics there)
>>
>> The idea of an offset at the end of the path obviously only makes sense with
>> the second interpretation.
>
> Not quite. If makes just as much sense to have a "sliding" offset at
> the end, too, it just prevents any markers from painting there. It's
> similar to padding in CSS. It's indistinguishable from your
> interpretation if no percentages are used.
>
>> IMO both are useful and we should try to accommodate them both in the
>> syntax. I have no concrete suggestions for doing that yet.
>
> comma-separated optional arguments at the beginning and end of
> repeat()? Or just a single optional argument at the start giving the
> space that repeat() is repeated over, where percentages refer to the
> whole path(/segment) length?
Don't make it to complicated. a repeat function with complex syntax in it doesn't help anyone.
[<distance> <url>]+
Is fine. if needed then a 'repeat' or 'no-repeat' at the end or beginning.
[<distance> <url>]+ || [repeat | no-repeat]?
We should define either an offset like for stroke-dasharray, or the "end-clipping". I agree that you want to have clipping at both ends. But then I would go with the syntax of background[1] and background-size[2], which is familiar for web authors anyway:
[<distance> <url>]+ [/ <marker-free-region>]? || [repeat | no-repeat]?
<marker-free-region> = [ <distance> | auto ]{1,2}
First value for start, second for end. If one is specified, then the second is equal to the first. Auto means no marker fee region.
Worst syntactical case would be:
20px url(#m1) 20px url(#m2) 20px url(#m3) 20px url(#m4) / 20% 10% repeat
For each sequence. The pattern is clear, and the marker free region is 20% at the beginning and 10% at the end.
The easiest way would be
20px ur(#m1)
This way it is always clear which length value has which meaning. This isn't the case for 20px url(#m1) 20px for example.
We discussed marker-segment in the call yesterday and I am partly convinced that patterns are not the highest priority and we can have an easy syntax there.
[<distance>? <url>]#
is sufficient enough mostly.
Greetings,
Dirk
[1] http://www.w3.org/TR/css3-background/#the-background
[2] http://www.w3.org/TR/css3-background/#ltbg-sizegt
>
> ~TJ