A sequence of transitions
Four cards follow one another, each joined to the next by a different transition, and the first fades in and the last fades out. The cards are plain HTML, and the transitions need no scene and no script.
<div id="stage" data-composition-id="main" data-start="0" data-duration="6" data-width="1280" data-height="720" data-fps="30">
<div id="one" class="layer card" data-start="0" data-duration="2" data-clip-enter="fade 18f"><h2>Plan</h2></div>
<div id="two" class="layer card" data-start="one - 0.6" data-duration="2" data-clip-transition="push from-bottom"><h2>Build</h2></div>
<div id="three" class="layer card" data-start="two - 0.6" data-duration="2" data-clip-transition="clock"><h2>Ship</h2></div>
<div class="layer card" data-start="three - 0.6" data-duration="1.8" data-clip-transition="zoom" data-clip-exit="fade 18f"><h2>Again</h2></div>
</div>
// No scene: the cards and their transitions are all in stage.html.
html, body { margin: 0; background: #0a0b10; }
#stage { position: relative; overflow: hidden; background: #07060d; }
.layer { position: absolute; inset: 0; }
.card { display: flex; align-items: center; justify-content: center; color: #fff; }
.card h2 { margin: 0; font: 800 140px system-ui, sans-serif; }
#one { background: #892dbf; }
#two { background: #2d5fbf; }
#three { background: #bf6a2d; }
.card:last-child { background: #1d7a5a; }
[data-composition-id]:not([data-kinetic-ready]) { visibility: hidden; }
A sequence of transitions
Each card starts 0.6 seconds, 18 frames at 30 fps, before the previous one ends, so every overlap starts and ends on a whole frame, and development builds warn about a clip that does not (KN-114).
The data-clip-enter and data-clip-exit lengths are in frames, 18f, to match.
The last card ends with the composition, at 6 seconds.
No demo uses this pattern yet.