- Thanks for the heads-up about the CSSWG discussion. - I will await the CSSWG's feedback before proceeding. - Noted; I'll track the CSSWG issue.
On Fri, May 8, 2026 at 12:54 PM Vladimir Levin <[email protected]> wrote: > I retracted my LGTM while the CSSWG discussion is pending. Thanks! > > Vlad > > On Friday, May 8, 2026 at 11:18:01 AM UTC-4 Chris Harrelson wrote: > >> This intent will need a further review at the CSSWG for possible syntax >> adjustments. See https://github.com/w3c/csswg-drafts/issues/13901. >> >> On Wed, May 6, 2026 at 8:36 AM 'Virali Purbey' via blink-dev < >> [email protected]> wrote: >> >>> Yes, the parsing wpt links were not right. Updated it now. Thanks for >>> pointing it out. >>> >>> >>> >>> *From:* Daniel Bratell <[email protected]> >>> *Sent:* 06 May 2026 21:05 >>> *To:* Rick Byers <[email protected]>; Vladimir Levin < >>> [email protected]> >>> *Cc:* blink-dev <[email protected]>; Virali Purbey < >>> [email protected]> >>> *Subject:* [EXTERNAL] Re: [blink-dev] Re: Intent to Ship: Support >>> 'path-length' as a CSS property. >>> >>> >>> >>> LGTM3 >>> >>> (note Vlad's comment) >>> >>> /Daniel >>> >>> On 2026-05-06 17:30, Rick Byers wrote: >>> >>> LGTM2 >>> >>> >>> >>> On Wed, May 6, 2026 at 11:27 AM Vladimir Levin <[email protected]> >>> wrote: >>> >>> LGTM1, modulo the parsing WPTs: the result seem to be missing. I assume >>> they are there, but maybe the link is incorrect? Can you clarify? >>> >>> >>> >>> Thanks, >>> >>> Vlad >>> >>> On Wednesday, May 6, 2026 at 5:36:39 AM UTC-4 Virali Purbey wrote: >>> >>> *Contact emails* >>> >>> [email protected] >>> >>> >>> >>> *Specification* >>> >>> https://github.com/w3c/svgwg/pull/1073 >>> >>> >>> >>> *Summary* >>> >>> This change introduces a new CSS property, 'path-length', which maps to >>> the existing SVG 'pathLength' presentation attribute. It applies to SVG >>> geometry elements that support 'pathLength' (including <path>, <circle>, >>> <rect>, <line>, <polyline>, <polygon>, and <ellipse>). >>> >>> Exposing 'pathLength' as a CSS property allows authors to specify it via >>> stylesheets, inline styles, and animations, enabling it to participate in >>> normal CSS cascading, specificity, transitions, and animations. The >>> property affects all computations that depend on the total path length, >>> including stroke dash rendering and text positioning along a <textPath>. >>> >>> CSS declarations override the presentation attribute following standard >>> CSS precedence rules. The initial value of 'path-length' is 'none', which >>> represents the absence of an author-supplied path length and is distinct >>> from an explicit numeric value such as '0'. >>> >>> Existing attribute-only behavior is preserved when the feature is >>> disabled. >>> >>> >>> >>> *Blink component* >>> >>> Blink>SVG >>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESVG%22> >>> >>> >>> >>> *Web Feature ID* >>> >>> svg-path-length-css <https://webstatus.dev/features/svg-path-length-css> >>> >>> >>> >>> *Motivation* >>> >>> Today, 'pathLength' can only be specified as an SVG presentation >>> attribute. As a result, it cannot participate in the CSS cascade, >>> specificity, animations, or transitions, unlike other SVG geometry >>> properties such as 'r', 'cx', 'cy', 'x', 'y', and 'd', which are already >>> exposed as CSS properties. >>> >>> This limitation prevents authors from controlling total path length >>> using stylesheets, overriding presentation attributes via CSS, or animating >>> 'pathLength' using standard CSS animation and transition mechanisms. Common >>> authoring patterns, such as CSS-driven stroke dash animations and >>> text-on-path effects that rely on scalable path length, require workarounds >>> or script today. >>> >>> Promoting 'pathLength' to a CSS property aligns it with existing SVG >>> geometry properties, enables full participation in CSS cascading and >>> animation, and closes a long-standing authoring gap identified by the SVG >>> Working Group ( https://github.com/w3c/svgwg/issues/773). Existing >>> attribute behavior is preserved, with CSS declarations taking precedence >>> according to standard cascade rules. >>> >>> >>> >>> *Initial public proposal* >>> >>> *No information provided* >>> >>> >>> >>> *TAG review* >>> >>> Not requested. This property exposes existing SVG `pathLength` attribute >>> behavior through CSS with no new capabilities, no new security surface, and >>> no change to default rendering. It follows the same pattern as other SVG >>> presentation attributes already shipped as CSS properties (`cx`, `cy`, `r`, >>> `d`, etc.) >>> >>> >>> >>> *TAG review status* >>> >>> Not applicable >>> >>> >>> >>> *Goals for experimentation* >>> >>> None >>> >>> >>> >>> *Risks* >>> >>> >>> >>> >>> *Interoperability and Compatibility * >>> >>> Behavior change risk: >>> Previously, pathLength was only accessible as an SVG presentation >>> attribute. This change introduces a new path-length CSS property that maps >>> to the existing SVG behavior. Because this is a new CSS property and does >>> not alter default rendering when unused, the risk to existing content is >>> minimal. The presentation attribute mapping follows standard SVG/CSS >>> cascade rules, meaning CSS declarations take precedence over the pathLength >>> attribute, consistent with how other SVG presentation attributes behave. >>> >>> Mitigation: >>> The feature is guarded by a Finch flag (SvgPathLengthCssProperty), which >>> can be used as a kill switch if unexpected compatibility issues arise. >>> >>> Edge cases: >>> Blink treats `path-length: 0` as an infinite scaling factor: any >>> non-zero dash value in `stroke-dasharray` extends to infinity, rendering >>> the stroke as solid. This matches the SVG 2 spec text ("a value of zero is >>> valid and must be treated as a scaling factor of infinity"). Earlier WG >>> discussions on zero-value semantics ( >>> https://github.com/w3c/svgwg/issues/81, >>> https://github.com/w3c/svgwg/issues/383) have been resolved and closed. >>> The spec PR ( https://github.com/w3c/svgwg/pull/1073) has WG consensus >>> and codifies this behavior. This change preserves Blink's existing >>> attribute semantics for `pathLength = 0` while exposing the same behavior >>> through CSS, verified by `path-length-css-zero.tentative.svg`. >>> >>> >>> >>> *Gecko*: >>> No signal >>> https://github.com/mozilla/standards-positions/issues/1363 >>> >>> >>> >>> *WebKit*: >>> No signal >>> https://github.com/WebKit/standards-positions/issues/621 >>> >>> >>> >>> *Web developers*: >>> Positive >>> 8 users have upvoted for this CrBug. >>> >>> >>> >>> *Other signals*: >>> >>> >>> >>> *Security* >>> >>> This feature introduces a new CSS property for an existing SVG concept >>> (`pathLength`). It does not add new capabilities beyond what authors can >>> already express via the `pathLength` attribute, and it reuses existing >>> `parsing/rendering` logic. No new cross-origin access, network access, or >>> privilege changes are introduced. >>> >>> >>> >>> *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. This change does not deprecate or modify existing APIs. It >>> introduces a new CSS property that maps to an existing SVG presentation >>> attribute and preserves existing attribute-only behavior when the feature >>> flag is disabled. >>> >>> >>> >>> *Debuggability* >>> >>> Issues related to this feature are debuggable using existing CSS and SVG >>> inspection tools. The computed value of `path-length` is visible in >>> DevTools’ Computed Style panel. Invalid values are rejected at parse time, >>> and the "none" initial value is represented distinctly from authored >>> numeric values (including 0). No new debugging tooling is required. >>> >>> >>> >>> *Will this feature be supported on all six Blink platforms (Windows, >>> Mac, Linux, ChromeOS, Android, and Android WebView)?* >>> >>> Yes >>> >>> >>> >>> *Is this feature fully tested by **web-platform-tests* >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> *?* >>> >>> Yes >>> >>> >>> Parsing: >>> - Valid values: >>> https://wpt.fyi/results/svg/geometry/parsing/path-length-valid.tentative.svg >>> >>> - Invalid values: >>> https://wpt.fyi/results/svg/geometry/parsing/path-length-invalid.tentative.svg >>> >>> - Computed values: >>> https://wpt.fyi/results/svg/geometry/parsing/path-length-computed.tentative.svg >>> >>> >>> Property behavior: >>> - Inheritance: >>> https://wpt.fyi/results/svg/path/property/inheritance.tentative.svg >>> >>> Animations: >>> - SVG animate element: >>> https://wpt.fyi/results/svg/animations/animate-pathLength.tentative.html >>> >>> >>> - CSS interpolation: >>> https://wpt.fyi/results/svg/path/animations/path-length-interpolation.tentative.html >>> >>> >>> Rendering / distance: >>> - CSS path-length rendering: >>> https://wpt.fyi/results/svg/path/distance/path-length-css-property.tentative.svg >>> >>> - CSS overrides presentation attribute: >>> https://wpt.fyi/results/svg/path/distance/path-length-css-overrides-presentation-attribute.tentative.svg >>> >>> - Zero value handling (path-length: 0): >>> https://wpt.fyi/results/svg/path/distance/path-length-css-zero.tentative.svg >>> >>> >>> Text on path: >>> - textPath with display:none: >>> https://wpt.fyi/results/svg/text/reftests/textpath-pathlength-css-display-none.tentative.svg >>> >>> >>> >>> *Flag name on about://flags* >>> >>> *No information provided* >>> >>> >>> >>> *Finch feature name* >>> >>> SvgPathLengthCssProperty >>> >>> >>> >>> *Rollout plan* >>> >>> Will ship enabled for all users >>> >>> >>> >>> *Requires code in //chrome?* >>> >>> False >>> >>> >>> >>> *Tracking bug* >>> >>> https://issues.chromium.org/issues/40670251 >>> >>> >>> >>> *Estimated milestones* >>> >>> Shipping on desktop >>> >>> 149 >>> >>> Shipping on Android >>> >>> 149 >>> >>> Shipping on WebView >>> >>> 149 >>> >>> >>> >>> *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).* >>> >>> The spec PR ( https://github.com/w3c/svgwg/pull/1073) has WG consensus >>> and is about to be merged. No anticipated spec changes that would introduce >>> web compat or interop risk. >>> >>> >>> >>> *Link to entry on the Chrome Platform Status* >>> >>> https://chromestatus.com/feature/4861677550043136?gate=5806183338344448 >>> >>> >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com/>. >>> >>> >>> >>> *From <* >>> *https://chromestatus.com/feature/4861677550043136/gate/5806183338344448/intent* >>> <https://chromestatus.com/feature/4861677550043136/gate/5806183338344448/intent> >>> *>* >>> >>> >>> >>> -- >>> 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/43c88a25-5bcb-437f-bba8-15b7a5828ffcn%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/43c88a25-5bcb-437f-bba8-15b7a5828ffcn%40chromium.org?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/CAFUtAY_dbxDO9_ET_WxgmGYMtzK2pGhb7ykOkXZ05SsgJZaq7g%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_dbxDO9_ET_WxgmGYMtzK2pGhb7ykOkXZ05SsgJZaq7g%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/SIAP153MB12130B78F142B0EFAB4BCBB7C13F2%40SIAP153MB1213.APCP153.PROD.OUTLOOK.COM >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SIAP153MB12130B78F142B0EFAB4BCBB7C13F2%40SIAP153MB1213.APCP153.PROD.OUTLOOK.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/b2686cd6-8c6f-4663-bb4b-4cab7e263c52n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b2686cd6-8c6f-4663-bb4b-4cab7e263c52n%40chromium.org?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/CAJR2-7%2B%2BU6GiG%2BRgQ53F_uSzbCBVQ5j2Lk4AJb5Cdo6ncCB-9g%40mail.gmail.com.
