w10k motion atelier · specimen book

w10k · the motion atelier

Seventeen ways a page can move.

A specimen book of interactions. Each plate is one mechanism, hand-coded and annotated — hover it, drag it, scroll it, click through it. No effect is decoration; each one carries a job: revealing, crossing, turning, becoming. Six will hold up on an awards gallery; the other eleven are the working vocabulary a flagship site is built from.

Lamplight reveal

Spec. 01 — object reveal on hover

move the lamp

Mechanism. The engraving is always in the DOM; a radial-gradient mask-image centred on two custom properties hides all of it except a lamp-sized circle. Pointer moves write --mx/--my through one rAF-throttled handler. Touch and reduced-motion get the full engraving, unmasked.

The portal

Spec. 02 — portal transition

The fitting room

the disc is a door — step through

The archive

same page, other world

Mechanism. The second room sits on top with clip-path: circle(0). A click stamps the click point into --px/--py and transitions the clip to circle(160%) — the world grows out of the exact pixel you touched. No canvas, no library; one animatable property.

The turned vessel

Spec. 03 — 3d product

Mechanism. A product page's hero, minus the product photo: a brass vessel described as a 12-point lathe profile, lit by a room environment, ACES-tonemapped, on a slow turntable. The pointer only suggests tilt — spring-damped, never snapping. The scene loads lazily when the plate approaches and stops rendering off-screen.

Dust that spells

Spec. 04 — particle transformation

Mechanism. The wordmark is rendered once to an offscreen canvas and sampled into ~1,100 points; a second target set traces a ring. Every particle forever chases its own slot in the current target (p += (t − p) × 0.08) — the morph is not an animation, it's a thousand small pursuits. Click the plate to transform.

Through the dark

Spec. 05 — space transition

Mechanism. A starfield warp in the house palette: specks live in a unit cube, their z falls each frame, and screen position is the classic perspective divide x/z. Each speck draws a short line from last frame's position — speed becomes streaks. Hover leans in: the velocity target rises and the camera eases toward it.

The carousel of palettes

Spec. 06 — 3d gallery

Mechanism. Ten plates on a CSS cylinder — each panel is rotateY(i·36°) translateZ(r) inside one preserve-3d ring, so the browser composites the whole gallery as transforms, no WebGL. Drag feeds velocity; release keeps inertia and friction does the settling. The plates are the catalog's real palettes.

Scrubbed by scroll

Spec. 07 — scroll-pinned scrub

0%

keep scrolling — the section is pinned

Mechanism. The section is 240vh tall; the stage inside is position: sticky, so it holds still while you scroll past it. A passive, rAF-throttled scroll handler turns "how far through the section" into a 0→1 progress and drives a clip-path wipe — the reader controls the timeline with the scroll wheel. This is the backbone of premium scrollytelling.

Decoding type

Spec. 08 — text scramble

tailored to the last stitch

click to replay

Mechanism. Each letter cycles random glyphs, then locks to its final character on a staggered schedule (left to right, ~1 char per two frames). No font swap, no library — just textContent rewritten each frame from a fixed-width monospace so the line never reflows. Runs once on reveal; click to replay. Reduced-motion shows the resolved line instantly.

The stacking deck

Spec. 09 — sticky stack
01

Read the assets first

02

One accent, rationed

03

Hairlines, not boxes

04

Type does the shouting

Mechanism. Each card is position: sticky at a top offset 90px + i·16px, so they pile into a fanned deck as you scroll. A CSS scroll-driven animation (animation-timeline: view()) scales and dims each card as the next slides over it — pure CSS, no scroll listener. Where view() is unsupported the sticky pile still reads correctly.

The swatch trail

Spec. 10 — cursor image trail

sweep across

Mechanism. A fixed pool of swatch tiles is reused round-robin. Every time the pointer travels past a distance threshold, the next tile is placed at the cursor and animates from scale(1) to scale(0) with a fade — so a ribbon of palettes follows the hand and dissolves behind it. Pool reuse means zero allocation per move; pointer: fine only.

The departure board

Spec. 11 — split-flap

now boarding

Mechanism. A row of cells, each cycling A→Z toward its target letter so the word appears to tick into place like an old airport board. Each cell advances at its own interval and stops on its target; a short rotateX flip on every change sells the mechanical hinge. The board cycles through a set of words — editorial, tactile, and entirely CSS + text.

The reactive ribbon

Spec. 12 — velocity-skew marquee

Mechanism. An infinite marquee whose speed and skewX are coupled to scroll velocity: scroll fast and the ribbon lunges and leans; stop and it eases back to a calm drift. Scroll delta feeds a value that decays each frame, so the type has weight — it reacts to the reader and settles. The track is duplicated once and wrapped by width for a seamless loop.

Spring & return

Spec. 13 — elastic drag

throw it

Mechanism. Drag the disc and release: a spring integrator pulls it home (a = −k·x − c·v), so it overshoots and settles rather than snapping. The same two constants — stiffness and damping — are the whole feel; tune them and the disc goes from honey to rubber. This is the physics behind every "premium" drag, sheet, and pull-to-refresh.

The rolling ledger

Spec. 14 — odometer counter
00specimens
00hand-coded
00to flagship

Mechanism. Each digit is a vertical strip of 0–9; to show a number the strip translates up by digit × 1em inside a one-line clip, so figures roll into place like a mechanical odometer. On reveal the strips ease from 0 to the target with a per-digit stagger. Stats that roll up read as earned, not printed — the standard flourish for a numbers section.

Depth on a flat card

Spec. 15 — 3d tilt parallax
w10k
atelier

move over the card

Mechanism. The pointer's position over the card becomes a rotateX/rotateY pair, spring-damped so the card leans rather than jitters. Each inner layer sits at a different translateZ inside a preserve-3d parent, so they part like pages — real parallax from one transform. Touch and reduced-motion get the flat card, no tilt.

Aurora ground

Spec. 16 — ambient gradient mesh

a background that breathes

Mechanism. Four soft radial gradients in the house palette drift on slow, out-of-phase sine paths and paint into a canvas each frame — an aurora that never obviously loops because the frequencies never align. It's the calm, expensive alternative to a video hero: a few kilobytes of math instead of a few megabytes of file. Runs only while on screen; frozen to one still frame under reduced-motion.

Living ink

Spec. 17 — the signature

The cursor is a pen
that never quite dries.

Mechanism. The trail is a queue of shrinking circles redrawn each frame; the goo is one CSS line — filter: blur(7px) contrast(24) on the canvas fuses the blobs into liquid (the metaball trick, no shader). The statement sits above in real DOM text with mix-blend-mode: multiply, so the ink flows behind the words it answers to.