Back to prototypes
Public · Design System

The design system, shaped so Claude can actually use it

Every prototype on the site runs on the tokens below. I packaged the same spec as a single file Claude can read, so any prototype you ask Claude to build comes back in this exact style. Grab it, keep scrolling for the visual reference.

Plug this into Claude

Every prototype Claude builds for you, in this style

The full spec is packaged as a single Markdown file Claude can read. Paste it into a chat, drop it into a Claude Code skill folder, or point Claude at the URL. Every prototype comes back matching the tokens, components, and voice rules the site runs on.

1 · Download
falkster-design-system.md
Drop into .claude/skills/ as a SKILL.md. Claude Code auto-loads it.
Preview the compact preamble
You are building a prototype on falkster.com. Match this design system exactly.

Stack: Next.js 16 App Router, React 19, TypeScript strict, Tailwind v4 (CSS-first
@theme, no tailwind.config.js), lucide-react icons. No shadcn, no Radix.

Colors (Tailwind tokens → hex):
bg=#0a0e1a bg-elevated=#12182b bg-card=#1c2337 bg-hover=#272f44
border=#2d3548 border-bright=#3a4760
text=#e6ecf4 text-muted=#9eafc7 text-dim=#6b7a94
accent=#38bdf8 accent-bright=#7dd3fc
neon-cyan=#22d3ee neon-green=#34d399 neon-pink=#e879f9 neon-orange=#818cf8

Fonts: Inter (body), DM Sans (h1-h4 via font-display), JetBrains Mono (captions
and code). Body 17px, line-height 1.6.

Patterns:
- Page: <div class="min-h-screen bg-bg"><div class="max-w-5xl mx-auto px-6 py-12 md:py-16">…
- Eyebrow: px-3 py-1 rounded-full border border-accent/30 bg-accent/5 text-[11px] tracking-wider text-accent-bright
- Hero h1: text-5xl md:text-7xl font-bold tracking-tight leading-[1.05]
- Primary btn: px-5 py-2.5 rounded-lg bg-accent hover:bg-accent-bright text-white font-medium text-sm transition-colors
- Secondary btn: px-5 py-2.5 rounded-lg border border-border hover:border-accent text-text hover:text-accent-bright
- Card: rounded-xl border border-border bg-bg-card p-5 hover:border-border-bright
- Pill: inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] tracking-wider rounded-md border border-{color}/30 bg-{color}/5 text-{color}
- Body copy: text-text-muted (not text-text)

Voice: first person, short sentences, no em dashes, no "genuinely /
fundamentally / leverage / unlock", verbs on CTAs ("Ship it", not "Learn
more"), end with an action.

Always export metadata (title, description, canonical) from page.tsx. Put UI
in a client component. Output only full file contents, no commentary.

Full spec with every component, layout, and copy rule:
https://falkster.com/artifacts/falkster-design-system.md

01 · Brand mark

A square (the system), a tilted diamond at -14° (the question), and three dots (thinking). Three SVG variants, currentColor only, never gradient, never cyan-filled.

Default · 24px+

Full weave with the diamond's back path at 55%. Stroke 2.2-2.5px. Used on body surfaces.

Bold · navbar

Two squares stack, no back-path subtlety. Stroke 3.5px. Used at 30-44px in nav and hero lockups.

Favicon · 16px

Square + dots only (the diamond drops). Stroke 5px. Used at 16px and below.

Wordmark + clear space
falkster

Lowercase wordmark, DM Sans 700, tracking -0.03em at hero size. Mark sits left of the wordmark, centerline aligned. Clear space: one dot diameter on every side. The mark uses currentColor only, never gradient, never cyan, both are explicit "Don't" examples in the brand styleguide.

02 · Color tokens

Named tokens map to Tailwind classes. Copy the token name. The theme toggle above flips the swatches between dark and light values.

Accents
accent#38bdf8

Primary sky. CTAs, links, active

accent-bright#7dd3fc

Hover on accent, link hover

neon-cyan#22d3ee

Methodology, analytics, passing

neon-green#34d399

AI agents, shipped, signals

neon-pink#e879f9

Foundation, alerts, high-intensity

neon-orange#818cf8

Leadership, execution, warning

Surfaces
bg#0a0e1a

Page background

bg-elevated#12182b

Nav, sticky bars, footer

bg-card#1c2337

Cards, panels, code blocks

bg-hover#272f44

Hover state on cards and rows

border#2d3548

Default dividers, card outlines

border-bright#3a4760

Hover border, focused outline

Text
text#e6ecf4

Headings, primary body

text-muted#9eafc7

Secondary body, descriptions

text-dim#6b7a94

Captions, timestamps, metadata

03 · Typography

DM Sans for display, Inter for body, JetBrains Mono for eyebrows + tokens, Source Serif 4 opt-in for prose pull-quotes.

Display XL
Ship the prototype
Display L
Prototype in hours, not sprints
Heading 2
The signal-to-prototype loop
Heading 3
Ship with observability
Heading 4
Eval-as-spec
Body Large
Something just moved in the signal. A support ticket cluster, a call transcript, a churn survey.
Body
Product builders ship working code to the one customer first. Engineering scales it to everyone after.
Small
Secondary copy, captions, descriptions inside cards.
Mono caption
section 01 · public

