Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The ::view-transition-old
CSS pseudo-element represents the "old" view state of a view transition — a static screenshot of the old view, before the transition.
During a view transition, ::view-transition-old
is included in the associated pseudo-element tree as explained in The view transition process, provided there's an "old" view state to represent. It is only ever a child of a ::view-transition-image-pair
, and never has any children.
It is a replaced element, and therefore can be manipulated with properties such as object-fit
and object-position
. It has natural dimensions equal to the content's size.
The following default styling is included in the UA stylesheet:
css
@keyframes -ua-view-transition-fade-out {
to {
opacity: 0;
}
}
html::view-transition-old(*) {
position: absolute;
inset-block-start: 0;
inline-size: 100%;
block-size: auto;
animation-name: -ua-view-transition-fade-out;
animation-duration: inherit;
animation-fill-mode: inherit;
}
Note: Additional view transition style sheet styles are also setup to animate ::view-transition-old
. These are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.