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.