04 · Iconography

Lucide React, stroke 1.75-2, currentColor, sized 14-22px inline with text. Plus the three-dot motif: ellipsis, loading state, section divider.

ArrowRight
Bot
Workflow
Sparkles
MessageSquare
Globe2
Search
Calendar
FileText
Eye
Zap
Target
Lightbulb
Layers
Bell
Code
ChevronDown
Rocket
Three-dot motif · ••• · loading · ellipsis · divider
Static · ellipsis
Animated · loading

The ellipsis recurs throughout the brand: in the mark, as a thinking/loading indicator, as a section divider. Maps to discover → build → measure. Use sparingly.

05 · Spacing

Tailwind spacing scale. Use multiples of 4px.

p-1
4px
p-2
8px
p-3
12px
p-4
16px
p-6
24px
p-8
32px
p-10
40px
p-12
48px
p-16
64px
p-24
96px

06 · Radii, shadows & glows

Card radius 12px, ai-border radius 22px, pill 9999. Layered card shadows are subtle, borders carry the elevation work. Accent CTAs get a triple-layer cyan halo.

Radii scale
xs
2px
sm
4px
md
8px
lg
12px
xl
16px
2xl
22px
pill
9999
shadow-sm

1px lift, near-zero spread. Default tile.

shadow-md

Hover, hovered card.

shadow-lg

Modals, dialogs, drag-state.

glow-accent

Triple-layer sky-cyan halo on primary CTAs and active pills.

07 · AI motifs

Aurora gradient (#38bdf8 → #22d3ee → #a78bfa → #e879f9) is the recurring AI signature. Used as a thin streak around input borders on focus, never as a flat fill. Plus the AI divider, a horizontal slice of the same gradient.

Aurora gradient

Sky → cyan → violet → fuchsia. Cool the whole way through, no warm stops. Use as a 1-2px streak on focused/hovered inputs and CTAs. Also lives as a 0.4 → 0.5 → 0.4 alpha curve in the .ai-divider hairline below.

AI-bordered input · chat composer
AI divider · <hr className="ai-divider" />

A 1px horizontal slice of the aurora gradient, used between major page sections. Animation respects prefers-reduced-motion.

08 · Component patterns

Copy-paste ready. Every prototype on the site uses exactly these.

Buttons
Pills & badges
ActiveShippedEval passingNeeds reviewBlocked
Cards
Default

Card title goes here

Neutral background, subtle border, the default container.

Accent · go

Accent card (go)

Use when the card should pull attention and signal forward motion.

Live indicator + operator counter
12,847OperatorsLivev2.0
Category badges · five-hue handbook spectrum
FoundationDiscoveryExecutionAI AgentsLeadership

Each handbook wave + each PM-stage agent gets one of these hues. Five accents, no warm reds/oranges, the brand explicitly forbids amber/red/orange.

Article card · agent blueprint + field log
Agent blueprint

The Churn Signal Agent

Sense · Daily · 12 min read

Watches Pendo, Mixpanel, and your CRM for usage decay. Files a one-paragraph brief in your inbox at 9am with the three accounts most likely to churn this quarter.

Read the blueprint
Field log

Why I killed the feature my team built for six months

Falk · 4d ago · 8 min read

The discovery work said "no" by week three. We shipped anyway. Here's what I do differently now, and the four signals I should have caught.

Read the post
Inline code + blocks

Reference a token like text-accent-bright and drop code blocks directly in prose.

// ship it
const eval = loadEval('./evals/onboarding.md');
const score = await run(eval, 'gpt-4o-mini');
if (score < 0.82) throw new Error('blocked');

09 · Fork it

Tailwind v4 @theme block. Paste into globals.css under @import "tailwindcss".

@import "tailwindcss";

@theme {
  /* Surfaces */
  --color-bg:            #0a0e1a;
  --color-bg-elevated:   #12182b;
  --color-bg-card:       #1c2337;
  --color-bg-hover:      #272f44;
  --color-border:        #2d3548;
  --color-border-bright: #3a4760;

  /* Text */
  --color-text:          #e6ecf4;
  --color-text-muted:    #9eafc7;
  --color-text-dim:      #6b7a94;

  /* Accent, vivid sky */
  --color-accent:        #38bdf8;
  --color-accent-bright: #7dd3fc;
  --color-accent-glow:   rgba(56, 189, 248, 0.28);

  /* Category accents */
  --color-neon-cyan:     #22d3ee;
  --color-neon-green:    #34d399;
  --color-neon-pink:     #e879f9;
  --color-neon-orange:   #818cf8;

  /* Fonts */
  --font-sans:    "Inter", ui-sans-serif, system-ui, sans-serif;
  --font-display: "DM Sans", "Inter", system-ui, sans-serif;
  --font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, Menlo, monospace;
}

Want the actual prototype source? The private lab has the full repos.

Enter the lab