/* ───────────────────────────────────────────────────────────────────────── * design-systems/spacex/tokens.css * * Structured token bindings for "Design System Inspired by SpaceX". * Cinematic aerospace minimalism: pure black canvas, full-viewport * photography, D-DIN industrial type, universal uppercase + positive * tracking, zero shadows / cards / decoration. The interface disappears * behind the imagery — only type, photography, and a single ghost button. * * Key brand decisions encoded here: * - Pure Space Black (#000000) — the void of space; never a soft black * - Spectral White (#f0f0fa) — slight blue-violet tint that mimics starlight * - --surface aliases to --bg — SpaceX has NO cards, panels, or containers * - Ghost border (rgba(240,240,250,0.35)) — only visible interactive edge * - D-DIN industrial typeface — DIN heritage, stenciled aerospace voice * - Display tracking 0.02em (= 0.96px at 48px) — DESIGN.md §3 verbatim * - Tight leading 1.0 — compressed mission-briefing rhythm * - --elev-raised: none — zero shadows; depth comes from photography * - --radius-pill: 32px — the ghost button is the SOLE rounded element * ─────────────────────────────────────────────────────────────────── */ :root { /* ─── Surface ───────────────────────────────────────────────────── * The void of space. There is no card tier, no warm tier — every * SpaceX section is text-on-photograph, not text-on-surface. We * still declare --surface so cross-brand components that paint a * card still resolve, but it deliberately matches --bg. */ --bg: #000000; /* Space Black — pure void, the foundation canvas */ --surface: #000000; /* No card surfaces — content sits directly on the void */ --surface-warm: var(--surface); /* alias — no warm tier in an achromatic system */ /* ─── Foreground ────────────────────────────────────────────────── * Spectral White, never pure white. The slight blue-violet tint * mimics starlight on a spacecraft hull and prevents the clinical * feel of #ffffff against pure black. */ --fg: #f0f0fa; /* Spectral White — primary text, mission-critical signal */ --fg-2: var(--fg); /* alias — single text weight throughout the system */ --muted: rgba(240, 240, 250, 0.7); /* Dimmed spectral — captions, secondary labels */ --meta: var(--muted); /* alias — tertiary FG identical to muted on dark canvas */ /* ─── Border ────────────────────────────────────────────────────── * The Ghost Border (35% spectral) is the only edge that ever * appears — on the lone ghost CTA button. Inner separators borrow * the 10% spectral surface tint so they barely register. */ --border: rgba(240, 240, 250, 0.35); /* Ghost Border — DESIGN.md §2 verbatim */ --border-soft: rgba(240, 240, 250, 0.1); /* Inner separators / barely-visible dividers */ /* ─── Accent ────────────────────────────────────────────────────── * SpaceX has no chromatic accent — Spectral White IS the accent. * Hover lifts to pure white (Hover White / --white-100 in DESIGN.md); * active gently dims. The full ghost-button affordance is * implemented in components, not in the accent token. */ --accent: #f0f0fa; /* Spectral White stands in for any brand accent */ --accent-on: #000000; /* Black text when accent is the bg */ --accent-hover: #ffffff; /* Hover White — pure white per DESIGN.md §2 */ --accent-active: #d8d8e6; /* Dimmed spectral — pressed state */ /* ─── Semantic ──────────────────────────────────────────────────── * Schema defaults preserved. SpaceX's homepage is purely * presentational and almost never surfaces semantic state, but the * tokens must resolve when shared components reference them. */ --success: #16a34a; --warn: #eab308; --danger: #dc2626; /* ─── Typography ────────────────────────────────────────────────── * D-DIN — industrial geometric, German DIN heritage. Two weights * only: 700 (Bold) for display + nav emphasis, 400 for body. * Fallbacks per DESIGN.md §3: Arial, Verdana. */ --font-display: "D-DIN-Bold", "D-DIN", "DIN Alternate", "Helvetica Neue", Arial, Verdana, sans-serif; --font-body: "D-DIN", "DIN Alternate", "Helvetica Neue", Arial, Verdana, sans-serif; --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace; /* Type scale — DESIGN.md §3 anchors: 10px (Micro), 12px (Caption / * Nav), 16px (Body), 48px (Display Hero). Intermediate tiers * (20/24/32/40) are interpolated for the few moments a SpaceX-style * layout needs them; the actual brand uses very few sizes. */ --text-xs: 10px; /* Micro — uppercase ghost labels */ --text-sm: 12px; /* Caption / Nav Link — uppercase */ --text-base: 16px; /* Body — standard reading text */ --text-lg: 20px; --text-xl: 24px; --text-2xl: 32px; --text-3xl: 40px; --text-4xl: 48px; /* Display Hero — D-DIN-Bold uppercase, "MISSION" weight */ --leading-body: 1.5; /* DESIGN.md says 1.5–1.7 for reading body */ --leading-tight: 1.0; /* Display / mission-briefing rhythm */ --tracking-display: 0.02em; /* = 0.96px at 48px — DESIGN.md §3 hero spec verbatim */ /* ─── Spacing ───────────────────────────────────────────────────── * 8px base unit per DESIGN.md §5. Schema-default scale preserved — * SpaceX's irregular published scale (3/5/12/15/18/20/24/30) is a * brand-specific rhythm; cross-brand components paint at 4/8/12/16. */ --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 ────────────────────────────────────────────── * DESIGN.md §5: each section is one full viewport. We can't bind * "100vh" to padding (it would collapse on short content), so * section-y is generous to evoke the cinematic single-viewport * rhythm in fixture renderings. */ --section-y-desktop: 120px; --section-y-tablet: 80px; --section-y-phone: 56px; /* ─── Radius ────────────────────────────────────────────────────── * Sharp 4px on dividers / utility — DESIGN.md §5 "Sharp (4px)". * --radius-pill rebound to 32px because SpaceX's ghost button IS * the only rounded element in the system, and "pill" semantically * maps to that lone interactive surface. */ --radius-sm: 4px; --radius-md: 4px; /* No medium tier exists — same as sm */ --radius-lg: 4px; /* No large tier exists — same as sm */ --radius-pill: 32px; /* Ghost button radius — the only rounded element */ /* ─── Elevation (ZERO shadows) ──────────────────────────────────── * DESIGN.md §6: "SpaceX uses ZERO shadows." Every surface is * already a photograph with natural lighting; CSS shadows would * compete with the cinematic content. --elev-raised resolves to * `none` so any shared component requesting a raised surface * silently flattens instead of painting a synthetic drop shadow. */ --elev-flat: none; --elev-ring: 0 0 0 1px var(--border); /* Hairline spectral ring — ghost-button edge */ --elev-raised: none; /* Zero shadows — photography carries depth */ /* ─── Focus ring ────────────────────────────────────────────────── * Solid 2px spectral ring — high contrast on black canvas. No * blurred glow (consistent with the zero-shadow philosophy). */ --focus-ring: 0 0 0 2px var(--accent); /* ─── Motion ────────────────────────────────────────────────────── * Standard schema durations. SpaceX's drama is in the photography * and type, not in animated state changes. */ --motion-fast: 150ms; --motion-base: 200ms; --ease-standard: cubic-bezier(0.2, 0, 0, 1); /* ─── Layout ────────────────────────────────────────────────────── * 1440px container — wide-format layouts honour the cinematic * full-bleed feel without letting hero copy stretch beyond * readable on ultra-wide displays. Generous gutters keep the * "edge-to-edge imagery" feel even at smaller breakpoints. */ --container-max: 1440px; --container-gutter-desktop: 24px; --container-gutter-tablet: 20px; --container-gutter-phone: 18px; }