:active-view-transition
A pseudo-class that matches the root element while a view transition is running, and stops matching when it settles. Chromium has shipped it since May 2024; Firefox 147 was the last browser in.
Delete: the script that adds a marker class to the root before document.startViewTransition() and removes it when the transition finishes, just so your stylesheet can tell a transition is underway.
/* a script toggles this class on <html> */
.is-transitioning .toolbar { pointer-events: none; }
/* the selector tracks the transition itself */
html:active-view-transition .toolbar { pointer-events: none; }One seam. In a browser too old to know this pseudo-class, the selectors spec makes any selector list containing an invalid selector invalid, whole. Appended to an existing comma-separated rule, :active-view-transition takes the other selectors down with it. Give it its own block, or wrap it in :where(), which parses forgivingly. Done that way, failure is graceful twice over: the rule never matches, and a browser without view transitions has no transition to style anyway.
The four desktop stable runs pass the feature’s tests without exception. Neither Android runner produces a number worth reading: Chrome Android fails the suite’s reftests wholesale at the same engine version that passes on desktop, a known harness fault, and Firefox Android has not been tested publicly since February, when this implementation was four weeks old and still failing its tests. If current Firefox on Android is broken here, the cost is transition styles not applying, the graceful end of wrong. Usage is early, about one page load in ninety thousand, which is also the audience: no view transitions, nothing to delete yet.