W3C home > Mailing lists > Public > www-style@w3.org > August 2012

Re: [css3-exclusions] remove <fill-rule> from "polygon()" syntax

From: Rik Cabanier <cabanier@gmail.com>
Date: Tue, 28 Aug 2012 17:09:05 -0700
Message-ID: <CAGN7qDAfUuf-5sRYXexAb=LP1eC-T_jrEP7+Tn4mTtT2tyae+A@mail.gmail.com>
To: Dirk Schulze <dschulze@adobe.com>
Cc: Alan Stearns <stearns@adobe.com>, Bear Travis <betravis@adobe.com>, "Tab Atkins Jr." <jackalmage@gmail.com>, www-style list <www-style@w3.org>
In SVG, fill-rule [1] and clip-rule[2] are inherited so they can be set on
a <g> element and affect the paths of the children.

1: http://www.w3.org/TR/SVG/painting.html#FillProperties
2: http://www.w3.org/TR/SVG/masking.html#EstablishingANewClippingPath

On Tue, Aug 28, 2012 at 3:54 PM, Dirk Schulze <dschulze@adobe.com> wrote:

>
> On Aug 28, 2012, at 3:51 PM, Rik Cabanier <cabanier@gmail.com> wrote:
>
> > I think fill/clip-rule should stay with the marking operator in CSS.
> > It makes much more sense to keep them there than making them part of the
> graphics state and it will make the implementation much easier.
> > (I know this is different from SVG.)
> I am not sure what you mean. Can you clarify more please?
>

In SVG, fill-rule [1] and clip-rule[2] are inherited so they can be set on
a <g> element and affect the paths of the children.

It would be better if these rules are not inherited and just specified per
fill/stroke/clip. Not only would it save you from having to keep them in
the state, it would also help if you move paths around since you don't have
to remember their inherited winding. I've never seen a case where you want
to use the same path with different fill rules.

Rik

1: http://www.w3.org/TR/SVG/painting.html#FillProperties
2: http://www.w3.org/TR/SVG/masking.html#EstablishingANewClippingPath


> >
> > On Tue, Aug 28, 2012 at 3:28 PM, Dirk Schulze <dschulze@adobe.com>
> wrote:
> >
> > On Aug 28, 2012, at 1:55 PM, Alan Stearns <stearns@adobe.com> wrote:
> >
> > > (I hope I fixed the quoting correctly)
> > >
> > > On 8/28/12 12:17 PM, "Bear Travis" <betravis@adobe.com> wrote:
> > >
> > >> On 8/28/12 11:29 AM, "Dirk Schulze" <dschulze@adobe.com> wrote:
> > >>
> > >>> On Aug 28, 2012, at 8:50 AM, Tab Atkins Jr. <jackalmage@gmail.com>
> wrote:
> > >>>
> > >>>> On Tue, Aug 28, 2012 at 6:45 AM, Dirk Schulze <dschulze@adobe.com>
> > >>>> wrote:
> > >>>>> Hi,
> > >>>>> I think the keywords for <fill-rule> should be removed from the
> syntax
> > >>>>> of 'polygon()'[1]. I think the shapes on the exclusion spec can be
> > >>>>> reused in other contexts as well. One example is <shape> as
> shorthand
> > >>>>> for 'clip-path' in the CSS Masking[2] spec. But for 'clip-path' we
> > >>>>> already have the 'clip-rule' property with the values 'nonzero' and
> > >>>>> 'evenodd' [3].
> > >>>>> I would suggest using the 'fill-rule' property from SVG [4] to
> specify
> > >>>>> the fill rule on 'polygon()'. This property is already implemented
> by
> > >>>>> all browsers anyway.
> > >>>>
> > >>>> I don't see how that works, if shape functions are going to be
> usable
> > >>>> in multiple properties.
> > >>>
> > >>> We have clip-rule and fill-rule. So where is the problem?
> > >>
> > >> What would the effect be on CSS Exclusions? [1]
> > >>
> > >> It seems like the css for specifying a shape-inside [2] would change
> from
> > >> {
> > >> shape-inside: polygon(evenOdd, 0 0, 10px 0, 5px 10px 0 0);
> > >> }
> > >> To
> > >> {
> > >> shape-inside: polygon(0 0, 10px 0, 5px 10px, 0 0);
> > >> fill-rule: evenOdd;
> > >> }
> > >>
> > >> Is this correct?
> > >>
> > >> -Bear
> > >>
> > >> [1] http://dev.w3.org/csswg/css3-exclusions/
> > >> [2] http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property
> > >
> > > Bear,
> > >
> > >
> > > I believe that's what Dirk is asking for. But it sounds to me like it
> > > would need to be an additional property per
> > > property-that-accepted-shape-syntax (fill-rule, clip-rule - what about
> > > shape-inside-rule and shape-outside-rule?). And these new properties
> would
> > > only apply if the polygon syntax was used. I think it might be better
> kept
> > > as a parameter in the polygon function.
> > >
> > Yes, you might be right.
> >
> > Basic shapes could be a good fit for 'clip-path'. For 'clip-path' we
> have the 'clip-rule' property which sets the fill-rule. The keyword for the
> fill-rule on 'polygon()' is optional but nonzero by default. I would like
> to use the value of the 'clip-rule' property if no keyword was set on
> 'polygon()'. Is it possible that CSS Exclusions also let other
> specifications and properties define the clip rule then? E.g.
> >
> > clip-rule: evenodd;
> > clip-path: polygon(25% 25%, 50% 50%, 75% 25%);
> >
> > The clip rule would be evenodd for the polygon(), since 'clip-rule'
> property defines it.
> >
> > If the rule was set on the polygon(), it overrides any other property
> that aims to set the fill rule.
> >
> > Does that sound reasonable for you?
> >
> > Greetings,
> > Dirk
> >
> > > Thanks,
> > >
> > > Alan
> > >
> >
> >
> >
>
>
Received on Wednesday, 29 August 2012 00:09:33 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:59 GMT