CSS View Transition Pseudo-elements Explained
Blink28624 Sep 2025

CSS View Transition Pseudo-elements Explained

These sources provide a detailed, technical explanation of the View Transition API implementation within the Chromium web browser, focusing on how CSS pseudo-elements enable smooth animations. The first source explains that view transition pseudos (like ::view-transition-old() and ::view-transition-new()) are temporary, browser-synthesized overlays used to capture and animate visual snapshots of elements during state changes. The second, more extensive source describes the low-level C++ classes in the Blink rendering engine and the cc compositor that orchestrate this process, including the DocumentTransition class, which manages the lifecycle, snapshot capture, and pseudo-element creation, and the SurfaceAnimationManager in the Viz component, which handles the final, performant GPU-accelerated animation of the saved frames using specialized layers and directives. Together, the texts map the high-level CSS API to the complex, multi-process architecture of Chromium, explaining how old and new content are matched, isolated on the top layer, and composited for animation.


Episoder(427)

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

These are the nodes within those four trees. Every piece of painted content (a “paint chunk”) is associated with a tuple of (Transform, Clip, Effect, Scroll) nodes—its PropertyTreeState. This precisel...

10 Okt 202533min

blink::PaintPropertyTreeBuilder

blink::PaintPropertyTreeBuilder

builds/updates paint property trees.Consumes the layout/fragment data and produces the four paint property trees (Transform, Clip, Effect, Scroll) for the current frame. These trees encode coordinate ...

10 Okt 202547min

blink::PrePaintTreeWalk

blink::PrePaintTreeWalk

cross‑frame pre‑paint traversal. Runs in the InPrePaint lifecycle phase. Walks the entire layout tree starting at the root LocalFrameView, updating paint invalidation state and computing the context n...

10 Okt 202531min

blink::NGPhysicalFragment and friends

blink::NGPhysicalFragment and friends

Layout takes the styled DOM and produces a fragment tree of positioned boxes. In modern Blink this is LayoutNG; the core artifact is NGPhysicalFragment, which stores geometry and is used downstream fo...

10 Okt 202537min

blink::StyleEngine

blink::StyleEngine

style invalidation & resolution (recalc). 
Given DOM/style changes since the last frame, StyleEngine computes updated ComputedStyles, manages active stylesheets/media query state, and marks the right ...

10 Okt 202534min

blink::Document & blink::DocumentLifecycle

blink::Document & blink::DocumentLifecycle

states that gate phases. The document owns the DOM and keeps a DocumentLifecycle state machine that ensures we do things in phase order (style before layout, pre‑paint before paint, etc.). Lifecycle t...

10 Okt 202535min

blink::LocalFrameView

blink::LocalFrameView

orchestrates style → layout → pre‑paint/paint for a frame. This is the workhorse that actually runs lifecycle phases. On a frame tick from WebFrameWidgetImpl, it goes through style recalc, layout (Lay...

9 Okt 202544min

blink::LocalFrame

blink::LocalFrame

the document host and local‑root boundary.
The local frame owns the Document and its LocalFrameView. The local root frame coordinates lifecycle for its subtree (including OOPIF boundaries handled late...

9 Okt 202532min

Populært innen Teknologi

lydartikler-fra-aftenposten
romkapsel
teknisk-sett
nasjonal-sikkerhetsmyndighet-nsm
rss-impressions-2
teknologi-og-mennesker
energi-og-klima
elektropodden
hans-petter-og-co
shifter
smart-forklart
tomprat-med-gunnar-tjomlid
rss-ki-praten
rss-alt-som-gar-pa-strom
rss-for-alarmen-gar
fornybaren
pedagogisk-intelligens
rss-snakk-om-sikkerhet
rss-praktisk-proptech
rss-bouvet-bobler