This intent covers two new keywords for view-transition-name: - 'match-element' generates a unique id based on the element's identity and renames the same for this element. This is used in Single Page App cases where the element is being moved around and the desire is to animate it with a view transition - 'auto' generates a unique id based on the element's id attribute. This value remains the same for the same ids regardless of the element, but does not otherwise match the view-transition-name named with the same ident as the id. This can be used in both Single and Multi Page Apps to match elements based on their id attributes. Allow the 'auto' keyword as a value for the 'view-transition-name' CSS property. This generates a unique name for the element, and reduces the burden of having to invent unique names for participating elements.
None
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
None
https://wpt.fyi/results/css/css-view-transitions/auto-name-from-id.html?label=experimental&label=master&aligned https://wpt.fyi/results/css/css-view-transitions/navigation/auto-name-from-id.html?label=experimental&label=master&aligned
Shipping on desktop | 136 |
Shipping on Android | 136 |
Shipping on WebView | 136 |
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).
NoneContact emails nrose...@chromium.org, vmp...@chromium.org
Explainer https://github.com/WICG/view-transitions/blob/main/auto-name-explainer.md
Specification https://drafts.csswg.org/css-view-transitions-2/#auto-vt-name
SummaryThis intent covers two new keywords for view-transition-name: - 'match-element' generates a unique id based on the element's identity and renames the same for this element. This is used in Single Page App cases where the element is being moved around and the desire is to animate it with a view transition - 'auto' generates a unique id based on the element's id attribute. This value remains the same for the same ids regardless of the element, but does not otherwise match the view-transition-name named with the same ident as the id. This can be used in both Single and Multi Page Apps to match elements based on their id attributes. Allow the 'auto' keyword as a value for the 'view-transition-name' CSS property. This generates a unique name for the element, and reduces the burden of having to invent unique names for participating elements.
Blink component Blink>CSS
TAG review https://github.com/w3ctag/design-reviews/issues/1001
TAG review status Issues addressed
Risks
Interoperability and CompatibilityNone
Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1198)
WebKit: Shipped/Shipping (https://webkit.org/blog/16301/webkit-features-in-safari-18-2)
Web developers: Positive This is a highly requested feature to prevent the need to uniquely identify each participating view transition element.
Other signals:
WebView application risksDoes this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
DebuggabilityNone
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? Yeshttps://wpt.fyi/results/css/css-view-transitions/auto-name-from-id.html?label=experimental&label=master&aligned https://wpt.fyi/results/css/css-view-transitions/navigation/auto-name-from-id.html?label=experimental&label=master&aligned
Flag name on about://flags
Finch feature name CSSViewTransitionAutoName
Requires code in //chrome? False
Tracking bug https://issues.chromium.org/issues/399877975
Estimated milestones Shipping on desktop 136 Shipping on Android 136 Shipping on WebView 136
Anticipated spec changesOpen 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).
None
Generally in good shape, but I have questions about potential open spec issues.On Friday, March 21, 2025 at 4:09:17 AM UTC+9 Chromestatus wrote:Contact emails nrose...@chromium.org, vmp...@chromium.org
Explainer https://github.com/WICG/view-transitions/blob/main/auto-name-explainer.md
Specification https://drafts.csswg.org/css-view-transitions-2/#auto-vt-name
SummaryThis intent covers two new keywords for view-transition-name: - 'match-element' generates a unique id based on the element's identity and renames the same for this element. This is used in Single Page App cases where the element is being moved around and the desire is to animate it with a view transition - 'auto' generates a unique id based on the element's id attribute. This value remains the same for the same ids regardless of the element, but does not otherwise match the view-transition-name named with the same ident as the id. This can be used in both Single and Multi Page Apps to match elements based on their id attributes. Allow the 'auto' keyword as a value for the 'view-transition-name' CSS property. This generates a unique name for the element, and reduces the burden of having to invent unique names for participating elements.
Blink component Blink>CSS
TAG review https://github.com/w3ctag/design-reviews/issues/1001
TAG review status Issues addressed
Risks
Interoperability and CompatibilityNone
I guess there is some small compat risk in that people might have previously named their view transitions "auto" or "match-element", but we're hoping that's rare?
Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1198)
WebKit: Shipped/Shipping (https://webkit.org/blog/16301/webkit-features-in-safari-18-2)Safari seems to have only shipped "auto" based on that blog post. Do you know their thoughts on "match-element"? Maybe based on https://wpt.fyi/results/css/css-view-transitions/match-element-name.html?label=master&label=experimental&aligned they've also implemented match-element.
Web developers: Positive This is a highly requested feature to prevent the need to uniquely identify each participating view transition element.
Other signals:
WebView application risksDoes this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
DebuggabilityNone
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? Yeshttps://wpt.fyi/results/css/css-view-transitions/auto-name-from-id.html?label=experimental&label=master&aligned https://wpt.fyi/results/css/css-view-transitions/navigation/auto-name-from-id.html?label=experimental&label=master&aligned
Flag name on about://flags
Finch feature name CSSViewTransitionAutoName
Requires code in //chrome? False
Tracking bug https://issues.chromium.org/issues/399877975
Estimated milestones Shipping on desktop 136 Shipping on Android 136 Shipping on WebView 136
Anticipated spec changesOpen 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).
NoneAre any of these relevant?
LGTM2
--
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_MKpO5%3DC%2B6O3C6v443Ywr8cjU-rHijm%2BvmZrLob5EW1w%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
It seems like Jake's concern is well founded. Was this discussed at CSS WG? Do we understand why this problematic design is going forward in other engines?
Best,Alex
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
You received this message because you are subscribed to a topic in the Google Groups "blink-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/blink-dev/5LfSXRBkeAY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NJq5G9PspB7EW4kQ3EbqB4PD4oF5uQ%3Du0WBRS2%2BuXVcQ%40mail.gmail.com.
On Tuesday, March 25, 2025 at 5:12:17 AM UTC-4 Jake Archibald wrote:This issue wouldn't happen if any of the following was done instead:
- Each element was assigned a unique view-transition-name ident
- view-transition-name: match-element was used. It doesn't do anything with the ID attribute.
- Each element was given a unique data-vtn attribute, and view-transition-name: attr(data-vtn type(<custom-ident>)) - this is ok because it isn't overloading an existing attribute with new behaviours, and developers can easily search the codebase for data-vtn to see how it's used.
Were any of these alternatives considered?
Until this feature (correct me if I'm wrong), adding a unique ID to an element was safe. With this feature, that's no longer the case.
This seems like a worthwhile question to bring back to the TAG and/or the CSSWG. Looking at the TAG review, it doesn't seem like it was discussed.
This should 100% not be the reasoning for shipping a feature we think is bad.
Are we seeing real-life interop pressure? How many sites are already using `auto`? What's the user experience in Chromium for ones that do?
This is a pretty big change for the platform, and I don't see the benefit.This issue wouldn't happen if any of the following was done instead:
- Each element was assigned a unique view-transition-name ident
- view-transition-name: match-element was used. It doesn't do anything with the ID attribute.
- Each element was given a unique data-vtn attribute, and view-transition-name: attr(data-vtn type(<custom-ident>)) - this is ok because it isn't overloading an existing attribute with new behaviours, and developers can easily search the codebase for data-vtn to see how it's used.
This is in addition to the issues around the API behaving differently between same-document and cross-document transitions. This is fine with match-element, as it simply doesn't work cross-document, and the browser could warn developers if they try to use it. Whereas view-transition-name: auto is intended to sort-of work cross-document, but will not give the same results as a same-document transition.
I'm sad that the reasoning given for shipping this is "well, Apple just went ahead and shipped it so I suppose we should too".
I'm not convinced this is a huge footgun. Yes, it's a convenience value that allows auto matching in MPA where there is no other way to automatically match without changes to the dom (for a custom attribute). Doing these modification is not far from just giving unique names to view-transition-name, albeit with less typing.Is it perfect? No. I suspect that the dynamic id case that Jake gave in conjunction with auto naming is the only problematic case in that the transition won't match to what the author may want (although it's also wrong to say it isn't what they want -- it's something of which they have to be cognizant).I agree with Noam that the discrepancy in Interop is likely cause more confusion in these cases. I'm not using Interop as justification for shipping this, but only pointing out that IMHO the problem with auto is not as severe as described in this thread.As for the next steps, I'm fine with continuing the discussion with TAG. With respect to CSSWG, my sense is that the discussion in this thread won't sway the decision.I'd like to understand what decision we would make here if TAG agrees with Jake's concern. Again to reiterate, the concern is valid, but is the risk of this developer confusion great enough to prevent us from adding this feature?
Thanks,VladOn Tue, Mar 25, 2025, 7:37 a.m. Jake Archibald <jaffat...@gmail.com> wrote:On Tue, 25 Mar 2025 at 10:44, Noam Rosenthal <nrose...@chromium.org> wrote:Until this feature (correct me if I'm wrong), adding a unique ID to an element was safe. With this feature, that's no longer the case.This seems like a worthwhile question to bring back to the TAG and/or the CSSWG. Looking at the TAG review, it doesn't seem like it was discussed.Happy to take this back to TAG, but would defer to Vlad for next steps.Not counting on this leading to anything actionable though as Apple were very adamant about keeping things as is in the last few discussions about this,following the CSSWG process that things can stay in the spec unless there is a consensus to remove them.This should 100% not be the reasoning for shipping a feature we think is bad.If API owners think that this is "bad" then we definitely shouldn't ship it, or ship only match-element which everyone seems to agree on.I would describe this as "not ideal" and that keeping interop on this is the lesser evil.Are we seeing real-life interop pressure? How many sites are already using `auto`? What's the user experience in Chromium for ones that do?It's not an existing backwards compat issue. But we'd be introducing a slight inconsistency from the get go which IMO is arguably worse than shipping the whole thing.As a web developer I'd probably end up being confused by this whole thing if Webkit and chromium end up shipping something slightly different with a lack of consensus attached to it.
--
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 blink-dev+...@chromium.org.
On 3/25/25 1:39 PM, Yoav Weiss (@Shopify) wrote:
On Tue, Mar 25, 2025 at 10:37 AM Vladimir Levin <vmp...@chromium.org> wrote:
I'm not convinced this is a huge footgun. Yes, it's a convenience value that allows auto matching in MPA where there is no other way to automatically match without changes to the dom (for a custom attribute). Doing these modification is not far from just giving unique names to view-transition-name, albeit with less typing.
Is it perfect? No. I suspect that the dynamic id case that Jake gave in conjunction with auto naming is the only problematic case in that the transition won't match to what the author may want (although it's also wrong to say it isn't what they want -- it's something of which they have to be cognizant).
I agree with Noam that the discrepancy in Interop is likely cause more confusion in these cases. I'm not using Interop as justification for shipping this, but only pointing out that IMHO the problem with auto is not as severe as described in this thread.
As for the next steps, I'm fine with continuing the discussion with TAG. With respect to CSSWG, my sense is that the discussion in this thread won't sway the decision.
I'd like to understand what decision we would make here if TAG agrees with Jake's concern. Again to reiterate, the concern is valid, but is the risk of this developer confusion great enough to prevent us from adding this feature?
I don't think the risk here is developer confusion. The risk is that adding a unique ID attribute becomes an unsafe operation.
On 3/25/25 1:39 PM, Yoav Weiss (@Shopify) wrote:
In my experience, there's always a non-zero specificity foot gun risk for non-trivial sites, depending on how your CSS is written (or more likely, legacy of CSS you inherited). It sucks when you run into it, but I don't think this change is novel in that sense.On Tue, Mar 25, 2025 at 10:37 AM Vladimir Levin <vmp...@chromium.org> wrote:
I'm not convinced this is a huge footgun. Yes, it's a convenience value that allows auto matching in MPA where there is no other way to automatically match without changes to the dom (for a custom attribute). Doing these modification is not far from just giving unique names to view-transition-name, albeit with less typing.
Is it perfect? No. I suspect that the dynamic id case that Jake gave in conjunction with auto naming is the only problematic case in that the transition won't match to what the author may want (although it's also wrong to say it isn't what they want -- it's something of which they have to be cognizant).
I agree with Noam that the discrepancy in Interop is likely cause more confusion in these cases. I'm not using Interop as justification for shipping this, but only pointing out that IMHO the problem with auto is not as severe as described in this thread.
As for the next steps, I'm fine with continuing the discussion with TAG. With respect to CSSWG, my sense is that the discussion in this thread won't sway the decision.
I'd like to understand what decision we would make here if TAG agrees with Jake's concern. Again to reiterate, the concern is valid, but is the risk of this developer confusion great enough to prevent us from adding this feature?
I don't think the risk here is developer confusion. The risk is that adding a unique ID attribute becomes an unsafe operation.
That would mean that e.g. CMSes that have multiple actors contributing code to the page (e.g. the developer, the theme and plugins) would now need to police/prevent all actors from using `view-transition-name: auto` because some combinations of code would result in weird and hard to figure-out bugs.
That seems like a fundamental shift, which I'd argue we need to make only if we have very good reasons to go that path.
On the front of interop risk of not shipping this - what happens today if developers are using `auto`? Do we expect them to feature detect it? And if so, what do we expect them to do in the fallback case?
--
--
Thanks,Vlad
On Tue, Mar 25, 2025, 7:37 a.m. Jake Archibald <jaffat...@gmail.com> wrote:
On Tue, 25 Mar 2025 at 10:44, Noam Rosenthal <nrose...@chromium.org> wrote:
Until this feature (correct me if I'm wrong), adding a unique ID to an element was safe. With this feature, that's no longer the case.
This seems like a worthwhile question to bring back to the TAG and/or the CSSWG. Looking at the TAG review, it doesn't seem like it was discussed.
Happy to take this back to TAG, but would defer to Vlad for next steps.Not counting on this leading to anything actionable though as Apple were very adamant about keeping things as is in the last few discussions about this,following the CSSWG process that things can stay in the spec unless there is a consensus to remove them.
This should 100% not be the reasoning for shipping a feature we think is bad.
If API owners think that this is "bad" then we definitely shouldn't ship it, or ship only match-element which everyone seems to agree on.I would describe this as "not ideal" and that keeping interop on this is the lesser evil.Are we seeing real-life interop pressure? How many sites are already using `auto`? What's the user experience in Chromium for ones that do?
It's not an existing backwards compat issue. But we'd be introducing a slight inconsistency from the get go which IMO is arguably worse than shipping the whole thing.As a web developer I'd probably end up being confused by this whole thing if Webkit and chromium end up shipping something slightly different with a lack of consensus attached to it.
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2NQKc%2Bh_JK4sDxYKN0YDLJbff8qL1facbxZipvsYw0v2Q%40mail.gmail.com.
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/54fc599d-3e1a-4d0b-88c5-4a2db9f93410%40chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
--
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 blink-dev+unsubscribe@chromium.org.