AAgentic Design School
Module 4 of 5
40–50 minutes

Motion and Storytelling with Agents

Motion in Product Design

Motion inside the interface: transitions, micro-interactions, and state changes that clarify rather than decorate — encoded as rules for duration, easing, and restraint that an agent applies consistently across the product.

Duration40–50 minutes

Slides12 slides with notes and narration

Learning objectives

  • Define a product motion system: durations, easings, and what motion is for.
  • Encode motion rules so agents apply them consistently instead of inventing animation.
  • Review motion for purpose, performance, and accessibility, including reduced-motion support.
Slide deck

Work through the module

Each slide is shown in its 16:9 frame, exactly as it appears in the video version. Open the notes under any slide for the longer explanation, and the narration if you prefer to read along.

Slide 1 of 1216:9

Motion clarifies hierarchy or it goes

Motion and Storytelling with Agents · Module 4 of 5

  • What product motion is for: orientation, causality, feedback
  • The motion system: durations, easings, and when to use none
  • Encoding the rules so an agent applies them instead of inventing animation
  • Reviewing motion for purpose, performance, and reduced-motion support

The previous three modules made motion for screens people watch. This one is about motion inside the screens people use — and the restraint that keeps it useful.

Slide notes

This module changes register. Modules 1 to 3 covered video — explainers, decks, narrated sequences — where motion is the medium and more of it is often fine. Product motion is the opposite: every transition and micro-interaction sits between a person and the task they came to do, and it has to pay rent in clarity. Make that contrast explicit at the start, because the failure mode this module exists to prevent comes directly from agents trained on a web full of motion made for watching, not for using.

The organising rule is the one in this school's own DESIGN.md: motion clarifies hierarchy; no decorative or looping animation. The whole module is an expansion of that single sentence into something an agent can actually follow — durations, easings, what may move, what may never move, and the review pass that catches violations.

Set expectations on tooling too. There is no Remotion or Hyperframes in this module. Product motion lives in CSS transitions, the Web Animations API, and component libraries — the same materials agents already write when they generate UI. The skill being taught is not a new tool; it is writing rules into the harness and tokens so that the motion an agent produces belongs to your product.

Narration for this slide

Welcome to Module 4. So far in this course, motion has been the point — videos, explainers, decks. Things people watch. This module is about motion inside the product itself: transitions, micro-interactions, state changes. Things people use. And the rule flips. In a video, motion carries the story. In a product, motion either clarifies what just happened or it gets in the way. Our working rule for the whole module is blunt: motion clarifies hierarchy, or it goes. We are going to turn that sentence into durations, easings, and harness rules an agent can follow — and a review pass that catches everything else.

Slide 2 of 1216:9

What product motion is for

Three jobs justify motion in an interface. If a transition is not doing one of them, it is decoration.

  • Orientation — where did I go? Panels, drawers, and route changes that show spatial relationships
  • Causality — what did my action cause? The row I deleted collapses; the item I added slides into place
  • Feedback — did the system hear me? Press states, loading indicators, save confirmations
  • Everything else — ambient loops, attention-seeking bounces, scroll theatrics — is decoration by default

Name the job before you specify the motion. A transition that cannot name its job does not get built.

Slide notes

These three jobs — orientation, causality, feedback — are the test that everything else in the module hangs off. They are deliberately narrow. Orientation covers motion that preserves a sense of place: a drawer sliding in from the edge it lives on, a detail view expanding from the row that opened it. Causality covers motion that connects an action to its consequence: the deleted row collapsing rather than vanishing, so the user's eye is not left searching for what changed. Feedback covers motion that acknowledges input: the pressed state, the spinner, the brief confirmation.

The fourth bullet is the controversial one and worth defending. Decorative motion is not always wrong in marketing pages or brand moments — but in product UI it competes with the user's task for attention, it accumulates across a session, and it is the single most common thing agents add uninvited. Treating decoration as guilty until a human explicitly approves it is a practical default, not an aesthetic absolutism.

A useful exercise when reviewing any animated element: ask what question the motion answers for the user. Where am I, what did I cause, did it hear me. If the honest answer is none of those, the motion is there because someone — or some agent — thought the screen looked static.

Narration for this slide

