mirror of
https://github.com/nexu-io/open-design.git
synced 2026-05-31 19:04:39 +07:00
Brands added (each with full 56-token :root + self-contained fixture): - Devtools / data infra: clickhouse, hashicorp, mongodb, mintlify, sentry-adjacent (lovable, superhuman) - AI-app builder / messaging: intercom, lovable, superhuman - Fintech / crypto: coinbase, binance, wise All 10 declare the complete shared schema (26 A1 + 26 A2 + 4 B-slot) with no C-extensions; pnpm guard reports all 6 contract checks passing. Co-authored-by: chaoxiaoche <chaoxiaoche@chaoxiaochedeMacBook-Pro.local> Co-authored-by: Cursor <cursoragent@cursor.com>
135 lines
8.8 KiB
CSS
135 lines
8.8 KiB
CSS
/* ─────────────────────────────────────────────────────────────────────────
|
||
* design-systems/clickhouse/tokens.css
|
||
*
|
||
* Structured token bindings for "Design System Inspired by ClickHouse".
|
||
* High-performance cockpit in acid yellow-green on obsidian black —
|
||
* pure black canvas, neon volt accents, extra-heavy Inter (900) display,
|
||
* charcoal-bordered cards, terminal-grade aesthetic.
|
||
*
|
||
* Key brand decisions encoded here:
|
||
* - Pure Black (#000000) page bg — never dark gray as page bg
|
||
* - Neon Volt (#faff69) as sole chromatic accent — maximum contrast on black
|
||
* - Charcoal borders (rgba(65,65,65,0.8)) — primary depth mechanism
|
||
* - Inter as primary, Basier as secondary display, Inconsolata for code
|
||
* - 96px display headlines with weight 900 — text as physical mass
|
||
* - Tight 1.0 leading on display sizes — billboard scale
|
||
* - Sharp 4px radius on buttons, 8px on cards — database precision geometry
|
||
* - Forest Green (#166534) doubles as --success — brand-aligned semantic
|
||
* ─────────────────────────────────────────────────────────────────── */
|
||
|
||
:root {
|
||
/* ─── Surface ─────────────────────────────────────────────────────
|
||
* Dark void: pure black canvas, near-black surfaces.
|
||
* The black is absolute (#000000) — never softened to dark gray. */
|
||
--bg: #000000; /* Pure Black — the page canvas, absolute */
|
||
--surface: #141414; /* Near Black — buttons, lifted dark surfaces */
|
||
--surface-warm: var(--surface); /* alias — no warm tier in the cool-neutral palette */
|
||
|
||
/* ─── Foreground ──────────────────────────────────────────────────
|
||
* Pure White on black for primary, Silver for secondary.
|
||
* All neutrals are perfectly neutral — no warm undertone. */
|
||
--fg: #ffffff; /* Pure White — primary text on dark surfaces */
|
||
--fg-2: #a0a0a0; /* Silver — secondary body text on dark */
|
||
--muted: #a0a0a0; /* Silver — captions, muted content */
|
||
--meta: #585858; /* Mid Gray — metadata, deepest neutral text */
|
||
|
||
/* ─── Border ──────────────────────────────────────────────────────
|
||
* Charcoal at 80% opacity — the workhorse for all card containment.
|
||
* Deep charcoal for inner separators that should not visually compete. */
|
||
--border: rgba(65, 65, 65, 0.8); /* Charcoal — primary card edge */
|
||
--border-soft: #343434; /* Deep Charcoal — inner separator, quieter */
|
||
|
||
/* ─── Accent ──────────────────────────────────────────────────────
|
||
* Neon Volt — the literal ClickHouse brand mark. Sole chromatic
|
||
* interruption on the obsidian canvas. Used on CTAs, link hovers,
|
||
* featured borders. Hover/active swap to dark variants per DESIGN.md:
|
||
* the neon CTA's hover INVERTS to near-black bg; active dims to pale. */
|
||
--accent: #faff69; /* Neon Volt — signature acid yellow-green */
|
||
--accent-on: #151515; /* Near Black text on neon — maximum readability */
|
||
--accent-hover: #1d1d1d; /* Brand-specific: neon CTA inverts to dark on hover */
|
||
--accent-active: #f4f692; /* Pale Yellow — DESIGN.md active/pressed state */
|
||
|
||
/* ─── Semantic ────────────────────────────────────────────────────
|
||
* Forest Green doubles as success — it's already the brand's
|
||
* "Get Started" CTA color, so it's natively part of the palette.
|
||
* Warn and danger use schema defaults to stay distinguishable. */
|
||
--success: #166534; /* Forest Green — brand-aligned secondary CTA / success */
|
||
--warn: #eab308;
|
||
--danger: #dc2626;
|
||
|
||
/* ─── Typography ──────────────────────────────────────────────────
|
||
* Inter is the primary face — full weight spectrum (400/500/600/700/900).
|
||
* Basier is the secondary display face for feature anchors at weight 600.
|
||
* Inconsolata for code blocks at weight 600 — terminal-like rendering. */
|
||
--font-display: "Inter", "Basier", Arial, Helvetica, ui-sans-serif, system-ui, sans-serif;
|
||
--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
|
||
--font-mono: "Inconsolata", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
|
||
|
||
/* Type scale — DESIGN.md §3. 96px display mega, 72px hero, 36px feature.
|
||
* Weight 900 is reserved for --text-4xl in components; 700 carries the
|
||
* rest. Tight leading at scale — text feels architectural. */
|
||
--text-xs: 12px; /* Small — smallest text */
|
||
--text-sm: 14px; /* Caption / Uppercase Label (1.4px tracking) */
|
||
--text-base: 16px; /* Body / Button / Code */
|
||
--text-lg: 20px; /* Feature Title */
|
||
--text-xl: 24px; /* Sub-heading / Card title */
|
||
--text-2xl: 36px; /* Feature Heading (Basier 600) */
|
||
--text-3xl: 72px; /* Display / Hero (Inter 700) */
|
||
--text-4xl: 96px; /* Display Mega — Inter Black (900) */
|
||
|
||
--leading-body: 1.5;
|
||
--leading-tight: 1.0; /* Display ultra-tight — physical mass */
|
||
--tracking-display: normal; /* DESIGN.md: normal letter-spacing on display */
|
||
|
||
/* ─── Spacing ─────────────────────────────────────────────────────
|
||
* 8px base grid. Section vertical spacing 48–64px (generous). */
|
||
--space-1: 4px;
|
||
--space-2: 8px;
|
||
--space-3: 12px;
|
||
--space-4: 16px;
|
||
--space-5: 20px;
|
||
--space-6: 24px;
|
||
--space-8: 32px;
|
||
--space-12: 48px;
|
||
|
||
--section-y-desktop: 64px; /* DESIGN.md: 48–64px generous section rhythm */
|
||
--section-y-tablet: 48px;
|
||
--section-y-phone: 32px;
|
||
|
||
/* ─── Radius ──────────────────────────────────────────────────────
|
||
* Sharp (4px) on buttons / badges / code blocks — database precision.
|
||
* Comfortable (8px) on cards. Never round corners beyond 8px. */
|
||
--radius-sm: 4px; /* Sharp — buttons, badges, small elements */
|
||
--radius-md: 8px; /* Comfortable — cards, containers */
|
||
--radius-lg: 8px; /* Same — DESIGN.md caps radius at 8px */
|
||
--radius-pill: 9999px; /* Pill — toggle indicators, status badges */
|
||
|
||
/* ─── Elevation ───────────────────────────────────────────────────
|
||
* Shadows are barely visible on black — depth comes from borders.
|
||
* Level 2 subtle shadow declared for parity; the real depth signal
|
||
* is --elev-ring (charcoal hairline) and neon-border highlights. */
|
||
--elev-flat: none;
|
||
--elev-ring: 0 0 0 1px var(--border);
|
||
--elev-raised: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
|
||
|
||
/* ─── Focus ring ──────────────────────────────────────────────────
|
||
* Neon-tinted focus — unified interactive feedback signal across
|
||
* links, buttons, and inputs. Always shifts toward the accent. */
|
||
--focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
|
||
|
||
/* ─── Motion ──────────────────────────────────────────────────────
|
||
* Standard durations — ClickHouse's intensity is in color and weight,
|
||
* not motion. Snappy enough to feel performant. */
|
||
--motion-fast: 150ms;
|
||
--motion-base: 200ms;
|
||
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
||
|
||
/* ─── Layout ──────────────────────────────────────────────────────
|
||
* 1280px container — wide enough for multi-column dense data layouts
|
||
* while still tractable on standard desktops (DESIGN.md tops at 2200px
|
||
* for ultra-wide; 1280px is the workable default). */
|
||
--container-max: 1280px;
|
||
--container-gutter-desktop: 24px;
|
||
--container-gutter-tablet: 16px;
|
||
--container-gutter-phone: 12px;
|
||
}
|