Intent to Ship: Support path() and shape() in shape-outside

107 views
Skip to first unread message

Chromestatus

unread,
Apr 20, 2026, 12:32:02 PM (2 days ago) Apr 20
to blin...@chromium.org, cg...@chromium.org
Contact emails
cg...@chromium.org

Specification
https://drafts.csswg.org/css-shapes/#shape-outside-property

Summary
Adds support for the path() and shape() shape functions in the CSS shape-outside property. These functions allow developers to define float exclusion shapes using rectangle coordinates, aligning Chrome with Firefox and Safari which already support this feature.

Blink component
Blink>CSS

Web Feature ID
shape-outside

Motivation
The CSS shape-outside property currently accepts basic shape functions (circle(), ellipse(), inset(), polygon()) and the url() function for image-based shapes, but it does not support path() or the newer shape() function. This is an inconsistency in the CSS Shapes specification, since path() and shape() are already supported in other CSS properties such as clip-path and offset-path. Web developers who want to wrap text around complex, arbitrary shapes are forced to work around this limitation by using image-based workarounds (e.g., transparent PNG images with url()), which are less ergonomic, harder to maintain, not responsive, and not animatable. There is no way today to use an SVG-style path string or a shape() command directly in shape-outside. Supporting path() and shape() in shape-outside brings parity with clip-path and offset-path, reduces the need for image-based hacks, and enables developers to define complex text-wrapping shapes inline in CSS. It also enables shape animation when combined with CSS transitions and animations, improving the expressiveness and capability of CSS layout.

Initial public proposal
No information provided

TAG review
No information provided

TAG review status
Not applicable

Goals for experimentation
None

Risks


Interoperability and Compatibility
No information provided

Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=2017356)

WebKit: No signal

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No information provided


Debuggability
No information provided

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No

Is this feature fully tested by web-platform-tests?
Yes


Flag name on about://flags
No information provided

Finch feature name
CSSShapeOutsidePathAndShapeSupport

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/u/2/issues/502328208

Estimated milestones
Shipping on desktop149
Shipping on Android149
Shipping on WebView149
Shipping on iOS149


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5080980370096128?gate=6491820889604096

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69de62f9.050a0220.b4a7a.0053.GAE%40google.com


This intent message was generated by Chrome Platform Status.

Jason Leo

unread,
Apr 21, 2026, 11:23:44 AM (yesterday) Apr 21
to blink-dev, Chromestatus, Jason Leo
> Summary
Adds support for the path() and shape() shape functions in the CSS shape-outside property. These functions allow developers to define float exclusion shapes using rectangle coordinates, aligning Chrome with Firefox and Safari which already support this feature.

The summary mistakenly says Firefox and Safari already support this feature; they don't. It's not updated in the Chrome status entry.


This should be Positive(they put it into interop-2026-shape); Updated in the Chrome status entry

Alex Russell

unread,
11:19 AM (12 hours ago) 11:19 AM
to blink-dev, Jason Leo, Chromestatus
Hey Jason,

Cool too this being implemented. We discussed this briefly at this morning's API OWNERS call and were hoping you might be able to file explicit standards position requests with Mozilla and WebKit. It's also not clear what the developer interest here is. Your note links to the Interop feature set for 2026, but looking at the tests included in Interop, I don't see WebKit failing anything here:

https://wpt.fyi/results/?label=master&label=experimental&aligned&view=interop&q=label%3Ainterop-2026-shape

And I do see a blog post from them mentioning the feature:

https://webkit.org/blog/16794/the-css-shape-function/

Is it shipped in WebKit?

Best,

Alex

一丝

unread,
1:22 PM (10 hours ago) 1:22 PM
to blink-dev, sligh...@chromium.org, Jason Leo, Chromestatus

Noam Rosenthal

unread,
2:35 PM (8 hours ago) 2:35 PM
to 一丝, blink-dev, sligh...@chromium.org, Jason Leo, Chromestatus
On Wed, Apr 22, 2026 at 6:22 PM 一丝 <yio...@gmail.com> wrote:
And I do see a blog post from them mentioning the feature:

https://webkit.org/blog/16794/the-css-shape-function/

To be clear, when they published this blog post they supported clip-path: shape() and offset-path: shape(), which is what chromium currently supports as well.

Jason Leo

unread,
5:25 PM (6 hours ago) 5:25 PM
to blink-dev, Alex Russell, Jason Leo, Chromestatus
Hi Alex,

> were hoping you might be able to file explicit standards position requests with Mozilla and WebKit

I think I may only need to send position requests to WebKit, as Mozilla already add path and shape into interop-2026-shape

This post is only for clip-path, in fact, we already support both in clip-path, too.

> Is it shipped in WebKit?

No, and even worse, the safari will crash if it sees `shape(...)` inside `shape-outside` until the recently fixed PR, and you can check here to see that they are not supported.


Best regards,
Jason
Reply all
Reply to author
Forward
0 new messages