So what is product motion actually for? Three jobs. Orientation: when a panel slides in from the right, you know where it came from and how to get back. Causality: when you delete a row and it collapses, your eye follows the consequence of your own action. Feedback: the button press, the spinner, the saved tick — the system telling you it heard you. That is the whole list. Anything that is not doing one of those three jobs — the looping gradient, the bouncing icon, the scroll-triggered reveal — is decoration. And in product UI, decoration is guilty until a human explicitly says otherwise.

Slide 3 of 1216:9

The motion system: small numbers, few choices

A workable product motion system fits on one slide. This is the one this school's site runs on, as a worked example of the shape.

DecisionRuleWhy it is enough
Durations150 ms fast · 200 ms normal · 300 ms slowThree steps cover hover, state change, and panel-scale movement
Easingease-out for hover movement, ease-in-out for state changeTwo curves, each tied to a kind of event, not to taste on the day
DistanceShort travel; elements move from where they live, not across the screenLong travel reads as theatre and costs time on every interaction
When to use noneDefault is no motion; data updates and text changes just changeMost state in a product is better communicated instantly
Hard ruleMotion clarifies hierarchy; no decorative or looping animationOne sentence the agent and the reviewer can both apply

The system is small on purpose. Fewer choices means an agent — and a team — cannot drift far.

Slide notes

The numbers on this slide come from this school's own DESIGN.md, and they are presented as a worked example of the shape, not as universal constants. Plenty of respectable systems use 100 to 400 milliseconds with a couple more steps, or name their curves differently. What matters is the structure: a tiny set of named durations, easing tied to event type rather than preference, an explicit position on distance, an explicit default of no motion, and one hard restraint rule written as a sentence.

Spend a moment on the when to use none row, because it is the one teams skip. Most product state changes — a number updating, a filter applying, a validation message appearing — are better instant. Animating them adds latency to information the user asked for. Writing the default is no motion into the system means the agent has to find a reason to animate, instead of finding a reason not to.

The hard rule row is the bridge to the next slide. Durations and easings can live as tokens. The restraint rule — what motion is for, what is forbidden — has to live as written instruction in the harness, because no token format expresses no decorative or looping animation.

Narration for this slide

Here is what a product motion system actually needs to be — and it fits on one slide. Three durations: one-fifty fast, two hundred normal, three hundred slow. Two easings: ease-out for hover movement, ease-in-out for state changes. A position on distance: things move from where they live, not across the screen. A default: no motion at all — most changes in a product should just change. And one hard rule: motion clarifies hierarchy, no decorative or looping animation. These exact numbers come from this school's own design system, but the shape is the point. Keep it small enough that there is nowhere to drift to.

Slide 4 of 1216:9

Encoding the rules: tokens, utilities, harness

Motion rules follow the same pattern as colour and spacing: values become tokens, judgment becomes harness instructions.

Motion tokens plus the DESIGN.md rules that give them judgment
/* tokens.css — generated, agent-readable */
:root {
  --motion-duration-fast: 150ms;
  --motion-duration-normal: 200ms;
  --motion-duration-slow: 300ms;
  --motion-ease-hover: ease-out;
  --motion-ease-state: ease-in-out;
}

/* DESIGN.md — Motion
   - Use only the motion tokens above; do not invent durations or curves.
   - Motion clarifies hierarchy: orientation, causality, feedback only.
   - Default is no motion. No decorative, looping, or scroll-triggered animation.
   - Respect prefers-reduced-motion in every component that moves. */

Tokens carry the values. The harness carries the judgment about when those values may be used at all.

Slide notes

This is the tokens-as-agent-instructions pattern from earlier in the curriculum applied to motion. The token file answers what values exist: the named durations and easing curves, exposed as CSS variables the agent can read before generating UI and that a reviewer can grep for afterwards. A motion duration is just another token type alongside colour and spacing — the DTCG format and the usual build tools handle it the same way.

But tokens alone reproduce the same gap they have for colour: an agent that can see three durations still has to guess whether this dropdown should animate at all. That judgment lives in the harness — DESIGN.md or its equivalent — as short, checkable sentences: use only these tokens, motion exists for orientation, causality, and feedback, default is no motion, no decorative or looping animation, respect reduced motion. Each sentence is something a reviewer can verify and an agent can be held to.

The practical payoff is reviewability. When every legitimate duration is a named variable, raw values like 437ms or a hand-rolled cubic-bezier in component code are drift you can find mechanically — the same way a token audit finds raw hex colours. The verification script from the design-systems material extends to motion with two more patterns.

