open-design/design-systems/warp/tokens.css
chaoxiaoche 9983bb3003
feat(design-systems): add tokens.css + components.html for 10 SaaS / consumer brands (#2028)
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>
2026-05-18 14:03:19 +08:00

156 lines
9.7 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ─────────────────────────────────────────────────────────────────────────
* 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 1214px
* - 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: "80px120px 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 414px for content,
* 50px+ for pills. Standard components live in the soft 614px 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;
}