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/CAOMQ%2Bw9U2pYasooOJ%2B9BuZGeRm_0JmFe35Mge2o0N_75Dy5CGA%40mail.gmail.com.