Narration for this slide

Encoding motion rules works exactly like encoding colour or spacing. The values go into tokens: three duration variables, two easing variables, generated where the agent and the components can both read them. The judgment goes into the harness: use only these tokens, motion is for orientation, causality, and feedback, the default is no motion, nothing decorative, nothing looping, and respect reduced motion. Tokens carry the numbers; the written rules carry the permission to use them. And because every legitimate duration now has a name, a raw four-hundred-millisecond value or a hand-rolled easing curve in component code is drift you can find with a script, not just an eye.

Slide 5 of 1216:9

Motion rules flowing through the system

One motion system feeds every motion output the agent produces — and one review pass protects all of them.

Flow diagram showing a motion system card containing duration tokens, easing tokens, rules for what may move and why, and a reduced-motion default. Arrows carry these rules into three agent-run outputs: agent-generated product UI, prototypes, and explainers and decks. All three flow into a human review pass that checks every motion names its job, durations and easings come from tokens, decorative and looping animation is removed, reduced motion is verified, and jank is checked. Approved work ships as motion that clarifies hierarchy, and a dashed feedback line returns recurring fixes to the motion system as new tokens and rules.
Durations, easings, and restraint rules are defined once in the design system and flow into agent-generated UI, prototypes, and explainers. The review pass is where decorative motion gets caught, and recurring fixes feed back into the system as new tokens and rules.

Define the rules once, let every agent output inherit them, and put one human gate between generated motion and shipped motion.

Slide notes

Walk the diagram left to right. The motion system on the left is the slide-three content made durable: durations, easings, what may move and why, the no-motion default, and the restraint rule. It is human-authored and lives in the design system — token files plus the harness sentences from the previous slide.

The middle column is everything downstream that the agent produces with motion in it. Product UI is the focus of this module, but the same tokens should reach prototypes and the code-defined videos from Modules 1 to 3 — a brand whose product eases at 200 milliseconds and whose explainers bounce with springs at 800 reads as two different companies. One source, several outputs, the same principle as the content-source slide in Module 3.

The review pass on the right is the gate, and its checklist is short and mechanical where it can be: every motion names its job, every duration and easing resolves to a token, decorative and looping animation is removed, reduced motion is verified, jank is checked. The dashed feedback line matters most over time: when the same correction comes up in review twice, it stops being feedback and becomes a rule — a new token, or a new sentence in the harness. That is how the system gets sharper instead of the reviewer getting tired.

Narration for this slide

Here is the whole module in one picture. On the left, the motion system: durations, easings, what may move and why, and the default of no motion — defined once, in the design system, by humans. Those rules flow into everything the agent makes that moves: the product UI, the prototypes, even the explainers and decks from earlier modules, so the brand moves the same way everywhere. On the right, the review pass — the human gate. Every motion has to name its job, every value has to come from a token, decorative and looping animation comes out, reduced motion gets verified. And the dashed line at the bottom is the system learning: fixes that keep recurring become new rules, so you stop making the same correction twice.

Slide 6 of 1216:9

The agent failure mode: decorative animation everywhere

Left without rules, agents over-animate. These are the patterns to expect in unbriefed output.

  • Entrance animations on everything — cards, headings, and list items fading and sliding in on load
  • Scroll-triggered reveals borrowed from marketing pages, applied to working screens
  • Looping ambient motion: pulsing badges, shimmering gradients, bouncing icons asking for attention
  • Invented timing — durations and hand-rolled easing curves that exist nowhere in the system
  • Motion as polish: animation added to make a static-looking draft feel finished

The agent is not being careless. It is reproducing the most animated patterns on the public web — which were built to be watched, not used.

Slide notes

This failure mode deserves its own slide because it is so consistent. Ask an agent to make a dashboard feel polished or modern and the odds are good you get staggered entrance animations, a scroll reveal or two, and at least one looping element. The reason is the training distribution: the most visible, most copied animation code on the public web comes from marketing sites, portfolio pieces, and component showcase demos — contexts where motion is the product. Working software, where restraint is the norm, is under-represented in what the model has seen celebrated.

