LGTM2. That said, I'd note Mozilla's desire in the standards position thread to couple this with the multi-page transition work. I agree with your position that the two can be decoupled, and I don't see anything that screams back-compat risk skimming through the followup issues that the TAG created. I likewise don't see anything that jumps out at me as locking us into any particular design for a declarative version of this mechanism as our friends in the TAG have pointed towards.
Shipping this as an iterative step sounds like it satisfies some developer interest, and give us valuable implementation experience that can inform further development. Good luck landing it! -mike On Mon, Jan 23, 2023 at 10:19 PM Mike Taylor <miketa...@chromium.org> wrote: > LGTM1 > > On 1/23/23 2:26 PM, Khushal Sagar wrote: > > > > On Mon, Jan 23, 2023 at 1:55 PM Mike Taylor <miketa...@chromium.org> > wrote: > >> Hi Khushal, >> >> On 1/19/23 3:12 PM, Khushal Sagar wrote: >> >> 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 >> >> Can you confirm that all the follow-up issues >> <https://github.com/w3ctag/design-reviews/issues/748#issuecomment-1379517669> >> filed in response to feedback in this review are backwards-compatible with >> what you propose to ship now? >> > > Yes, most follow-up issues filed based on TAG feedback are about > transitions initiated from navigations. This is part of the MPA work which > we plan to ship as a follow up and it can be shipped independently of the > same-document transitions covered by this intent. > > The only issue on that review which concerns same-document transitions is > #8319 <https://github.com/w3c/csswg-drafts/issues/8319>, a syntax which > would allow selecting a subset of generated pseudo-elements. This syntax > addition can be made in a backwards-compatible way. > > Thanks, SGTM. > > >> 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 >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUxa3FH0pseWhQWg3w0ESfHMhjK3KLyat8G4sQzZ0tmzOA%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 blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/de3e2580-8a8c-b15f-5a92-70e21f3999b2%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/de3e2580-8a8c-b15f-5a92-70e21f3999b2%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 blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKXHy%3DcSv8q7GyT4hRHUfH%3DJvFLSQNVJD3PFcTXc%3D_QEP8VBZA%40mail.gmail.com.