Try the Studio →
designesy.

Operating rules

Contracts

Design contracts turn principles into reusable operating rules for artifacts, interfaces, and review.

Designesy Contracts are portable design agreements that let people and agents carry design judgment across tools, sessions, codebases, and artifacts. They make design judgment inspectable — not reliant on slogans or vibes.

Published now

01Design system · v0.4.0Human overview, full tables below, machine JSON export02Tokens · v0.1.0W3C DTCG 2025.10 format conformance — color spaces, custom types, validation03Accessibility · v0.1.0WCAG 2.2 AA via axe-core 4.13.0 — 11 verification checks04Motion · v0.1.0Lottie spec v1.0.1 + Ten Non-Negotiable Motion Standards — 10 verification checks05Poise adoptedLab One interaction rules adopted in contract v0.1.106Takt adoptedLab Two interface-feel rules adopted in contract v0.1.207Cadence adoptedLab Three typography rules adopted in contract v0.1.308Acoustics adoptedLab Four acoustic mapping rules adopted in contract v0.3.009Copywriting adoptedUX copy principles adopted in v0.4.0 — NN/g, Polaris, Carbon, Fluent, HIG10Agent skill exportSKILL.md format for AI coding agents — same source as JSON11Field checkLive site reviewed against this contract12Drift · v0.1.0AI-generated UI drift detection — 12 checks for token fabrication, value variance, off-contract patterns13AI Readiness · v0.1.0The 6th maturity axis — 10 checks probe for machine-readable tokens, llms.txt, agent.json, MCP, DESIGN.md14Guardrails · v0.1.0The product layer — emit a frozen build contract (DTCG tokens, Stylelint, AGENTS.md) for AI coding agents15Monitor · v0.1.0The continuous-governance layer — re-score on a cadence, store snapshots, compute drift deltas, surface regressions before they compound16Compare · v0.1.0The diff engine — fetch two URLs, extract their token systems, and surface what actually changed across 8 dimensions: added, removed, renamed, value-changed, scale drift, contrast drift, structure delta, score delta17Report · v0.1.0The synthesis capstone — fetch one URL, fire score + drift + readiness in parallel, and produce a unified design-intelligence report with a single composite grade. One input, one output, one grade

Why contracts matter

The question a contract answers

What exact value should I use? Why does this value exist? Where may this value be applied? What behavior does this component need? What should I avoid? How do I know if I broke the system?

A useful contract helps a future agent or team member answer all of these without relearning the design system from scratch. Contracts are the operational bridge between philosophy and execution.

Contract contents

A Designesy Contract should include all of the following — structured values for machines, rationale for humans, and verification criteria for both.

Contract discipline

Keep upstream-compatible schema names visible when compatibility matters: colors, typography, rounded, spacing, components. Use local extensions for doctrine, review, provenance, agent instructions, and verification — but do not hide the standard contract from tools.

Anti-patterns

Published contract

Designesy design system · v0.4.0

Public design contract for designesy.org. Derived from the live site token foundation, with Lab One · Poise, Lab Two · Takt, Lab Three · Cadence, and Lab Four · Acoustics rules adopted. Provisional, doctrine-referenced, and meant to be verified against the running site — not a frozen brand bible.

Contract home · /contracts/design-system · Machine export · /contracts/design-system.json · Public review · /review/designesy-org

01 · Source and provenance

02 · Primitive tokens

Colors (exact values)

TokenValueRole
--ink#f5f5f7Primary text / foreground
--muted#a0a0a0Secondary text
--muted-dim#7d7d7dTertiary / meta text
--paper#010102Page background
--surface#0a0a0cCard / panel base
--surface-raised#121216Elevated surface
--surface-lifted#16161bLifted / hover panel
--signal#0133cbBrand signal accent
--signal-light#3358e8Signal hover / focus lift
--signal-access#5d7bffAccessible signal (AA on dark)
--paper-on-signal#ffffffText on signal fill
--activation#fecc34Activation highlight (reserved)

Surfaces and lines

TokenValueRole
--surface-softrgba(255, 255, 255, 0.03)Soft fill / note background
--surface-hoverrgba(255, 255, 255, 0.06)Hover wash
--linergba(255, 255, 255, 0.12)Default border
--line-strongrgba(255, 255, 255, 0.22)Emphasized border
--line-faintrgba(255, 255, 255, 0.06)Subtle divider
--signal-dimrgba(1, 51, 203, 0.14)Signal wash / badge fill

Shape, shell, motion primitives

TokenValueRole
--radius6pxDefault corner radius
--radius-sm4pxCompact controls / nav chips
--maxw1080pxContent shell max width
--duration0.6sPrimary entrance duration
--duration-quick150msClose, swap, tooltip
--duration-fast250msOpen, hover transition, icon swap
--duration-medium350msPanel close, toast
--duration-slow400msPanel open, skeleton reveal
--easecubic-bezier(0.22, 0.61, 0.36, 1)Default ease
--ease-outcubic-bezier(0.23, 1, 0.32, 1)Exit / settle
--ease-in-outcubic-bezier(0.77, 0, 0.175, 1)Symmetric motion
--ease-drawercubic-bezier(0.32, 0.72, 0, 1)Drawer / panel slide

