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.

Reply via email to