mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
Brands added (each with full 56-token :root + self-contained fixture): - Tier B (AI-adjacent devtools / SaaS): sentry, framer, webflow, warp, arc - Tier C (productivity / consumer): cal, loom, canva, meta, duolingo All 10 declare the complete shared schema (26 A1 + 26 A2 + 4 B-slot) with no C-extensions; pnpm guard reports 36 brand pairs aligned end-to-end. Co-authored-by: chaoxiaoche <chaoxiaoche@chaoxiaochedeMacBook-Pro.local> Co-authored-by: Cursor <cursoragent@cursor.com>
156 lines
9.7 KiB
CSS
156 lines
9.7 KiB
CSS
/* ─────────────────────────────────────────────────────────────────────────
|
||
* design-systems/warp/tokens.css
|
||
*
|
||
* Structured token bindings for "Design System Inspired by Warp".
|
||
* Warm dark canvas, near-black like charred wood. Almost monochromatic
|
||
* warm grays. Matter Regular (weight 400) carries every tier — even
|
||
* the 80px hero. Restraint through warmth.
|
||
*
|
||
* Key brand decisions encoded here:
|
||
* - Warm near-black canvas (#161412) — never cold/blue dark
|
||
* - Warm Parchment (#faf9f6) text — barely-cream, never pure white
|
||
* - Earth Gray (#353534) as the brand "accent" — the dark pill CTA
|
||
* IS the brand signal; no chromatic accent (DESIGN.md §2 forbids)
|
||
* - Four-tier text system: parchment → ash → stone → muted-purple
|
||
* - Mist Border (rgba(226, 226, 226, 0.35)) for ghostly containment
|
||
* - Pill radius reserved for primary CTA; cards stay at 12–14px
|
||
* - Almost-flat elevation — depth via borders + opacity, not shadow
|
||
* - Focus ring uses the FG (parchment), not a colored glow — DESIGN.md
|
||
* "Border brightness increase, no colored rings"
|
||
* ─────────────────────────────────────────────────────────────────── */
|
||
|
||
:root {
|
||
/* ─── Surface ─────────────────────────────────────────────────────
|
||
* Deep warm void. Pure black would feel cold; the reddish-earthen
|
||
* undertone (R>G>B, all near 20) makes the canvas feel like charred
|
||
* wood. Surface is bg + a perceptual ~4% lift, matching the
|
||
* "Frosted Veil" rgba(255,255,255,0.04) overlay DESIGN.md describes. */
|
||
--bg: #161412; /* Deep Void — warm near-black, earth-toned */
|
||
--surface: #1f1d1b; /* Frosted Veil resolved over bg */
|
||
--surface-warm: var(--surface); /* alias — already warm; no separate tier */
|
||
|
||
/* ─── Foreground ──────────────────────────────────────────────────
|
||
* Four warm tiers, no cool grays. Parchment is the headline tone —
|
||
* its barely-cream undertone is what makes the dark canvas feel
|
||
* inviting rather than austere. Meta carries Purple-Tint Gray, the
|
||
* underlined-link tone DESIGN.md §2 calls out. */
|
||
--fg: #faf9f6; /* Warm Parchment — primary headlines */
|
||
--fg-2: #afaeac; /* Ash Gray — body paragraphs, button text */
|
||
--muted: #868584; /* Stone Gray — secondary descriptions */
|
||
--meta: #666469; /* Purple-Tint Gray — links, tertiary content */
|
||
|
||
/* ─── Border ──────────────────────────────────────────────────────
|
||
* Semi-transparent borders create the "ghostly containment" Warp
|
||
* uses instead of shadows. 35% opacity is the canonical value;
|
||
* inner separators alias to the same line — the brand never uses
|
||
* a stronger or weaker tier (monochromatic restraint). */
|
||
--border: rgba(226, 226, 226, 0.35); /* Mist Border */
|
||
--border-soft: var(--border); /* alias — single border tier */
|
||
|
||
/* ─── Accent ──────────────────────────────────────────────────────
|
||
* Warp's "accent" is restrained: Earth Gray, the dark pill CTA bg.
|
||
* DESIGN.md §2 explicitly forbids bold accent colors — interactive
|
||
* states are communicated through opacity and underline, never hue.
|
||
* accent-on is Ash Gray (#afaeac), the muted button-text color
|
||
* DESIGN.md §4 specifies for the dark pill. */
|
||
--accent: #353534;
|
||
--accent-on: #afaeac;
|
||
--accent-hover: #454545; /* Dark Charcoal — slightly lighter pill */
|
||
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
||
|
||
/* ─── Semantic ────────────────────────────────────────────────────
|
||
* Warp's marketing site has no surfaced semantic colors — these
|
||
* exist only for component-level state messaging. Schema defaults
|
||
* are accepted as-is to keep the warm palette unburdened. */
|
||
--success: #16a34a;
|
||
--warn: #eab308;
|
||
--danger: #dc2626;
|
||
|
||
/* ─── Typography ──────────────────────────────────────────────────
|
||
* Matter is the entire system: geometric sans with soft character,
|
||
* approachable in a way most developer-tool fonts are not. Inter
|
||
* appears in DESIGN.md §3 as the "UI supplement" fallback before
|
||
* generic system sans. Geist Mono is the code/terminal display
|
||
* face; Matter Mono is the prose-aligned mono companion. */
|
||
--font-display: "Matter Regular", "Matter", "Inter", ui-sans-serif, system-ui, sans-serif;
|
||
--font-body: "Matter Regular", "Matter", "Inter", ui-sans-serif, system-ui, sans-serif;
|
||
--font-mono: "Geist Mono", "Matter Mono Regular", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
|
||
|
||
/* Type scale — DESIGN.md §3 hierarchy. Body baseline is 18px (not
|
||
* the more conventional 16); Warp's editorial pacing wants more
|
||
* breathing room per line. Display hero at 80px with -0.03em
|
||
* tracking (≈ -2.4px) is the billboard moment. */
|
||
--text-xs: 12px; /* Small Label — uppercase 2.4px tracking */
|
||
--text-sm: 14px; /* Caption — uppercase 1.4px tracking */
|
||
--text-base: 18px; /* Body — DESIGN.md body baseline */
|
||
--text-lg: 24px; /* Body Heading */
|
||
--text-xl: 32px; /* Sub-heading */
|
||
--text-2xl: 48px; /* Section Heading */
|
||
--text-3xl: 56px; /* Section Display */
|
||
--text-4xl: 80px; /* Display Hero — billboard scale */
|
||
|
||
--leading-body: 1.4; /* Body Large lh — relaxed editorial */
|
||
--leading-tight: 1.0; /* Display Hero lh — maximum compression */
|
||
--tracking-display: -0.03em; /* ≈ -2.4px at 80px — hero compression */
|
||
|
||
/* ─── Spacing ─────────────────────────────────────────────────────
|
||
* 8px base unit (DESIGN.md §5). Schema defaults match Warp's scale
|
||
* exactly — no override needed. */
|
||
--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 rhythm ──────────────────────────────────────────────
|
||
* Generous, contemplative pacing. DESIGN.md §5: "80px–120px vertical
|
||
* between major sections." Desktop uses the upper bound — Warp's
|
||
* marketing site reads like a magazine, each section a page-turn. */
|
||
--section-y-desktop: 120px;
|
||
--section-y-tablet: 80px;
|
||
--section-y-phone: 56px;
|
||
|
||
/* ─── Radius ──────────────────────────────────────────────────────
|
||
* Warp's radius scale (DESIGN.md §5) ranges 4–14px for content,
|
||
* 50px+ for pills. Standard components live in the soft 6–14px tier;
|
||
* the primary CTA reaches for --radius-pill. */
|
||
--radius-sm: 6px; /* Inputs, tags, small containers */
|
||
--radius-md: 12px; /* Feature cards */
|
||
--radius-lg: 14px; /* Large prominent containers */
|
||
--radius-pill: 9999px; /* Dark pill button — primary CTA */
|
||
|
||
/* ─── Elevation ───────────────────────────────────────────────────
|
||
* Almost-flat. DESIGN.md §6: "remarkably flat — almost zero shadow
|
||
* usage." Depth comes from semi-transparent borders (the ring tier)
|
||
* and the rare ambient shadow lifted directly from DESIGN.md's
|
||
* inferred Level 3 treatment. */
|
||
--elev-flat: none;
|
||
--elev-ring: 0 0 0 1px var(--border);
|
||
--elev-raised: 0 5px 15px rgba(0, 0, 0, 0.2);
|
||
|
||
/* ─── Focus ring ──────────────────────────────────────────────────
|
||
* NO colored ring. DESIGN.md §4: "Border brightness increase, no
|
||
* colored rings (consistent with the monochromatic palette)." A
|
||
* 50%-opacity warm parchment glow is the brightest legal indicator. */
|
||
--focus-ring: 0 0 0 2px rgba(250, 249, 246, 0.5);
|
||
|
||
/* ─── Motion ──────────────────────────────────────────────────────
|
||
* Standard cadence — DESIGN.md doesn't specify timing, and the
|
||
* brand's calm character is carried by typography and color rather
|
||
* than animation choreography. Schema defaults preserved. */
|
||
--motion-fast: 150ms;
|
||
--motion-base: 200ms;
|
||
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
||
|
||
/* ─── Layout ──────────────────────────────────────────────────────
|
||
* 1500px container — DESIGN.md §5 calls out the breakpoint exactly.
|
||
* Wide cinematic compositions let nature photography breathe; phone
|
||
* gutter steps down through the responsive scale (32 → 24 → 16). */
|
||
--container-max: 1500px;
|
||
--container-gutter-desktop: 32px;
|
||
--container-gutter-tablet: 24px;
|
||
--container-gutter-phone: 16px;
|
||
}
|