On 9/14/26 5:57 p.m., Helmut Januschka wrote:

Hi Alex,

The main pattern this serves is the “circular reveal”, animating |clip-path: circle()| so the circle fully covers its box. The required end radius is the distance from the center to the farthest corner, which authors today approximate with:

  * a hardcoded |circle(141.42%)| (only correct for square boxes), or
  * computing |Math.hypot(width, height)| in JS and injecting it via a
    custom property.

The JS workaround is common enough that Chrome View Transitions documentation <https://developer.chrome.com/docs/web-platform/view-transitions/same-document> teaches it for the circle-reveal demo (see the |Math.hypot| snippet under “Animating with JavaScript”). That doc even notes: “The animation ends with the circle having a radius to the farthest corner. Although, hopefully this will be possible with CSS in future.”

With it, the pattern becomes |circle(farthest-corner at x y)| no JS, no aspect-ratio assumptions, correct for any box.

This is also partly an interop fix. The keywords are already part of the css-shapes-1 grammar <https://drafts.csswg.org/css-shapes-1/#basic-shape-functions> (|circle()| takes |<radial-size>|, defined in css-images, which includes |closest-corner| and |farthest-corner|), and they already work in |radial-gradient()|, so authors reasonably expect them in |circle()|/|ellipse()|. WebKit shipped support in 2024 and exported the WPTs for it: WebKit/WebKit#31678 <https://github.com/WebKit/WebKit/pull/31678>

Positions:

  * WebKit: support (implemented and shipped) -
    WebKit/standards-positions#719
    <https://github.com/WebKit/standards-positions/issues/719>
  * Mozilla: shipped behind flag - mozilla/standards-positions#1450
    <https://github.com/mozilla/standards-positions/issues/1450>

Thanks - LGTM1

Updated the feature entry as well.

do you have any hints on how i can gather more developer-signal, or is there any documentation on how to get this?

Since this is a "catch up" feature, signals aren't a blocking concern (for me personally, anyways). In general though, you could find blog posts of developers asking for a feature (or describing their excitement about it...), issues filed by developers, or comments in existing issues giving support, etc. Sometimes these can surface in CSSWG discussions, or even TAG issues.

cheers,
helmut


Am Mo., 14. Sept. 2026 um 23:11 Uhr schrieb Alex Russell <[email protected]>:

    I'm a little less worried about browser signals here than I am
    about developer signals. Do we have confirmation that this solves
    an important problem for web authors?

    Best,

    Alex

    On Wednesday, September 2, 2026 at 11:36:29 AM UTC-7 Mike Taylor
    wrote:

        Yes, thanks. :)

        https://github.com/WebKit/standards-positions
        https://github.com/mozilla/standards-positions

        On 9/2/26 2:22 p.m., Chris Harrelson wrote:
        Hi Helmut,

        Just to clarify: Mike is asking for Mozilla and Safari
        standards positions issues, not additional developer signals.

        On Wed, Sep 2, 2026 at 11:20 AM Helmut Januschka
        <[email protected]> wrote:

            trying to figure out to get signals

            Am Mi., 2. Sept. 2026 um 20:19 Uhr schrieb Helmut
            Januschka <[email protected]>:

                sadly, same as on my other feature entry, i forgot
                the checkmark, fixed! sorry

                [email protected] schrieb am Montag, 24. August
                2026 um 19:23:24 UTC+2:

                    On 8/23/26 10:06 a.m., Helmut Januschka wrote:

                    *Contact emails*
                    [email protected]

                    *Specification*
                    https://drafts.csswg.org/css-shapes-1/#basic-shape-functions

                    *Summary*
                    The circle() and ellipse() CSS basic-shape
                    functions accept the closest-corner and
                    farthest-corner radius keywords, in addition to
                    the existing closest-side and farthest-side.
                    These keywords resolve to the Euclidean distance
                    from the shape center to the nearest or farthest
                    corner of the reference box, matching the
                    long-standing behavior of radial-gradient().
                    They work in clip-path, shape-outside, and
                    offset-path, so the same shape syntax accepted
                    by gradients now works for shapes. CL:
                    