The practical consequence is that vague quality language makes it worse. Words like polished, delightful, engaging, and dynamic in a brief are read by the agent as an invitation to animate. If the brief instead says calm, instant, and dense, and the harness says no decorative or looping animation, the same model produces far quieter output. This is the same lesson as the token modules: agents follow explicit constraints well and fill vague gaps with the centre of the web.

The last bullet — motion as polish — is the one to watch in your own behaviour too. It is tempting to accept decorative animation because it makes a demo land better. The cost shows up later, spread across every user session and every future screen the agent builds by imitating the one you approved.

Narration for this slide

Now the failure mode this module exists to prevent. Give an agent a UI task with no motion rules and ask for something polished, and you will get animation everywhere. Cards fading in. Headings sliding up. Scroll-triggered reveals on a settings page. A pulsing badge. Durations and easing curves invented on the spot. The agent is not being careless — it is reproducing the most animated code on the public web, which was written for marketing pages and demos. Things built to be watched. Your product is built to be used. Which is why the restraint rules from the last two slides are not optional extras. They are the difference between your product and a template.

Slide 7 of 1216:9

Micro-interactions: feedback that earns its milliseconds

The smallest motions are the ones users meet hundreds of times a day. They have to be fast, consistent, and informative.

  • Press and hover states: the fast token, ease-out, and no travel beyond the element itself
  • State confirmation: saved, copied, added — show the result briefly, then get out of the way
  • Loading: indicate work is happening without looping decoration; prefer progress over spinners where honest
  • Errors and validation: appear instantly — bad news should never be eased in slowly
  • Consistency beats character: the same interaction should feel identical everywhere in the product

A micro-interaction is repaid in clarity or it is a tax the user pays on every single click.

Slide notes

Micro-interactions are where the duration tokens earn their keep, because frequency changes the maths. A 300-millisecond panel transition that a user meets a few times a session is fine; a 300-millisecond delay on every button press is a tax collected hundreds of times a day. That is why hover and press feedback sit on the fast token and stay within the element — the user already knows where their cursor is, so the motion only needs to acknowledge, not perform.

Two of these bullets are judgment calls worth defending. Loading indication is a legitimate exception to the no-looping rule when work is genuinely happening, but it is also where shimmering skeletons and decorative spinners creep in — prefer honest progress where you can measure it, and keep indeterminate states visually quiet. Errors appearing instantly is deliberate: easing in a validation message adds latency to exactly the information the user needs most urgently, and gentle motion on bad news reads as evasive.

The consistency bullet is the agent-specific one. When an agent generates components one conversation at a time, each button can end up with its own personality unless the interaction states are defined once — in the component library and the tokens — and reused. Micro-interaction consistency is a system property, not a per-screen decision, and it is one of the things the review pass should compare across screens rather than within one.

Narration for this slide

Micro-interactions are the smallest motions in the product and the ones users meet most often — which changes the maths. A press state or a hover gets the fast token, ease-out, and stays inside the element. A saved or copied confirmation shows up, registers, and gets out of the way. Loading can indicate that work is happening, but it is not an excuse for looping decoration. And errors appear instantly — easing in bad news just delays the thing the user most needs to see. Above all, the same interaction should feel identical everywhere. When an agent builds screens one at a time, that consistency only happens if the states are defined once and reused.

Slide 8 of 1216:9

Performance and jank: motion that costs more than it clarifies

A transition that stutters communicates less than no transition at all. Performance rules belong in the motion system, not in the bug tracker.

  • Animate transform and opacity; avoid animating layout properties like width, height, top, and margin
  • No layout shift as content loads — reserve space instead of animating things into place
  • Test on a throttled CPU and a mid-range phone, not just the development machine
  • Long lists and tables: animate the container or the changed row, never every row
  • If a motion needs JavaScript driving every frame, ask whether it needs to exist

Janky motion is worse than none: it draws attention to itself and then fails to deliver the clarity that justified it.

Slide notes

Performance is part of the motion system because a stuttering transition fails at the only job motion has. The user notices the movement — motion is attention-grabbing by design — and then the movement fails to read, so they get the cost without the clarity. The first bullet is the rule that prevents most of it: transform and opacity can be composited by the browser without recalculating layout, while animating width, height, position offsets, or margins forces layout work on every frame. This is a rule an agent can follow mechanically, and it belongs in the harness next to the duration tokens.