Shadows (supporting elevation, borders lead): --shadow-sm 0 1px 3px rgba(0,0,0,0.4) · --shadow-md 0 8px 30px rgba(0,0,0,0.35) · --shadow-lg 0 24px 80px rgba(0,0,0,0.5)

Color roles
--ink
--muted
--muted-dim
--signal
--signal-light
--signal-access
--activation
Each chip renders the exact token value. Dark roles on dark surfaces — contrast is the product.
Surface depth
--paper
--surface
--raised
--lifted
--soft
--hover
--signal-dim
Near-black surfaces, not gray. Depth from opacity layers, not heavy shadows.
Radius scale
6px
4px
none
6px default · 4px compact — no pill inflation.

03 · Semantic tokens

Surface roles

paper = page void · surface = default panel · surface-raised = hover/emphasis panel · surface-soft = quiet note fill · surface-hover = interactive wash

Line roles

line = default structure · line-strong = active/emphasis edge · line-faint = quiet subdivision

Signal roles

signal = brand action and wordmark dot · signal-light = hover and focus lift · signal-dim = badge/wash · activation = reserved highlight, not general chrome

Type roles

ink = primary claim · muted = supporting body · muted-dim = eyebrows, meta, footers

04 · Typography rules

05 · Spacing and layout rules

TokenValueRole
Shell horizontal1.5rem (1rem ≤560px).site-shell / .surface-page
Section vertical3.5rem / 3rem doctrine.section / .doctrine-section
Card padding1.25–1.5rempillars, surfaces, items
Grid gap0.75–1rempillar / surface grids
Control min height42px buttons, 32px sound toggletouch-friendly targets
Breakpoints860px · 720px · 560pxgrids · topbar · single-column

Layout doctrine: one max-width shell, editorial vertical rhythm, grids collapse before type becomes unreadable. Prefer fewer columns over cramped four-up layouts on mid widths.

06 · Shape and surface rules

07 · Component behavior and states

01

Primary button

default signal fill · hover signal-light · active scale(0.97) · focus-visible 2px signal-light

02

Ghost button

transparent + line-strong · hover surface-hover · active scale(0.97)

03

Nav link

muted · hover ink + surface-hover · sticky topbar blur when scrolled

04

Card / pillar

surface + line · hover raised + line-strong · active scale(0.985); lift only on fine pointer hover

05

Sound toggle

aria-pressed sync · pressed shows signal-light · Cuelume setEnabled(true|false)

06

Definition block

bordered surface · hover line-strong · label uppercase muted-dim

Primary button states
DefaultPrimary
HoverPrimary
ActivePrimary
FocusPrimary
default → hover (signal-light) → active (scale 0.97) → focus-visible (2px ring)
Ghost button
DefaultGhost
ActiveGhost
transparent + line-strong · hover surface-hover · active scale(0.97)
Easing curves
--ease
--ease-out
--ease-in-out
--ease-drawer
Four timing functions. Watch the dot travel — same distance, different feel.

08 · Accessibility requirements

09 · Motion and reduced-motion

09a · Ten non-negotiable motion standards

The positive form of the motion anti-patterns below. Every motion-bearing artifact must pass all ten.

01

Easing is deliberate — use contract cubicBezier tokens, not bare CSS keywords

02

Properties are explicit — never transition:all; name the exact properties

03

Entrances have opacity — animate from scale(0.9–0.97) + opacity, never scale(0)

04

Keyboard is still — no motion on keyboard-initiated or 100+/day actions

05

Layout is not animated — never animate width, height, margin, padding, top, left

06

Touch is gated — :hover motion on touch-visible surfaces requires explicit gating

07

Duration is bounded — UI animation stays ≤ 300ms unless justified

08

Reduced-motion is handled — every movement has a prefers-reduced-motion path

09

Press is asymmetric — press and release use asymmetric timing

10

Easing is never ease-in — deceleration (ease-out) or custom curves only

09b · Motion anti-patterns

Block on sight

Caution

09c · Spring physics

Custom $type: spring via $extensions.designesy. Net-new relative to W3C DTCG 2025.10.

TokenValueRole
spring.defaultdamping 1.0 · response 0.4Default spring physics for natural motion
spring.momentumdamping 0.8 · response 0.3Momentum spring for continued motion

09d · Acoustic tokens

Custom $type: sound via $extensions.designesy. Net-new relative to W3C DTCG 2025.10. Full cue table at /acoustic-tokens.

09e · Copywriting (v0.4.0)

UX copy principles adopted in v0.4.0 from NN/g, Polaris, IBM Carbon, Microsoft Fluent, Apple HIG, and Atlassian. Gap signal: detail.design Copywriting discipline. 4 principles are codified as verification checks (v38–v41); 12 are governance.

Principles

Verification checks (automated)

Governance (human review)

Tooling

10 · Anti-patterns

11 · Implementation notes

12 · Verification criteria

13 · Open tensions

Designesy design system contract v0.4.0 — public artifact discipline, not legal advice or a client service agreement. Values are taken from the live site tokens. Poise, Takt, Cadence, Acoustics, and Copywriting rules are adopted. Contract home: /contracts/design-system · Machine export: /contracts/design-system.json. When the human page and the live styles disagree, the live styles are authoritative until the contract is revised. Human and machine surfaces stay synchronized.