Contact emails bo...@chromium.org, hvanops...@chromium.org, jakearchib...@chromium.org, khushalsa...@chromium.org, vmp...@chromium.org
Explainer https://github.com/WICG/view-transitions/blob/main/explainer.md <https://github.com/WICG/shared-element-transitions/blob/main/explainer.md> Specification https://www.w3.org/TR/css-view-transitions-1 Summary View Transitions <https://developer.chrome.com/docs/web-platform/view-transitions/> is an API that enables the creation of polished transitions. Web developers only need minimal effort to make transitions look nice. They can choose to use some default animation properties, or they can customize their own transition effects to achieve a desired transition experience. This is accomplished by leveraging user-agents’ ability to persist visual representations of rendered output (i.e. snapshots) and blend them with the live DOM state’s rendered output. The API also allows these animations to be customized via standard CSS animation properties. Note that while this intent is limited to shipping an API for same-document transitions (i.e. by using document.startViewTransition, as outlined in the spec), there is ongoing work to provide this feature for same-origin, cross-document navigations (MPA). MPA support will be added as a follow up via a separate intent to ship. Blink component Blink>ViewTransitions <https://bugs.chromium.org/p/chromium/issues/list?q=component%3ABlink%3EViewTransitions&can=2> TAG review https://github.com/w3ctag/design-reviews/issues/748 TAG review status Pending Risks Interoperability and Compatibility Low. As a new feature, the primary risk is that other browsers do not implement it. But since this is a progressive enhancement, sites should be able to feature-detect and drop usage of the feature easily in browsers where it is not supported without breaking any site functionality. This feature can be feature-detected by checking the existence of the document.startViewTransition function: ```js if (!document.startViewTransition) { /* feature is not available */ } else { /* start transition */ } ``` Gecko: Under consideration ( https://github.com/mozilla/standards-positions/issues/677) WebKit: No signal (https://github.com/WebKit/standards-positions/issues/48) Web developers: Strongly positive interest in and developer experimentation with the API: - Updated developer.chrome article (Twitter) <https://twitter.com/jaffathecake/status/1554460598980812809> - News about the new SET API (Twitter) <https://twitter.com/jaffathecake/status/1524782819431555074> - Dev-built demo using SET (Twitter) <https://twitter.com/jh3yy/status/1550675304280035328> - I/O Session (Youtube <https://www.youtube.com/watch?v=JCJUPJ_zDQ4>) - Dev-built demo using SET (Reddit) <https://www.reddit.com/r/webdev/comments/uyoit1/i_played_around_with_chromes_new_shared_element/> - Dev-built demo using SET (Twitter) <https://twitter.com/OliverJAsh/status/1530261401016705026?t=CXqW2yiIMbH6bLfn8ImINw&s=19> - Dev-built demo using SET (Twitter) <https://twitter.com/charca/status/1561830946462384128> - Dev-built demo using SET (Twitter) <https://twitter.com/AdrianBeceDev/status/1567177956199485450> - Dev-built demo using SET (Twitter) <https://twitter.com/charca/status/1570835238359830529> - https://twitter.com/dannymoerkerke/status/1597187172783693824 - The Shared Element Transition API is Flipping Cool | Chris Coyier <https://chriscoyier.net/2022/10/21/the-shared-element-transition-api-is-fliping-cool/> - Every Transition is a Page Transition? | OddBird <https://www.oddbird.net/2022/06/29/shared-elements/> - https://twitter.com/derSchepp/status/1590709783807791104 - Astro stands to benefit highly from View Transitions | Chris Coyier <https://chriscoyier.net/2022/11/08/astro-stands-to-benefit-highly-from-view-transitions/> - Shared Element Transitions API Part 1 | Smashing Magazine <https://www.smashingmagazine.com/2022/10/ui-animations-shared-element-transitions-api-part1/> Ergonomics None. Activation Low. As with interop/compat risks, the difficulty stems from this being a new feature without support in other browsers. A polyfill for the SPA case would be beneficial. That said, this feature is a progressive enhancement for sites; they can easily use the API and still function correctly on browsers that do not support the feature. Security The primary security constraint is ensuring isolation of graphics resources from multiple origins. The design achieves that by using Chromium's Viz process, similar to site isolation for iframes. See also the security and privacy self-review questionnaire that was completed as part of the TAG review process: https://github.com/WICG/view-transitions/blob/main/security-privacy-questionnaire.md The following issues track review from security/privacy WGs: https://github.com/w3c/security-request/issues/43 and https://github.com/w3cping/privacy-request/issues/107. 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? None. This feature is fully available and functional for WebView. Debuggability The feature can be debugged using standard tooling in devtools. Specifically, the animations drawer tab <https://developer.chrome.com/docs/devtools/css/animations/> can be used to pause and scrub through all animations on generated pseudo-elements. The pseudo DOM structure generated by the user agent can also be inspected and targeted, like other DOM elements, in the style panel. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, 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 DevTrial instructions https://developer.chrome.com/docs/web-platform/view-transitions Flag name ViewTransition Requires code in //chrome? False Tracking bug https://bugs.chromium.org/p/chromium/issues/detail?id=1405452 Measurement Usage is tracked via a UseCounter: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/view_transition/view_transition_supplement.idl;l=9;drc=501455e6942313c87a276e8fde93e507786cc51c Sample links https://developer.chrome.com/docs/web-platform/view-transitions Previous milestones OriginTrial desktop last 106 OriginTrial desktop first 104 DevTrial on desktop 104 OriginTrial Android last 106 OriginTrial Android first 104 DevTrial on Android 104 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 following open issues are awaiting resolution in CSSWG: https://github.com/w3c/csswg-drafts/issues?q=is%3Aopen+css-view-transitions+label%3Acss-view-transitions-1+label%3AAgenda%2B. We anticipate that any change from a resolution on these issues has minimal to no compat risk. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5193009714954240 Links to previous Intent discussions Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/7SMI3IklO4g/m/JS-JojxNAwAJ Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUyUH0939fLa7xH_EuRtgn0MWBzG8qzLMmH0zJ9GBBTh-A%40mail.gmail.com This intent message was generated by Chrome Platform Status <https://chromestatus.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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUxa3FH0pseWhQWg3w0ESfHMhjK3KLyat8G4sQzZ0tmzOA%40mail.gmail.com.