Layout shift is the adjacent problem: content that pops in and pushes the page around is unintentional motion, and it is often worse than anything deliberately animated. Reserving space for images, async panels, and skeletons is a motion decision even though nothing is technically animating.

The testing bullet is about honesty. Agent-generated motion is usually reviewed on a fast development machine where everything is smooth. The users who hit jank are on mid-range phones and old laptops with twenty tabs open. Throttling the CPU in browser devtools during the review pass takes seconds and catches the difference. The last bullet is a heuristic rather than a law: plenty of legitimate motion is CSS-only, and a motion that needs per-frame JavaScript in product UI is often trying to do something the no-decoration rule would have stopped anyway.

Narration for this slide

Performance is not a separate concern from motion design — it is part of it, because a transition that stutters fails at the one job it had. The big rule: animate transform and opacity, and avoid animating layout — widths, heights, positions, margins — because that forces the browser to recalculate the page on every frame. Reserve space for content instead of letting it shift the layout when it arrives. Test with the CPU throttled and on a mid-range phone, because your development machine hides every problem. And if a piece of product motion needs JavaScript driving every frame, ask the harder question first: does it need to exist?

Slide 9 of 1216:9

Reduced motion is a default, not an enhancement

Some users get dizzy, nauseated, or disoriented by interface motion. Respecting their setting is table stakes, and agents handle it well when told once.

  • prefers-reduced-motion is the operating-system signal; every component that moves must respect it
  • Reduce does not mean remove all change — replace movement with instant state changes or simple fades
  • Large-scale motion is the highest risk: full-screen transitions, parallax, zooming, and spinning
  • Put the rule in the harness and the check in the review pass — agents apply it consistently once instructed
  • Claim only what you tested: "reduced motion verified on these flows", not "this product is accessible"

A motion system that ignores reduced motion is not a system with an accessibility gap. It is an incomplete system.

Slide notes

Vestibular disorders, migraine triggers, and motion sensitivity are common enough that every major operating system ships a reduce-motion setting, and the prefers-reduced-motion media query exposes it to the web. The design position this module takes is that honouring it is part of the definition of done for any motion work, not an enhancement to schedule later. Practically, reduced motion rarely means a frozen interface: orientation and feedback still need to be communicated, so the usual substitution is an instant state change or a brief opacity fade in place of movement — the information survives, the travel does not.

The risk is not evenly distributed. Small, contained micro-interactions are rarely a problem; the harm concentrates in large-scale movement — full-screen route transitions, parallax backgrounds, zooming and scaling effects, anything that moves a large fraction of the viewport. A motion system that already enforces short distances and the no-decoration rule has removed most of the high-risk motion before the media query is even consulted, which is a useful argument for the restraint rules with stakeholders who see them as purely aesthetic.

The last bullet repeats the curriculum's standing caution about claims. An agent's report saying reduced motion is supported should be backed by the specific flows where it was actually toggled and observed — in the review evidence, with the OS or emulated setting on. Precise, narrow claims; no certification language.

Narration for this slide

One more rule that is not negotiable. Some users get genuinely dizzy or nauseated from interface motion — which is why every operating system has a reduce-motion setting, and why the browser exposes it as prefers-reduced-motion. Every component that moves has to respect it. Reduced does not mean frozen: you replace movement with instant changes or a simple fade, so the information survives even when the travel does not. The biggest risks are the big motions — full-screen transitions, parallax, zoom. Put the rule in the harness once, and agents apply it consistently. Then claim only what you tested: reduced motion verified on these flows, on this date — not a blanket accessibility badge.

Slide 10 of 1216:9

Worked example: one flow's transitions, designed, encoded, reviewed

A support-queue flow on an internal dashboard: open a ticket detail panel, resolve the ticket, watch it leave the queue. Two runs of the same task.

Unbriefed runRun with motion tokens and harness rules
Detail panelFades and scales in over 400 ms with a custom cubic-bezierSlides from the right edge, 300 ms, ease-in-out — orientation preserved
Resolve actionConfetti-style burst plus a bouncing toastButton press feedback at 150 ms; row collapses at 200 ms so the eye follows the change
Queue listEvery row re-animates whenever the list updatesOnly the affected row animates; the list itself never moves
Review findings9 invented duration values, 2 looping animations, reduced motion ignoredAll values resolve to tokens; reduced motion verified; one fix — a leftover fade on the empty state

