Motion library 0.2Four families

Make waiting
feel intentional.

A small, evolving library of expressive loading states. Lightweight enough for production, considered enough to make the in-between worth noticing.

SVGPortable format
< 6KBTypical asset
A11YMotion-aware
Enter the workbench

01 / Motion workbench

Tune the behavior.

Choose a pattern, set the pace, then copy a production-ready asset.

01

Dots / Directional

Gather

A field contracts toward a shared center, then releases.

Structure
7 × 7 dots
Runtime
None
Format
Inline SVG
X 07 Y 07

02 / Motion families

Small forms.
Different voices.

Dots feel ambient, bars feel rhythmic, and pixels feel computational. Each family uses its own primitive while sharing one portable API.

03 / Progress, with context

Progress is
a promise.

A bar should tell the truth when the system knows it—and communicate activity without inventing certainty when it doesn’t.

Playback mode

Determinate mode maps directly to a known completion value.

State
Flow
42%

The behavior contract

When you know

Report the actual state.

The endpoint moves only when the underlying value changes. Texture may show life, but it never implies fictional completion.

When you don’t

Signal activity, not distance.

Open-ended motion traverses the available space without percentages, false milestones, or an endpoint that appears to regress.

04 / Built to travel

Motion without
the baggage.

Each loader is a self-contained SVG or a tiny custom element. No framework assumptions, no image requests, and no animation runtime. The same motion can live in a prototype today and production tomorrow.

01

Drop-in by design

Copy the SVG, use the web component, or lift the timing map into your own system.

02

Motion-aware

Every pattern honors reduced-motion preferences and settles into a legible static state.

03

Ready to expand

The catalog separates shape, timing, and presentation. Line-based studies remain the next open family beside dots, bars, pixels, and progress.