Files
KDCDesignSystem/foundations/motion
Paul Roberts 6593bdf689 feat: design system v1.0.0 — reconcile tokens from cross-repo audit
Extracted real production usage from 8 KDC repos and consolidated the
consensus (kdcsurveyadd / kdcvault / kdc_void_planner) into the canonical
design.md + tokens.

Highlights:
- brand.ink #000000 -> #1A1530 (purple-tinted, matches real usage)
- brand.canvas #F5F4F0 -> #F7F4ED (warm)
- neutral ramp rebuilt around ink (purple-tinted, not cold slate)
- semantic palette retuned for warm canvas + soft tints
- elevation shadows retinted with brand-ink rgb
- new accent.gold (product) and accent.mint (marketing) tokens
- real themes/light, themes/dark, themes/high-contrast
- fleshed out every component + foundation README
- docs/consolidation-2026-05.md captures the full audit + drift inventory

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 17:51:39 +00:00
..

Foundations · Motion

Motion is functional, not decorative — it provides feedback (state change), continuity (route / modal transitions), and confirmation (success / commit).

Durations

Token ms Use
instant 0 Reset / disable
fast 120 Hover, focus, control state
base 200 Tooltips, dropdowns
slow 320 Modals, sheets, route transitions
slower 480 Hero animations, marketing

Easing

Token Curve Use
standard cubic-bezier(0.2, 0, 0, 1) Default — most state changes
enter cubic-bezier(0, 0, 0.2, 1) Enter-only (decelerate to rest)
exit cubic-bezier(0.4, 0, 1, 1) Exit-only (accelerate away)
emphasis cubic-bezier(0.2, 0, 0, 1.2) Overshoot — success, commit, attention

Signature animation

kdc-fade-up — used on the product family for content reveal:

@keyframes kdc-fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.kdc-fade-up { animation: kdc-fade-up 360ms cubic-bezier(0.2, 0, 0, 1) both; }

Stagger children at 4060ms intervals.

Rules

  • Respect prefers-reduced-motion: reduce — collapse all transitions to ≤ 10ms.
  • Use fast for state, base for surfaces, slow for layout shifts.
  • Don't animate width / height — animate transform and opacity.
  • Don't bounce or spin without reason. Loading spinners are the only exception.