Same agent, same flow. The difference is not taste acquired by the model — it is rules the model was given and a review that checked them.

Slide notes

Walk the columns the same way as the briefing examples earlier in the curriculum: the difference between the runs is entirely in what the agent was given, and the example is a constructed but representative trace of the failure patterns from slide six meeting the rules from slides three and four — present it as that, not as a benchmark.

In the unbriefed run the agent was asked to add the detail panel and resolve flow and make it feel responsive and polished. The output is exactly the slide-six list in miniature: an invented 400-millisecond entrance with a hand-rolled curve, celebration motion on a routine action, and a list that re-animates wholesale on every update — which on a queue that refreshes often is both janky and exhausting. Nothing respected reduced motion because nothing was asked to.

The second run had the motion tokens in the project, the DESIGN.md motion section from slide four, and a brief that named the three legitimate jobs for this flow: orientation when the panel opens, causality when the ticket leaves the queue, feedback on the resolve action. The review pass still earned its place — it caught a leftover decorative fade on the empty state, which is the kind of small drift that turns into precedent if it ships. The lesson to land: the rules did the heavy lifting, and the gate caught the remainder. Neither alone is enough.

Narration for this slide

Let's trace one flow. An internal support queue: open a ticket's detail panel, resolve it, watch it leave the list. Run one, no motion rules, brief says make it feel polished. We get a panel that fades and scales in over four hundred milliseconds on a curve that exists nowhere else, a confetti burst when you resolve a ticket, and a list where every row re-animates on every update. Nine invented durations, two loops, no reduced-motion support. Run two, same agent, with the tokens in the project and the harness rules written down: the panel slides from the edge it lives on, the resolved row collapses so your eye follows it, only the changed row ever moves. The review still caught one leftover decorative fade. Rules first, gate second — you need both.

Slide 11 of 1216:9

Exercise: write the motion rules for your design system

Draft the motion section of your DESIGN.md — short enough to fit on one screen, specific enough that an agent could be held to it.

  • Define two or three named durations and the easing curve for hover versus state change
  • Write one sentence on what motion is for in your product — and one on what is forbidden
  • State the default: which changes simply change, with no motion at all
  • Add the reduced-motion and performance rules: respect the setting, animate transform and opacity only
  • List three checks a reviewer would run on agent-generated motion against these rules

Test the draft by reading each line and asking: could an agent follow this, and could a reviewer verify it? Rewrite any line that fails either test.

Slide notes

The deliverable is deliberately small: a motion section for the design harness, not a motion design language document. The constraint of one screen forces the prioritisation that makes rules followable — if everything is a rule, nothing is. Steer participants towards their actual product; the durations that suit a dense operations tool are not the ones that suit a consumer onboarding flow, and the what motion is for sentence should reflect that difference rather than copying this school's version verbatim.

The two tests in the highlight are the marking scheme. Could an agent follow it filters out taste statements with no operational content — motion should feel premium fails, ease-in-out at 200 ms for state changes passes. Could a reviewer verify it filters out rules that sound firm but cannot be checked — use motion sparingly fails, no looping animation and no animated layout properties passes, because both can be found in code or on a screen recording.

The third bullet's review checks are the bridge to Module 5: they are the seed of the QA gate that the production-pipeline module formalises. If running this live, have participants swap drafts and attempt to find one rule in someone else's draft that they could not verify — that exchange surfaces vague rules faster than self-review does.

Narration for this slide

Your turn. Draft the motion section of your own design harness — one screen, no more. Two or three named durations and the easing for hover versus state change. One sentence on what motion is for in your product, and one on what is forbidden. The default: which changes just change, instantly. The reduced-motion and performance rules. And three checks a reviewer would actually run on agent-generated motion. Then test every line two ways: could an agent follow it, and could a reviewer verify it? If a line fails either test — motion should feel premium, use animation sparingly — rewrite it until it names something checkable. Keep the draft. Module 5 turns those checks into a real QA gate.

Slide 12 of 1216:9

Summary, and the bridge to production pipelines

  • Product motion has three jobs — orientation, causality, feedback — and everything else is decoration
  • The system is small: a few durations, two easings, a no-motion default, and one hard restraint rule
  • Values live in tokens; judgment lives in the harness — and drift becomes findable in code
  • Unbriefed agents over-animate because the web they learned from was built to be watched, not used
  • Performance and reduced motion are part of the system's definition of done, verified in the review pass

