creatordesign system
GitHub
Page transitions
Animation & Motion · Creator Design System

Page transitions

Scene changes between collections, live: one @view-transition rule, nine flavours, and real links below to go see them fire.

Between-page motion is collection-flavoured: each destination announces itself the way its medium would. One CSS at-rule turns this on for every same-origin navigation — no JavaScript, and a browser that doesn't support it just navigates, which is the whole point of shipping it as progressive enhancement rather than a router.

css
@view-transition {
  navigation: auto;
}

html[data-transition='takeoff']::view-transition-old(root) {
  animation: ptTakeoffOut var(--dur-4) var(--ease-in) both;
}
html[data-transition='takeoff']::view-transition-new(root) {
  animation: ptTakeoffIn var(--dur-4) var(--ease-out) both;
}

the whole mechanism — 05-motion.css, and one data-transition attribute the destination's own shell sets

Try it

Click through — then use the browser's back button, which fires the same transition in reverse. Nine flavours: five completed from the spec below, four built new for this system's own collections.

The rest of the spec

Named, and the keyframe exists in 05-motion.css — it waits for a page in this system to be the destination it describes.

DestinationFlavour
Timelineyears passing, motion-blurred

Disabled entirely under reduced motion — every ::view-transition-* pseudo-element collapses to animation: none, which is what the browser does with @view-transition here anyway. A transition is a scene change, never a loading screen, and never a thing a reader has to wait through.