[csswg-drafts] [css-view-transitions-1] Can't we just remove `transition root pseudo-element` and `show view transition tree` from the spec? They seem unnecessary. (#12760)

Psychpsyo has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-view-transitions-1] Can't we just remove `transition root pseudo-element` and `show view transition tree` from the spec? They seem unnecessary. ==
View Transitions 1 says that a view transition has a
> **transition root pseudo-element**
a [::view-transition](https://drafts.csswg.org/css-view-transitions-1/#selectordef-view-transition). Initially a new ::view-transition.

This implies that a new `::view-transition` gets created for every view transition and they all originate from the document element, all the time.
So then document gets extended with
> **show view transition tree**
A boolean. Initially false.
When this is true, [this](https://webidl.spec.whatwg.org/#this)’s [active view transition](https://drafts.csswg.org/css-view-transitions-1/#document-active-view-transition)’s [transition root pseudo-element](https://drafts.csswg.org/css-view-transitions-1/#viewtransition-transition-root-pseudo-element) renders as a child of this’s [document element](https://dom.spec.whatwg.org/#document-element), with this’s document element is its [originating element](https://drafts.csswg.org/selectors-4/#originating-element).

so that it can control which of these gets rendered and when. (Note: it's only ever one and its contents stop being useful once it stops being rendered)

Would it not be simpler to just fill `::view-transition` with content in [Setup transition pseudo-elements](https://drafts.csswg.org/css-view-transitions-1/#setup-transition-pseudo-elements-algorithm) (like right now), and then remove all that content in [Clear view transition](https://drafts.csswg.org/css-view-transitions-1/#clear-view-transition)? (instead of setting **show view transition tree** to false) Rendering an empty `::view-transition` does nothing, any references to the **transition root pseudo-element** can just talk about the `::view-transition` on the document element instead and, from what I can tell, no other spec ever tries to read from **show view transition tree** so it's now unnecessary.

TLDR: `::view-transition` is already defined, which implies it to exist anyways and there is currently only ever one of them being rendered so I don't see why [show view transition tree](https://drafts.csswg.org/css-view-transitions-1/#document-show-view-transition-tree) and [transition root pseudo-element](https://drafts.csswg.org/css-view-transitions-1/#viewtransition-transition-root-pseudo-element) need to exist. They seem to be doing a bunch of paperwork and allocations and defining of stuff for no reason.

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12760 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 9 September 2025 23:27:38 UTC