Module 5 takes everything this course has produced — videos, explainers, product motion — and asks how to ship it repeatedly: pipelines, QA gates, and the honest line where a motion specialist takes over.

Slide notes

Recap by connecting the bullets rather than re-reading them. The three jobs give you the test for whether motion belongs at all; the small system gives the agent values it cannot drift far from; the tokens-plus-harness split is the same pattern used for colour and spacing, which is exactly why it works — the team already knows how to maintain and audit it. The failure-mode slide explains why the rules are necessary rather than fussy, and the performance and reduced-motion slides define what done means before anything reaches the review pass.

If participants did the exercise, the draft motion section is a real artifact: it can go into their harness this week, and the three review checks they wrote become the starting point for Module 5's QA gates.

Preview Module 5 concretely. This module ended at one flow reviewed once. The final module is about doing motion work repeatedly at brand quality: render and delivery pipelines for recurring video formats, versioning video sources and outputs, QA gates that cover brand, factual accuracy, captions, and platform specs, and the honest assessment of where agent-produced motion still needs a specialist — craft animation, character work, and campaign-level film remain firmly on that list as of mid-2026.

Narration for this slide

Let's close. Product motion has three jobs: orientation, causality, and feedback — and anything not doing one of them is decoration, which is the agent's favourite thing to add. The system that prevents it is small: a few durations, two easings, a default of no motion, and one hard rule — motion clarifies hierarchy or it goes. The values live in tokens, the judgment lives in the harness, and the review pass checks purpose, performance, and reduced motion before anything ships. That is one flow, reviewed once. Module 5 asks the production question: how do you ship motion work week after week — pipelines, QA gates, versioning — and where does a motion specialist still beat the agent? See you there.

Module transcript
Module 4, narrated slide by slide

Slide 1Motion clarifies hierarchy or it goes

Welcome to Module 4. So far in this course, motion has been the point — videos, explainers, decks. Things people watch. This module is about motion inside the product itself: transitions, micro-interactions, state changes. Things people use. And the rule flips. In a video, motion carries the story. In a product, motion either clarifies what just happened or it gets in the way. Our working rule for the whole module is blunt: motion clarifies hierarchy, or it goes. We are going to turn that sentence into durations, easings, and harness rules an agent can follow — and a review pass that catches everything else.

Slide 2What product motion is for

So what is product motion actually for? Three jobs. Orientation: when a panel slides in from the right, you know where it came from and how to get back. Causality: when you delete a row and it collapses, your eye follows the consequence of your own action. Feedback: the button press, the spinner, the saved tick — the system telling you it heard you. That is the whole list. Anything that is not doing one of those three jobs — the looping gradient, the bouncing icon, the scroll-triggered reveal — is decoration. And in product UI, decoration is guilty until a human explicitly says otherwise.

Slide 3The motion system: small numbers, few choices

Here is what a product motion system actually needs to be — and it fits on one slide. Three durations: one-fifty fast, two hundred normal, three hundred slow. Two easings: ease-out for hover movement, ease-in-out for state changes. A position on distance: things move from where they live, not across the screen. A default: no motion at all — most changes in a product should just change. And one hard rule: motion clarifies hierarchy, no decorative or looping animation. These exact numbers come from this school's own design system, but the shape is the point. Keep it small enough that there is nowhere to drift to.

Slide 4Encoding the rules: tokens, utilities, harness

Encoding motion rules works exactly like encoding colour or spacing. The values go into tokens: three duration variables, two easing variables, generated where the agent and the components can both read them. The judgment goes into the harness: use only these tokens, motion is for orientation, causality, and feedback, the default is no motion, nothing decorative, nothing looping, and respect reduced motion. Tokens carry the numbers; the written rules carry the permission to use them. And because every legitimate duration now has a name, a raw four-hundred-millisecond value or a hand-rolled easing curve in component code is drift you can find with a script, not just an eye.

Slide 5Motion rules flowing through the system

Here is the whole module in one picture. On the left, the motion system: durations, easings, what may move and why, and the default of no motion — defined once, in the design system, by humans. Those rules flow into everything the agent makes that moves: the product UI, the prototypes, even the explainers and decks from earlier modules, so the brand moves the same way everywhere. On the right, the review pass — the human gate. Every motion has to name its job, every value has to come from a token, decorative and looping animation comes out, reduced motion gets verified. And the dashed line at the bottom is the system learning: fixes that keep recurring become new rules, so you stop making the same correction twice.

