Skip to content
Velora
Showcase
Orchestration

Scenes

A scene is a shared clock for children — not a look. Scroll the frame to scrub acts on the track.

Test here

Pin + scrub: stage stays fixed while the scene clock advances.

Kicker · act 1

Title · act 1

CTA · act 3–4

Finale · act 5
<section vl-scene vl-timeline="view" vl-pin="3" vl-scrub>
  <div vl-stage>
    <p vl-enter="fade-up" vl-act="1">Kicker</p>
    <h1 vl-enter="clip-rise" vl-act="1">Title</h1>
  </div>
</section>

Track + stage + acts

AttributeRole
vl-sceneTrack — owns --vl-scene and pin height
vl-stageSticky viewport stage (required for pin+scrub)
vl-pinTrack height in viewport multiples
vl-scrubLinear fill — progress glued to scroll
vl-act / vl-spanBeat index and duration on the clock

Why track ≠ stage

Children bind to the named track timeline (--vl-scene) while[vl-stage] stays pinned in the scrollport.

Channels on children

Test here

Scroll inside the frame to trigger view-linked motion. Use Replay to run again.

vl-enter

On stage child

vl-scroll

Scroll channel

vl-enter + vl-scroll on [vl-stage] children