Skip to content
Sanding Space
Sanding Space
Introduction
  • Principles
    • Sand the Back
    • Details Compound
    • Taste Is Trainable
    • Prototype in the Material
    • Every State Is Designed
    • Speed Is a Feeling
    • Honor the Platform
    • Know When to Stop
  • Foundations
    • Spacing Is a Scale
    • Concentric Corners
    • Optical Alignment
    • A Type Scale
    • Line Length and Leading
    • Perceptual Color
    • Contrast Is Not a Checkbox
    • Depth in Light and Dark
    • Icons Match the Text
  • Interaction
    • Button Press
    • Hover Is a Hint
    • The Safe Triangle
    • Hit Targets Are Bigger Than They Look
    • Focus Is a State Too
    • The Keyboard Is an Input
    • Inputs That Don't Fight You
    • Disabled Buttons Explain Nothing
    • Undo Beats Confirm
  • Motion
    • Motion Has a Job
    • Timing: Duration and Easing
    • Enter and Exit Aren't Mirrors
    • Grow From the Source
    • Springs Can Be Interrupted
    • Things Don't Teleport
    • Edges Should Give
    • Reduced Motion Isn't No Motion
    • Animate the Cheap Properties
  • Components
    • Toast
    • Dropdown Menu
    • Tabs
    • Drawer
  • Systems
    • Tokens Have Layers
    • Theming Without Rewriting
    • Components Are APIs
    • Composition Over Configuration
    • Variants, Not Overrides
    • Density Is a Mode
    • Behavior and Style Are Separate
    • Catch It Before It Ships
  • Product
    • Defaults Are Decisions
    • Empty States Are Onboarding
    • Progressive Disclosure
    • Write the Interface
    • Make the Common Path Fast
    • Never Lose Work
    • The URL Is State
    • Ship Behind a Flag
ResourcesAbout
Sanding Space
Introduction
  • Principles
    • Sand the Back
    • Details Compound
    • Taste Is Trainable
    • Prototype in the Material
    • Every State Is Designed
    • Speed Is a Feeling
    • Honor the Platform
    • Know When to Stop
  • Foundations
    • Spacing Is a Scale
    • Concentric Corners
    • Optical Alignment
    • A Type Scale
    • Line Length and Leading
    • Perceptual Color
    • Contrast Is Not a Checkbox
    • Depth in Light and Dark
    • Icons Match the Text
  • Interaction
    • Button Press
    • Hover Is a Hint
    • The Safe Triangle
    • Hit Targets Are Bigger Than They Look
    • Focus Is a State Too
    • The Keyboard Is an Input
    • Inputs That Don't Fight You
    • Disabled Buttons Explain Nothing
    • Undo Beats Confirm
  • Motion

    How should it move?

    • Motion Has a Job
    • Timing: Duration and Easing
    • Enter and Exit Aren't Mirrors
    • Grow From the Source
    • Springs Can Be Interrupted
    • Things Don't Teleport
    • Edges Should Give
    • Reduced Motion Isn't No Motion
    • Animate the Cheap Properties
  • Components
    • Toast
    • Dropdown Menu
    • Tabs
    • Drawer
  • Systems
    • Tokens Have Layers
    • Theming Without Rewriting
    • Components Are APIs
    • Composition Over Configuration
    • Variants, Not Overrides
    • Density Is a Mode
    • Behavior and Style Are Separate
    • Catch It Before It Ships
  • Product
    • Defaults Are Decisions
    • Empty States Are Onboarding
    • Progressive Disclosure
    • Write the Interface
    • Make the Common Path Fast
    • Never Lose Work
    • The URL Is State
    • Ship Behind a Flag
ResourcesAbout

Motion

Good motion explains. It shows where something came from, where it went and what just changed, so people never have to wonder whether that panel closed or vanished. If an animation can't explain anything, it's decoration, and decoration gets old by the third time you see it.

These essays are about making motion earn its place. Choosing durations and easing that feel quick without feeling abrupt. Letting things grow from whatever opened them. Using springs that can change direction halfway through. And remembering that motion runs on someone's device, and that some people have asked to see less of it. Even then, they still need to know what moved.

Motion Has a Job (coming soon)

Every animation should explain something. If it can't, it's decoration.

Timing: Duration and Easing (coming soon)

Two numbers decide how motion feels. Most interfaces get both slightly wrong.

Enter and Exit Aren't Mirrors (coming soon)

Things should arrive with some care and leave quickly.

Grow From the Source (coming soon)

A popover should open from the button that opened it, not from its own center.

Springs Can Be Interrupted (coming soon)

Fixed durations break when people change their mind. Springs don't.

Things Don't Teleport (coming soon)

When an element changes place or shape, animate the change so people can follow it.

Edges Should Give (coming soon)

Hitting a hard stop feels broken. A little resistance feels physical.

Reduced Motion Isn't No Motion (coming soon)

People who ask for less motion still need to know what changed.

Animate the Cheap Properties (coming soon)

Some properties animate for free. Others make the browser redo the page every frame.