[csswg-drafts] [css-masking] basic-shape interpolation not interoperable. (#12339)

emilio has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-masking] basic-shape interpolation not interoperable. ==
TLDR:

 * In Gecko and WebKit, `clip-path: circle(0%)` and `circle(0% at center)` is not interpolable, but it is in Chrome.
 * This is because, for `offset-path`, an omitted `<position>` value is different from a non-omitted one, see [this](https://drafts.fxtf.org/motion-1/#valdef-ray-at-position), which is for `ray()` but also applies to `circle()` and `ellipse()`, afaict. On `clip-path`, an omitted position will always be resolved to `center`, but _at used value time_.

In Blink, it seems they allow interpolating this for clip-path (haven't checked if they deal with offset-path correctly yet).

To me, it feels weird that `<basic-shape>`s would interpolate differently in `offset-path` and `clip-path`, specially if they don't e.g. serialize differently (you could argue that `clip-path: circle(0% at center)` should serialize to `clip-path: circle(0%)` otherwise).

So I think the WebKit and Firefox behavior is the most reasonable one, but since this is not tested and not super well specified, I think I'd bring it to the group...

cc @BorisChiou @smfr.

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12339 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Sunday, 15 June 2025 12:51:56 UTC