Milo BRAND + INTERFACE SYSTEM V1.0
10Interface system

Motion

7 DURATIONS · 4 EASINGS9 NAMED PATTERNSSOURCE: tokens/motion.json

Motion tells you where something came from, where it went, what changed, what is active and what completed. Quiet, physical, continuous, purposeful. Nothing moves to decorate.

Tokens10.01

Durations and easings

DurationValueUse
EasingCurve

Named patterns

PatternDurationEasingNote
Live10.02

Six demonstrations

Task expands into Run · base / standard
Render Day 1 voice trackrun 3 · step 2 of 5
Running
  1. Load reference clip0.8s
  2. Synthesise 2,140 words1m 12s
  3. Normalise loudness

Origin is the row itself; the Run drops out of it and folds back into it.

Artifact emerges from conversation · slow / enter

Done. Hero written at 2400×1600.

Voice appears, resolves, disappears · fast / enter · base / standard

Fixed top-centre while it runs. Watch the top of the viewport.

Theme switch · slow / standard
  • Reprint the series art◇ Euangelion
    Running

Colour tokens crossfade; imagery re-maps to the Nous recipe in dark.

Dither propagates · dither (1400ms) / print
ORIGINAL

Original → pixels → dither → channels → interpretation → data. Half Dome, Carol M. Highsmith, Library of Congress.

Ambient nature · 24s, appears still
Alpine lakes and forest, Denali National Park

≤2% scale, ≤1% translate over 24s, alternating. Off under reduced motion. Carol M. Highsmith, Library of Congress.

Not this10.03

Forbidden

  • Toy-like spring overshoot
  • AI blobs and orbs
  • Constant ambient movement in the interface
  • Gratuitous parallax
  • Cyberpunk glitches, VHS tearing, random distortion
  • Decorative loaders that hide nothing real
  • Motion on hover that changes layout
  • Animating a painting like cheap AI video
Reduced motion10.04

Policy

Under prefers-reduced-motion: reduce, every transition collapses to an opacity change of 120ms or less. Ambient motion stops. The dither transition draws its final frame at once. Nothing is lost except the movement.

This browser: checking…

The tokens do this for you: tokens/milo.css overrides --dur-* inside the media query, and engine/canvas.js reads the same preference.