- 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.

Reply via email to