Motion Lab · seven primitives

running pace: candlelit · values below are read live fromsrc/core/motion/config.ts

Every concept names one of these four registers and gets all seven primitives in it. Switch the pace above and scroll: the markup is identical, only the register changes. Add ?reduced=1 to any concept URL to check reduced-motion parity.

01 · line reveal

Lines rise out of a maskone after another,then the rest follows.

Anything marked [data-after] in this scope arrives behind the last line.

02 · masked parallax

The image drifts slower than the page inside its frame. Overscan is derived from the same drift value, so the edge can never show.

parallax demo

03 · word reveal

Three companies told me I needed a full tear-off on a tile roof that was twelve years old.

04 · count up

4.9out of five
across 212 reviews

static HTML holds the real value — only below-fold counters reset

05 · draw in

01

Call or book online

02

We survey the job

03

The work gets done

04

You approve it

06 · scrub wipe

A · scroll-driven

after
before

B · drag-driven, with release momentum

after
before

07 · settle

A · stamp

Licensed & insured

B · flicker

4.9

C · float (soft only)

tilt −2
tilt 3