https://chromium-review.googlesource.com/c/chromium/src/+/7767079

                    *Blink component*
                    Blink>CSS
                    
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ECSS%22>

                    *Web Feature ID*
                    shapes <https://webstatus.dev/features/shapes>

                    *Motivation*
                    The <radial-extent> keywords closest-corner and
                    farthest-corner are defined for radial gradients
                    and have been interoperably supported there for
                    years. The circle() and ellipse() basic-shape
                    syntax in CSS Shapes Module Level 1 shares the
                    <shape-radius> production with gradients, but
                    Blink (and Gecko) only accepted closest-side /
                    farthest-side for the basic shapes. That means
                    authors who want a circle that exactly inscribes
                    the reference box's farthest corner have to
                    hand-compute sqrt(w*w + h*h)/2 or fall back to a
                    radial-gradient() mask, even though the keyword
                    exists in the same value space. This change
                    fills in the missing keywords so basic shapes
                    have the full <radial-extent> set:
                    closest-corner: the distance from the center to
                    the closest corner of the reference box.
                    farthest-corner: the distance from the center to
                    the farthest corner of the reference box. For
                    ellipse(), which accepts two independent
                    <shape-radius> values in current
                    implementations, each axis resolves
                    independently to the corner Euclidean distance.
                    A spec ambiguity exists about whether ellipse()
                    should accept one <radial-extent> covering both
                    axes (per the spec text) or two independent ones
                    (current implementation reality). This was
                    discussed in
                    https://github.com/w3c/csswg-drafts/issues/13814 and
                    the conclusion from the thread was that the
                    existing two-value interpretation is fine to keep.

                    *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/: No signal

                    /WebKit/: No signal
                    Can we request signals?

                    /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
                    Why not?

                    *Is this feature fully tested by
                    web-platform-tests
                    
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
                    Yes


                    *Flag name on about://flags*
                    /No information provided/

                    *Finch feature name*
                    BasicShapeCornerRadius

                    *Rollout plan*
                    Will ship enabled for all users

                    *Requires code in //chrome?*
                    False

                    *Tracking bug*
                    https://crbug.com/361617757

                    *Estimated milestones*
                    Shipping on desktop         155
                    Shipping on Android         155
                    Shipping on WebView         155
                    Shipping on iOS     155



                    *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/5100672946143232?gate=5910108950364160

                    This intent message was generated by Chrome
                    Platform Status <https://chromestatus.com/>.
-- You received this message because you are
                    subscribed to the Google Groups "blink-dev" group.
                    To unsubscribe from this group and stop
                    receiving emails from it, send an email to
                    [email protected].
                    To view this discussion visit
                    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFmjHKSp4M_xW9Y4_1x56p_kLHBsY8_NdBUgYAqLjcKTUUsS2w%40mail.gmail.com
                    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFmjHKSp4M_xW9Y4_1x56p_kLHBsY8_NdBUgYAqLjcKTUUsS2w%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to
            the Google Groups "blink-dev" group.
            To unsubscribe from this group and stop receiving emails
            from it, send an email to [email protected].
            To view this discussion visit
            
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFmjHKQp%3DoqVbRRX_iUxx3hn7_24XDW_vG5Sb1kJEvrQhUEWCg%40mail.gmail.com
            
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFmjHKQp%3DoqVbRRX_iUxx3hn7_24XDW_vG5Sb1kJEvrQhUEWCg%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to the
        Google Groups "blink-dev" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to [email protected].
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-XQD4u7_3N5i9z7MupFRq_jJVQ5WK5ABwJyr6t6o9_bg%40mail.gmail.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw-XQD4u7_3N5i9z7MupFRq_jJVQ5WK5ABwJyr6t6o9_bg%40mail.gmail.com?utm_medium=email&utm_source=footer>.


--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f68dc11f-78a5-4b7f-a0f3-cc397934aa2c%40chromium.org.

Reply via email to