Design system · v0.1 · 17 Oct 2026

Every play leaves a record

Tokens, components and rules for building Syntropic, written so people and agents produce the same result.

02 · Color

Ink, paper, one signal, three accents

bg-canvas#F5F7F4 / #0D1412
bg-surface#FFFFFF / #151C19
bg-sunken#E9EDEA / #0A0F0D
ink#0D1412 / #F5F7F4
ink-secondary#2F3833 / #C9D1CC
ink-muted#56605B / #9AA59F
on-ink#F5F7F4 / #0D1412
line#DCE2DD / #26302C
line-control#8A958F / #6B7771
signal#00A37A / #00A37A
on-signal#0D1412 / #0D1412
signal-text#007A5A / #3DD6A3
signal-tint#DDF3EA / #0E3A2D
signal-on-tint#00573F / #8EEBC8
focus-ring#007A5A / #3DD6A3
fjord#2F5D7C / #2F5D7C
fjord-text#2F5D7C / #8DB6D3
fjord-tint#DCE6EE / #16283A
on-fjord#F5F7F4 / #F5F7F4
rye#D2A847 / #D2A847
rye-text#7A5C12 / #E3C273
rye-tint#F4EBD3 / #3A2F12
on-rye#0D1412 / #0D1412
falu#A23B2C / #A23B2C
falu-text#A23B2C / #E08A7C
falu-tint#F3DEDA / #3A1A15
on-falu#F5F7F4 / #F5F7F4
op-danger#C42B47 / #C42B47
op-on-danger#FFFFFF / #FFFFFF
op-danger-text#A01F3A / #F28B9C
op-danger-tint#F9DEE3 / #3D1520
op-warning#B86E00 / #B86E00
op-on-warning#0D1412 / #0D1412
op-warning-text#8A5300 / #F0B860
op-warning-tint#FBEBD0 / #3A2A0E
03 · Type

Familjen for display, Hanken for text, Plex Mono for data

Every play leaves a record

The loop is the product

Evaluation writes back to context

Every growth team runs experiments. Most fail, a few work, and the valuable part is the record of why.

play_014 · context v12 · run 3 of 6

04 · Actions

One primary action per view

05 · Forms

Labels, real examples, errors that say what to do

Agents see this name in every run.

That file couldn't be read. Check that it's valid JSON.
Notifications
Evaluation cadence
06 · Status and data

Ranges, not single numbers

LiveQueuedNeeds reviewFailedDraftOutboundQ4
Outcome vs. baseline+8% to +22%12 runs · median +15%
Cost per run$4.10model and tool spend
Context versionv122 definitions changed
RunAgentStatusOutcome range vs. baseline
run_0312Agent ALive
run_0311Agent BNeeds review
run_0309Agent CQueued
run_0301Agent DFailed

Illustrative data

07 · Cards

One object per card, bordered, never shadowed

Play · loop 3 · context v12

Reactivate dormant accounts

Accounts inactive for 90 days get a usage summary instead of a discount.

LiveOutbound
Agent · evaluated 6 times

Agent C

Narrowest range on this play. Lower ceiling than Agent B, far more predictable.

08 · Overlays and navigation

Dialogs, popovers, menus, tooltips, tabs

Every run of this play, newest first.

09 · Editorial

Show the work

  1. 01ContextWhat the company knows and believes
  2. 02ActivationAn agent runs the play
  3. 03ResultsWhat happened, and what it cost
  4. 04EvaluationJudged against the baseline

04 → 01 · Evaluation updates context before the next run

FIG. 1Every play runs the same cycle. Because evaluation writes back to context, each run starts from what the last one learned.
Agent A
Agent B
Agent C
FIG. 2Bars show the observed range across runs and the mark shows the median. Illustrative data.
10 · Brand field

4 × 12, ink to signal, always ending on the signal point