Slide 6The agent failure mode: decorative animation everywhere

Now the failure mode this module exists to prevent. Give an agent a UI task with no motion rules and ask for something polished, and you will get animation everywhere. Cards fading in. Headings sliding up. Scroll-triggered reveals on a settings page. A pulsing badge. Durations and easing curves invented on the spot. The agent is not being careless — it is reproducing the most animated code on the public web, which was written for marketing pages and demos. Things built to be watched. Your product is built to be used. Which is why the restraint rules from the last two slides are not optional extras. They are the difference between your product and a template.

Slide 7Micro-interactions: feedback that earns its milliseconds

Micro-interactions are the smallest motions in the product and the ones users meet most often — which changes the maths. A press state or a hover gets the fast token, ease-out, and stays inside the element. A saved or copied confirmation shows up, registers, and gets out of the way. Loading can indicate that work is happening, but it is not an excuse for looping decoration. And errors appear instantly — easing in bad news just delays the thing the user most needs to see. Above all, the same interaction should feel identical everywhere. When an agent builds screens one at a time, that consistency only happens if the states are defined once and reused.

Slide 8Performance and jank: motion that costs more than it clarifies

Performance is not a separate concern from motion design — it is part of it, because a transition that stutters fails at the one job it had. The big rule: animate transform and opacity, and avoid animating layout — widths, heights, positions, margins — because that forces the browser to recalculate the page on every frame. Reserve space for content instead of letting it shift the layout when it arrives. Test with the CPU throttled and on a mid-range phone, because your development machine hides every problem. And if a piece of product motion needs JavaScript driving every frame, ask the harder question first: does it need to exist?

Slide 9Reduced motion is a default, not an enhancement

One more rule that is not negotiable. Some users get genuinely dizzy or nauseated from interface motion — which is why every operating system has a reduce-motion setting, and why the browser exposes it as prefers-reduced-motion. Every component that moves has to respect it. Reduced does not mean frozen: you replace movement with instant changes or a simple fade, so the information survives even when the travel does not. The biggest risks are the big motions — full-screen transitions, parallax, zoom. Put the rule in the harness once, and agents apply it consistently. Then claim only what you tested: reduced motion verified on these flows, on this date — not a blanket accessibility badge.

Slide 10Worked example: one flow's transitions, designed, encoded, reviewed

Let's trace one flow. An internal support queue: open a ticket's detail panel, resolve it, watch it leave the list. Run one, no motion rules, brief says make it feel polished. We get a panel that fades and scales in over four hundred milliseconds on a curve that exists nowhere else, a confetti burst when you resolve a ticket, and a list where every row re-animates on every update. Nine invented durations, two loops, no reduced-motion support. Run two, same agent, with the tokens in the project and the harness rules written down: the panel slides from the edge it lives on, the resolved row collapses so your eye follows it, only the changed row ever moves. The review still caught one leftover decorative fade. Rules first, gate second — you need both.

Slide 11Exercise: write the motion rules for your design system

Your turn. Draft the motion section of your own design harness — one screen, no more. Two or three named durations and the easing for hover versus state change. One sentence on what motion is for in your product, and one on what is forbidden. The default: which changes just change, instantly. The reduced-motion and performance rules. And three checks a reviewer would actually run on agent-generated motion. Then test every line two ways: could an agent follow it, and could a reviewer verify it? If a line fails either test — motion should feel premium, use animation sparingly — rewrite it until it names something checkable. Keep the draft. Module 5 turns those checks into a real QA gate.

Slide 12Summary, and the bridge to production pipelines

Let's close. Product motion has three jobs: orientation, causality, and feedback — and anything not doing one of them is decoration, which is the agent's favourite thing to add. The system that prevents it is small: a few durations, two easings, a default of no motion, and one hard rule — motion clarifies hierarchy or it goes. The values live in tokens, the judgment lives in the harness, and the review pass checks purpose, performance, and reduced motion before anything ships. That is one flow, reviewed once. Module 5 asks the production question: how do you ship motion work week after week — pipelines, QA gates, versioning — and where does a motion specialist still beat the agent? See you there.