ntwrk/Brand book v1.0 · 13 Oct 2026

Identity / Motion

Motion

Motion confirms that something happened. It never performs. The live site uses five durations and two curves.

Approved: codifies liveOwner: Wes FischerUpdated 13 Oct 2026

01Tokens

TokenValueUse
--dur-fast120msHover, press
--dur-base200msCard lift, menu
--dur-slow420msSection reveal
--ease-outcubic-bezier(.2,.7,.2,1)Everything entering
--ease-in-outcubic-bezier(.6,0,.4,1)Panels, theme cross-fade
--reveal-shift12pxReveal travel
--reveal-stagger70msBetween siblings
--move-press0.5pxButton press

02Rules

  1. Nothing moves more than 12px.
  2. No parallax, no autoplay loops, no scroll-jacking.
  3. Charts and figures appear whole. Values never count up or bars never grow in, because animation implies a trend the data may not show.
  4. Under prefers-reduced-motion, every duration is 0 and reveals are skipped (built into tokens.css).
  5. Never animate the logo.

03Where motion is used

SurfaceMotionToken
Button press0.5px translate down--move-press + --dur-fast
Link card hover2px lift, shadow--dur-base + --ease-out
Menu / themePanel cross-fade--dur-base + --ease-in-out
Section enter12px rise, opacity--reveal-shift + --dur-slow, stagger --reveal-stagger
Deck slides and steps150ms opacity fade onlyHard-coded in deck.css; removed under reduced motion
  1. If a new interaction needs motion, pick from the table. Do not invent a duration.
  2. Deck motion is separate from site motion on purpose: projected rooms need a shorter fade and no travel.

04Do and don't

Do

A primary button darkens on press and moves 0.5px.

Confirms the click.

Live site buttons

Don’t

A hero figure floats, pulses or parallaxes as you scroll.

Performs. Distracts from the claim.

Illustrative

Do

A card lifts 2px on hover, then settles.

Shows the card is interactive.

Live link cards

Don’t

Bars grow in from zero when they enter the viewport.

Implies a trend the data may not have.

Illustrative