{ "schemaVersion": 2, "generatedAt": "2026-05-24T23:40:30.515Z", "title": "Design System: Ghost Guild", "extensions": { "colorMeta": { "candle": { "role": "primary", "displayName": "Candle Gold", "canonical": "oklch(0.44 0.085 80)", "tonalRamp": [ "oklch(0.18 0.053 80)", "oklch(0.29 0.069 80)", "oklch(0.4 0.08 80)", "oklch(0.51 0.085 80)", "oklch(0.62 0.084 80)", "oklch(0.73 0.078 80)", "oklch(0.84 0.066 80)", "oklch(0.95 0.048 80)" ] }, "ember": { "role": "secondary", "displayName": "Ember Rust", "canonical": "oklch(0.46 0.11 47)", "tonalRamp": [ "oklch(0.18 0.069 47)", "oklch(0.29 0.09 47)", "oklch(0.4 0.103 47)", "oklch(0.51 0.11 47)", "oklch(0.62 0.109 47)", "oklch(0.73 0.1 47)", "oklch(0.84 0.085 47)", "oklch(0.95 0.062 47)" ] }, "c-community": { "role": "tertiary", "displayName": "Community Clay", "canonical": "oklch(0.44 0.06 40)", "tonalRamp": [ "oklch(0.18 0.038 40)", "oklch(0.29 0.049 40)", "oklch(0.4 0.056 40)", "oklch(0.51 0.06 40)", "oklch(0.62 0.059 40)", "oklch(0.73 0.055 40)", "oklch(0.84 0.046 40)", "oklch(0.95 0.034 40)" ] }, "c-practitioner": { "role": "tertiary", "displayName": "Practitioner Slate", "canonical": "oklch(0.36 0.045 230)", "tonalRamp": [ "oklch(0.18 0.028 230)", "oklch(0.29 0.037 230)", "oklch(0.4 0.042 230)", "oklch(0.51 0.045 230)", "oklch(0.62 0.044 230)", "oklch(0.73 0.041 230)", "oklch(0.84 0.035 230)", "oklch(0.95 0.025 230)" ] }, "green": { "role": "tertiary", "displayName": "Guild Green", "canonical": "oklch(0.5 0.08 135)", "tonalRamp": [ "oklch(0.18 0.05 135)", "oklch(0.29 0.065 135)", "oklch(0.4 0.075 135)", "oklch(0.51 0.08 135)", "oklch(0.62 0.079 135)", "oklch(0.73 0.073 135)", "oklch(0.84 0.062 135)", "oklch(0.95 0.045 135)" ] }, "bg": { "role": "neutral", "displayName": "Cream Paper", "canonical": "oklch(0.95 0.012 90)", "tonalRamp": [ "oklch(0.18 0.008 90)", "oklch(0.29 0.01 90)", "oklch(0.4 0.011 90)", "oklch(0.51 0.012 90)", "oklch(0.62 0.012 90)", "oklch(0.73 0.011 90)", "oklch(0.84 0.009 90)", "oklch(0.95 0.007 90)" ] }, "surface": { "role": "neutral", "displayName": "Surface Tan", "canonical": "oklch(0.9 0.025 88)", "tonalRamp": [ "oklch(0.18 0.016 88)", "oklch(0.29 0.02 88)", "oklch(0.4 0.023 88)", "oklch(0.51 0.025 88)", "oklch(0.62 0.025 88)", "oklch(0.73 0.023 88)", "oklch(0.84 0.019 88)", "oklch(0.95 0.014 88)" ] }, "text": { "role": "neutral", "displayName": "Ink", "canonical": "oklch(0.24 0.02 70)", "tonalRamp": [ "oklch(0.18 0.013 70)", "oklch(0.29 0.016 70)", "oklch(0.4 0.019 70)", "oklch(0.51 0.02 70)", "oklch(0.62 0.02 70)", "oklch(0.73 0.018 70)", "oklch(0.84 0.015 70)", "oklch(0.95 0.011 70)" ] } }, "typographyMeta": { "display": { "displayName": "Display", "purpose": "Hero proclamations only; one per page, commands the fold." }, "headline": { "displayName": "Headline", "purpose": "Section and card headings, e.g. the circle metaphors." }, "title": { "displayName": "Title", "purpose": "Smaller serif headings inside dense blocks." }, "body": { "displayName": "Body", "purpose": "All prose and UI text; Commit Mono, measure capped 65-75ch." }, "label": { "displayName": "Label", "purpose": "Uppercase kickers, field labels, badges; the faint structural voice." } }, "shadows": [ { "name": "popover-lift", "value": "0 4px 12px rgba(0,0,0,0.12)", "purpose": "The only shadow in the system. Floating portaled overlays (select menus, dropdowns) only; never in-page surfaces." } ], "motion": [ { "name": "state", "value": "0.15s ease", "purpose": "Default button/border state transitions." }, { "name": "reveal", "value": "0.2s ease", "purpose": "Hover nudges and lifts (transform only; respects prefers-reduced-motion)." } ], "breakpoints": [ { "name": "content", "value": "768px", "purpose": "Multi-column content rows collapse to a single column." }, { "name": "page-collapse", "value": "1024px", "purpose": "Sidebar navigation collapses to a Menu disclosure (--page-collapse)." } ] }, "components": [ { "name": "Primary Button", "kind": "button", "refersTo": "button-primary", "description": "The single call-to-action treatment; solid candle gold with a solid border.", "html": "", "css": ".ds-btn-primary { font-family: \"Commit Mono\", monospace; font-size: 12px; letter-spacing: 0.04em; padding: 7px 18px; background: var(--candle); color: var(--bg); border: 1px solid var(--candle); border-radius: 0; cursor: pointer; transition: background 0.15s, border-color 0.15s; } .ds-btn-primary:hover { background: var(--candle-dim); border-color: var(--candle-dim); } .ds-btn-primary:focus-visible { outline: 2px dashed var(--candle); outline-offset: 3px; }" }, { "name": "Default Button", "kind": "button", "refersTo": "button-default", "description": "Neutral action; dashed border on cream, tonal fill on hover.", "html": "", "css": ".ds-btn { font-family: \"Commit Mono\", monospace; font-size: 12px; letter-spacing: 0.04em; padding: 7px 18px; background: var(--bg); color: var(--text); border: 1px dashed var(--border); border-radius: 0; cursor: pointer; transition: background 0.15s, border-color 0.15s; } .ds-btn:hover { background: var(--surface-hover); border-color: var(--border-d); } .ds-btn:focus-visible { outline: 2px dashed var(--candle); outline-offset: 3px; }" }, { "name": "Danger Button", "kind": "button", "refersTo": "button-danger", "description": "Destructive action; ember text and border, inverts to ember fill on hover.", "html": "", "css": ".ds-btn-danger { font-family: \"Commit Mono\", monospace; font-size: 12px; letter-spacing: 0.04em; padding: 7px 18px; background: var(--bg); color: var(--ember); border: 1px dashed var(--ember); border-radius: 0; cursor: pointer; transition: background 0.15s, color 0.15s; } .ds-btn-danger:hover { background: var(--ember); color: var(--bg); border-style: solid; }" }, { "name": "Text Field", "kind": "input", "refersTo": "input", "description": "Editable surface; dashed border that goes solid candle on focus.", "html": "", "css": ".ds-field span { display: block; font-family: \"Commit Mono\", monospace; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-faint); margin-bottom: 3px; } .ds-field input { width: 100%; box-sizing: border-box; font-family: \"Commit Mono\", monospace; font-size: 13px; padding: 5px 8px; color: var(--text-bright); background: var(--input-bg); border: 1px dashed var(--border); border-radius: 0; outline: none; } .ds-field input:focus { border-color: var(--candle); border-style: solid; }" }, { "name": "Circle Badge", "kind": "chip", "refersTo": "badge", "description": "Membership-tier identity tag; dashed border in the circle hue. Not a generic tag.", "html": "Practitioner", "css": ".ds-badge { display: inline-block; font-family: \"Commit Mono\", monospace; font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 8px; color: var(--c-practitioner); border: 1px dashed rgba(42,70,80,0.35); border-radius: 0; }" }, { "name": "Sidebar Nav Item", "kind": "nav", "refersTo": "navigation", "description": "Left-rail navigation entry; tonal fill when active, mono type.", "html": "", "css": ".ds-nav { display: flex; flex-direction: column; font-family: \"Commit Mono\", monospace; font-size: 13px; border-right: 1px dashed var(--border); width: 200px; } .ds-nav-item { padding: 6px 12px; color: var(--text); text-decoration: none; transition: background 0.15s, color 0.15s; } .ds-nav-item:hover { background: var(--surface-hover); } .ds-nav-item.is-active { background: var(--surface); color: var(--text-bright); }" }, { "name": "Hero CTA Broadside", "kind": "custom", "refersTo": "hero-cta", "description": "Signature: oversized serif headline with one ember word, a solid primary block, and demoted text links.", "html": "