BlitzMind Design System

Design System · v1

One tokenized source of truth across the app, marketing site, and onboarding. Implemented as CSS variables / Tailwind theme tokens — so Figma, design, and code stay in sync, and developer handoff is a token reference, not a redraw.

01 · Typography & rhythm

Three roles, three families

A serif for character, a tight sans for the interface, a mono for anything that reads as data or a sensor value — the mono is what makes the product feel instrument-grade.

FamilyRoleSample
FrauncesDisplay, headings, big numbersCalm tracks the scoreboard
Inter TightUI, body, labelsInterface and reading text
Geist MonoData, metrics, technicalHRV 68ms · CALM 78%

Scale

TokenSizeUse
displayclamp(2.6–5rem)Hero / section headers (Fraunces)
h21.9–2.9remSection titles
title1.05–1.25remCard / module titles
body1rem / 1.7lhParagraphs
label10–11px · .2em tracking · upperMono labels / eyebrows

Spacing scale · 4px base

4
8
12
16
20
24
32
48
64

Radius

sm 6px · md 8px (buttons) · lg 12px (cards) · xl 14–16px (panels) · full 9999 (pills, gauge)

Elevation — “glass”

translucent fill + 1px line + blur(8–10px) + inset top highlight
No drop shadows on surfaces; depth comes from translucency + hairline borders. Selected state adds an accent ring.

02 · Color tokens

Semantic, never decorative

Three signal colors carry meaning everywhere: red is brand & alert, green is calm & winning, blue is the neutral action. Neutrals build the dark, focused surface stack the product lives on.

Signal

Accent--accent · #ff3b3b
Brand · alert · loss
Calm--calm · #6ee7b7
Calm score · win · success
Action--action · #4a90ff
Primary actions · launch
Gold--gold · #f5c542
Highlights · streaks

Neutrals

Background--bg · #0a0a0b
Page base
Surface--s1 · #121214
Cards · panels
Surface 2--s2 · #16161a
Raised / hover
Line--line · #222228
Hairline dividers
Foreground--fg · #ededee
Primary text
Dim--fg-dim · #a3a3aa
Body / secondary
Muted--fg-mute · #6b6b73
Labels / meta
Line strong--line2 · #2f2f37
Borders / inputs

03 · Components

Core library

Six base components carry most of the surface area. Each ships with rest, hover, focus, and active states already tokenized.

Buttons

LaunchPrimarySecondaryGhost →
Action (blue) for launch/confirm · Accent (red) for brand CTA · Secondary outline · Ghost for inline nav. States: rest / hover (lift -1px + glow) / focus ring.

Badges & pills

VictoryDefeatPrimary
Tinted background at ~12% of the signal color; mono uppercase label.

Glass card — selectable

SELECTED
Crucible Ops
Default / hover (lift) / selected (accent ring + tinted fill + top hairline). Used for games, options, onboarding choices.

Calm gauge

78
270° radial · gradient fill · number scales to size · optional labels. Drives the live Calm Score.

Status tile

• CONTROLLER
Connected
VITALS
72/68
Bordered gap-px grid · status dot · big value · mono label. The glanceable layer.

Data viz

Sparkline (trend) · outcome bars (win=green / loss=red) · calm meter. Minimal, mono-labelled.

04 · Motion

Restrained, purposeful, optional

Motion serves comprehension or it doesn't ship. Every animation has a reduced-motion fallback that resolves to the rest state, so the product remains fully usable without it.

Reveal

Fade + 22px rise on scroll-in, once. Staggered for grids.

Parallax

Controller drifts behind sections, slower than scroll, masked.

Live

Heartbeat ping on sensing nodes; gauge drift; ECG trace.
Easing cubic-bezier(.16,1,.3,1) · durations 200–700ms · every animation has a prefers-reduced-motion fallback that resolves to the rest state.

05 · Principles & evolution

How to apply it

Do

Use mono for any number a player reads as data. Keep the home screen glanceable; push density to detail pages. Let green mean calm/win and red mean alert/loss, consistently.

Don’t

Don’t use the signal colors decoratively. Don’t stack heavy shadows — reach for glass. Don’t introduce a fourth typeface or off-token spacing.

From exploration to system

The earliest components lived in Figma as one-off styles — Neue Montreal type, hard-coded gradients. The intent was already right (blue = action, green = connected); maturing it into tokens is what made it scale across three surfaces.

Before — Figma exploration
Get StartedConnected
Neue Montreal · per-screen gradients · no shared tokens
After — tokenized
LaunchConnected
Inter Tight · --action / --calm · one source of truth
Dhruv Deva