- From: Shane Stephens <shans@google.com>
- Date: Wed, 03 Feb 2016 22:43:09 +0000
- To: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>
- Cc: "public-fx@w3.org" <public-fx@w3.org>
- Message-ID: <CAGTfzwTqZGXE84TAJ2JmRU3Mif7Hcrv68A1+wzJYPoSDHVG53g@mail.gmail.com>
Hi Amelia,
It's confusing for CSS that configures path syntax to reference a fill-rule
in the 'd' property that will never be used, *while at the same time*
allowing a fill-rule property. This isn't a conflict per se, I guess? But
it is definitely author-hostile.
A simple fix is to introduce two variants of the path function, which is
what I had proposed. If we're doing this anyway, then each specification
should reference the most appropriate variant. As fill-rule is unused for
motion-path, it should reference the variant without a fill rule.
I'm agnostic as to whether the path() functions belong in values and units
or in shapes, and would like to defer to the CSSWG here.
Sincerely,
-Shane Stephens
On Thu, Feb 4, 2016 at 9:32 AM Amelia Bellamy-Royds <
amelia.bellamy.royds@gmail.com> wrote:
> I don't think there is a conflict. There are other cases in CSS where a
> functional notation encompasses multiple values that would otherwise be set
> in separate properties. For example, the filter() function which combines
> an image value with a filter operation to create a filtered background (or
> other) image.
>
> In other words, the `d` property of an SVG <path> element wouldn't use the
> full `path([fill-rule]?, path-string)` function, it would just use the
> path-string. The fill of the shape would still be determined by the
> separate fill-rule property.
>
> Having a fill-rule control within the path function is essential for the
> path function to be used in the clip-path property.
>
> So there are two reference specifications:
>
> - The definition of what makes a valid path string. I think this should
> continue to be defined in SVG for now, but in future would likely be
> separated out into its own module that could be referenced by SVG, CSS, and
> Canvas 2D Context specs.
>
> - The definition of the path() CSS function, which references the path
> string definition but builds upon it to create a complete CSS shapes
> definition. This natural place for this is CSS Shapes, though it could be
> introduced in which ever spec needs it that gets to CR first.
>
> ~Amelia
>
> On 3 February 2016 at 15:17, Shane Stephens <shans@google.com> wrote:
>
>> Hi list,
>>
>> Cameron pointed out today that the path() function in motion-1 takes a
>> fill rule. It looks like dschulze added this late in 2014 so that other
>> specifications (some of which need a fill rule) could reference the path
>> syntax too.
>>
>> Cameron pointed this out because he wanted to reference this
>> specification for the property version of the 'd' attribute, but having a
>> fill rule there is awkward because <path> elements also accept fill-rule
>> properties.
>>
>> Additionally, fill-rule has absolutely no effect on motion, so it doesn't
>> really make sense to accept one in the motion spec.
>>
>> My suggestion is this:
>> (1) remove fill-rule from motion-1
>> (2) for now, each specification should separately reference SVG1.1 when
>> defining a path syntax.
>> (3) we should get two variants of path included in the next level of
>> values and units, one with and one without fill-rule
>> (4) gradually we can switch specifications across to reference these.
>>
>> Thoughts?
>>
>> Cheers,
>> -Shane
>>
>
>
Received on Wednesday, 3 February 2016 22:43:49 UTC