Add design/ contract; archive prior design system as provenance

Establish keysat's durable, vendor-neutral design contract (the standards
/design backfill, document-as-is):

- design/DESIGN.md — nine-section brand brief distilled from the prior
  Claude Design system (navy-on-cream-paper identity, sovereignty-first
  voice, component + motion rules, do's/don'ts). Manrope is canonical
  display (the README's "Archivo" was a stale placeholder).
- design/tokens.tokens.json — W3C DTCG tokens from colors_and_type.css.
- design/brand/ — canonical palette.css + logo/mark assets.
- design/_imports/2026-06-16-claude-design-system/ — the original system,
  relocated as dated provenance (nothing imported it).
- AGENTS.md — add the Design line (read the contract before UI work);
  repoint the layout entry.
- ROADMAP.md — design-checker cleanup backlog (gold-as-fill + pill-radius
  blockers, the inline-token-copy consolidation, token gaps).
This commit is contained in:
Keysat
2026-06-16 11:29:28 -05:00
parent ce5edaed29
commit 532229d488
51 changed files with 700 additions and 1 deletions
+171
View File
@@ -0,0 +1,171 @@
{
"$description": "Keysat design tokens — W3C DTCG-shaped, distilled from design/_imports/2026-06-16-claude-design-system/colors_and_type.css (as-built values). Group-level $type is set where it maps cleanly to a DTCG primitive; a few groups (fontSize, letterSpacing, shadow) carry as-built CSS expressions (clamp(), em, multi-layer shadows) as strings and are intentionally left untyped pending a Style Dictionary build. See design/DESIGN.md for intent and rules.",
"color": {
"$type": "color",
"navy": {
"950": { "$value": "#0E1F33" },
"900": { "$value": "#142A47" },
"800": { "$value": "#1E3A5F", "$description": "core brand navy — wordmark, primary buttons, dominant ink" },
"700": { "$value": "#2A4A75" },
"600": { "$value": "#3A5C8A" },
"500": { "$value": "#5074A1" },
"400": { "$value": "#7892B8" },
"300": { "$value": "#A6B7CF" },
"200": { "$value": "#CBD5E2" },
"100": { "$value": "#E4EAF1" },
"50": { "$value": "#F2F5F9" }
},
"cream": {
"50": { "$value": "#FBF9F2", "$description": "elevated paper / card surface" },
"100": { "$value": "#F5F1E8", "$description": "core cream — default page background" },
"200": { "$value": "#EDE7D7" },
"300": { "$value": "#E1D8C0" },
"400": { "$value": "#C9BC9A" }
},
"gold": {
"700": { "$value": "#8A6F3D", "$description": "eyebrow labels / dark gold accent" },
"600": { "$value": "#A88652" },
"500": { "$value": "#BFA068", "$description": "core gold accent — sparing use only, never a primary button fill" },
"400": { "$value": "#D4B985" },
"300": { "$value": "#E5CFA5" },
"200": { "$value": "#F0E2C5" }
},
"ink": {
"900": { "$value": "#0E1F33", "$description": "primary text" },
"700": { "$value": "#2C3E54", "$description": "secondary text" },
"500": { "$value": "#5A6B7F", "$description": "tertiary / meta" },
"400": { "$value": "#7E8C9D", "$description": "disabled / hint" },
"300": { "$value": "#A4AEBB" }
},
"semantic": {
"success": { "$value": "#2D7A5F" },
"success-bg": { "$value": "#E3F0EA" },
"warning": { "$value": "#B8861F" },
"warning-bg": { "$value": "#F7EFD7" },
"danger": { "$value": "#B23A3A" },
"danger-bg": { "$value": "#F4E0E0" },
"info": { "$value": "{color.navy.700}" },
"info-bg": { "$value": "{color.navy.100}" }
},
"surface": {
"page": { "$value": "{color.cream.100}", "$description": "default page bg (apply with paper-texture grain)" },
"paper": { "$value": "{color.cream.50}" },
"elevated":{ "$value": "#FFFFFF", "$description": "forms, tables, code blocks — reserved white" },
"inverse": { "$value": "{color.navy.900}" },
"tint": { "$value": "{color.cream.200}" }
},
"fg": {
"primary": { "$value": "{color.ink.900}" },
"secondary": { "$value": "{color.ink.700}" },
"tertiary": { "$value": "{color.ink.500}" },
"hint": { "$value": "{color.ink.400}" },
"on-navy": { "$value": "{color.cream.50}" },
"on-gold": { "$value": "{color.navy.900}" }
},
"accent": {
"default": { "$value": "{color.navy.800}" },
"hover": { "$value": "{color.navy.900}" },
"press": { "$value": "{color.navy.950}" },
"soft": { "$value": "{color.navy.100}" },
"gold": { "$value": "{color.gold.500}" }
},
"border": {
"1": { "$value": "rgba(14, 31, 51, 0.12)", "$description": "hairline on cream" },
"2": { "$value": "rgba(14, 31, 51, 0.20)", "$description": "card border" },
"3": { "$value": "rgba(14, 31, 51, 0.35)", "$description": "focus / strong" },
"on-navy": { "$value": "rgba(245, 241, 232, 0.18)" }
}
},
"font": {
"$type": "fontFamily",
"display": { "$value": ["Manrope", "Helvetica Neue", "Arial", "sans-serif"], "$description": "canonical display face (README's 'Archivo' was a stale placeholder)" },
"body": { "$value": ["Inter", "Helvetica Neue", "Arial", "sans-serif"] },
"mono": { "$value": ["JetBrains Mono", "ui-monospace", "SF Mono", "Menlo", "monospace"] }
},
"fontSize": {
"$description": "as-built type scale; display sizes use CSS clamp() and are kept as strings",
"display-xl": { "$value": "clamp(56px, 6vw, 88px)" },
"display": { "$value": "clamp(40px, 4.5vw, 64px)" },
"h1": { "$value": "44px" },
"h2": { "$value": "32px" },
"h3": { "$value": "24px" },
"h4": { "$value": "20px" },
"h5": { "$value": "17px" },
"body-lg": { "$value": "18px" },
"body": { "$value": "15px" },
"body-sm": { "$value": "13.5px" },
"meta": { "$value": "12px" },
"mono": { "$value": "13px" }
},
"lineHeight": {
"$type": "number",
"display": { "$value": 1.02 },
"heading": { "$value": 1.15 },
"body": { "$value": 1.55 },
"tight": { "$value": 1.25 }
},
"letterSpacing": {
"$description": "em values kept as strings",
"tight": { "$value": "-0.02em" },
"normal": { "$value": "0" },
"wide": { "$value": "0.04em" },
"eyebrow": { "$value": "0.18em" }
},
"space": {
"$type": "dimension",
"1": { "$value": "4px" },
"2": { "$value": "8px" },
"3": { "$value": "12px" },
"4": { "$value": "16px" },
"5": { "$value": "20px" },
"6": { "$value": "24px" },
"7": { "$value": "32px" },
"8": { "$value": "40px" },
"9": { "$value": "56px" },
"10": { "$value": "72px" },
"11": { "$value": "96px" },
"12": { "$value": "128px" }
},
"radius": {
"$type": "dimension",
"xs": { "$value": "3px" },
"sm": { "$value": "5px" },
"md": { "$value": "8px", "$description": "buttons" },
"lg": { "$value": "12px", "$description": "cards" },
"xl": { "$value": "18px", "$description": "max surface rounding — never exceed" },
"2xl": { "$value": "24px", "$description": "reserved; avoid in product UI" },
"pill": { "$value": "999px", "$description": "tags/badges only" }
},
"shadow": {
"$description": "paper-shadow system — multi-layer CSS strings, not glassy",
"xs": { "$value": "0 1px 1px rgba(14,31,51,0.04)" },
"sm": { "$value": "0 1px 2px rgba(14,31,51,0.06), 0 1px 1px rgba(14,31,51,0.03)" },
"md": { "$value": "0 2px 4px rgba(14,31,51,0.06), 0 4px 12px rgba(14,31,51,0.06)" },
"lg": { "$value": "0 4px 8px rgba(14,31,51,0.07), 0 12px 32px rgba(14,31,51,0.10)" },
"xl": { "$value": "0 8px 16px rgba(14,31,51,0.10), 0 24px 64px rgba(14,31,51,0.14)" },
"inset": { "$value": "inset 0 1px 0 rgba(255,255,255,0.6), inset 0 -1px 0 rgba(14,31,51,0.05)" },
"ring-focus": { "$value": "0 0 0 3px rgba(30,58,95,0.25)" }
},
"duration": {
"$type": "duration",
"fast": { "$value": "120ms", "$description": "hover transitions" },
"base": { "$value": "200ms", "$description": "default" },
"slow": { "$value": "360ms" }
},
"easing": {
"$type": "cubicBezier",
"standard": { "$value": [0.2, 0.7, 0.2, 1] },
"out": { "$value": [0.16, 1, 0.3, 1] },
"in": { "$value": [0.7, 0, 0.84, 0] }
}
}