in-between
Contents
Seeing
What motion says, and its two controls: timing and spacing.
Physics
Weight, springs, momentum: motion that behaves as if the screen had physics.
The principles, for interfaces
The twelve animation principles, each as an interface example.
Choreography
Who moves first, who follows, and how things arrive and leave.
Continuity and space
Keeping one thing recognisable as it changes place, and giving the app a map.
Interaction
Motion that follows the finger, and motion driven by scroll.
The canvas
Writing motion yourself: the loop, easing, physics, many things, noise, and the choice of medium.
- 14 The loop Canvas as a flipbook: clear, draw, repeat. Move things by dt, not by frame.
- 15 Easing by hand lerp (a blend toward a target) and the frame-rate trap in x += (target − x) · k.
- 16 Physics by hand Three ways to step physics forward (Euler, semi-implicit Euler, Verlet), then a spring from scratch.
- 17 Many things Particles, trails and flocks: motion from rules.
- 18 Organic motion Noise versus random: natural motion is randomness that stays smooth.
- 19 Choosing the medium CSS, WAAPI, SVG, Canvas and WebGL: what each is for.
Craft
Keeping motion fast, kind to people who want less of it, and restrained.
Special topics
Motion that explains data, and motion managed as a system.
Capstone
Build your own motion system.
Lab
Where an object sits on every frame: ghost copies along its path, beside an animator's tick chart.
Spacing = easing L2 Curve benchDrag a cubic-bezier curve's handles; position and velocity graphs side by side, and a second curve to compare.
Reading a curve as speed L3 Spring benchTune a spring by response and bounce, or stiffness, damping and mass. Live graph, settle time, CSS linear() to copy.
Physics as feel L4 Exposure sheetA timeline with one bar per element: shift a bar to offset it, or set a stagger to space many at once.
Choreography, overlap L5 Frame stepperPlay your code, or a page from this site, at 1×, 0.25× or 0.1×, or step it frame by frame.
Observation L6 Eye trainerPerception drills, scored, with a calibration graph of how close your guesses run.
Intuition, measured L7 Canvas sandboxA canvas you code live, animation loop already written, with dt (ms since the last frame) and fps readouts, pause and step.
Motion from scratch L8 Specimen journalSave any lab state with the words you would use for its feel. A vocabulary of your own.
Taste L9 Export deskAny lab state as CSS, Web Animations API, Motion (the library), GSAP or Canvas code.
Notation L10 Data stageA chart that transitions between states. Match bars by key or by position, stagger or stage the change; SVG or Canvas.
Motion that explains