W3C home > Mailing lists > Public > public-fx@w3.org > October to December 2015

Re: [css-masking] clip-path: path()

From: Dirk Schulze <dschulze@adobe.com>
Date: Sat, 17 Oct 2015 12:37:45 +0000
To: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>
CC: Tab Atkins Jr. <jackalmage@gmail.com>, Simon Fraser <smfr@me.com>, "public-fx@w3.org" <public-fx@w3.org>, Alan Stearns <stearns@adobe.com>
Message-ID: <869B3DE6-3E0D-47B4-A2B2-A708985BAB14@adobe.com>
IIRC no change in CSS Masking is required. Alan Stearns added the path() function to CSS Shapes[1]. And CSS Masking references basic shape from this specification.

Simon, from a specification point of view you should be covered. As Amelia said, don’t forget the fill-rule.

Greetings,
Dirk

[1] https://drafts.csswg.org/css-shapes-2/#basic-shape-functions



On Oct 16, 2015, at 12:37 AM, Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com<mailto:amelia.bellamy.royds@gmail.com>> wrote:

The spec that has already adopted `path(/*SVG path notation*/)` is the CSS Motion Path module.  Wording here: https://drafts.fxtf.org/motion-1/#funcdef-path

path()<https://drafts.fxtf.org/motion-1/#funcdef-path> = path([ <fill-rule><http://dev.w3.org/csswg/css-shapes-1/#typedef-fill-rule> ,]? <string><http://dev.w3.org/csswg/css-values-3/#string-value>)
The <string><http://dev.w3.org/csswg/css-values-3/#string-value> represents an SVG Path data string. The path data string must be conform to the grammar and parsing rules of SVG 1.1 [SVG11]<https://drafts.fxtf.org/motion-1/#biblio-svg11>. The initial position is defined by the first “move to” argument in the path string. For the initial direction follow SVG 1.1 [SVG11]<https://drafts.fxtf.org/motion-1/#biblio-svg11>.
<fill-rule><http://dev.w3.org/csswg/css-shapes-1/#typedef-fill-rule> - The filling rule used to determine the interior of the path. See fill-rule<https://svgwg.org/svg2-draft/painting.html#FillRuleProperty> property in SVG for details. Possible values are nonzero<http://dev.w3.org/fxtf/masking/#valuedef-nonzero> or evenodd<http://dev.w3.org/fxtf/masking/#valuedef-evenodd>. Default value when omitted is nonzero<http://dev.w3.org/fxtf/masking/#valuedef-nonzero>.

I know many authors would be happy to see this adopted for clip-path and shape-outside/-inside.

Amelia

On 15 October 2015 at 15:31, Tab Atkins Jr. <jackalmage@gmail.com<mailto:jackalmage@gmail.com>> wrote:
On Wed, Oct 14, 2015 at 9:10 PM, Simon Fraser <smfr@me.com<mailto:smfr@me.com>> wrote:
> I would like the clip-path: property[1] to actually support bezier paths (as
> a naive interpretation of the property name would have you expect).
>
> The syntax would be a path function with an SVG-style path as a string, for
> example:
>
> clip-path: path("M10 10 H 90 V 90 H 10 L 10 10”);
>
> The units wold be interpreted as CSS pixel units, relative to the origin of
> the geometry box. Paths would be animatable, following the same rules as
> SVG.
>
> I have a work-in-progress patch to add support for this to WebKit[2].
>
> Simon
>
> [1] https://drafts.fxtf.org/masking/#the-clip-path

> [2] https://bugs.webkit.org/show_bug.cgi?id=149996


+1.  We've discussed this already (maybe for other properties; shapes
or motion-path, probably?), and path(<string>) is the simplest way to
get arbitrary paths into CSS.

~TJ



Received on Saturday, 17 October 2015 12:38:19 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:49:54 UTC