showcase.
every primitive · every state.
This page is the system. If a component looks wrong here, the system is wrong. See docs/DESIGN_GUIDE.md for the constitution. Three dials govern every composition; the rules below translate them into mechanics.
taste calibration · the three dials
Every layout, transition, and spacing decision derives from three numeric dials. They are set once for the whole site so output stays coherent — not chosen per-component. If a pattern reads wrong on the page, the dial is right and the pattern is wrong.
1 · symmetry / 10 · chaos
Off-center heroes and fractional grids by default. Centered hero text is banned above md.
1 · static / 10 · cinematic
Hover and focus only. CSS transitions, no spring physics, no scroll choreography.
1 · gallery / 10 · cockpit
Tight rows for data, generous headroom for headlines. Cards avoided when divide-y will do.
color · japanese washi
Two-tone palette. Hue locked to 85° (warm yellow undertone). Chroma stays ≤ 0.005. White reads as washi paper, never pure. Black reads as soft warm ink. Status accents are reserved for semantics — never decoration.
oklch(0.980 0.003 85)oklch(0.160 0.004 85)oklch(0.992 0.002 85)oklch(0.965 0.003 85)oklch(0.450 0.005 85)oklch(0.900 0.005 85)oklch(0.160 0.004 85)oklch(0.530 0.180 27)oklch(0.100 0.003 85)oklch(0.960 0.003 85)oklch(0.135 0.004 85)oklch(0.180 0.004 85)oklch(0.650 0.005 85)oklch(0.220 0.005 85)oklch(0.960 0.003 85)oklch(0.620 0.200 25)--accent-blue--accent-green--accent-amber--accent-violetAllowed as 1.5 px dots, 1 px hairlines, or single glyphs. Never as headline gradient ends, body type color, or chart series.
typography · geist mono + fluid clamp
Two families: Geist Sans (dashboard prose) and Geist Mono (default for everything inside the marketing route). Display tier uses clamp() so headlines stay readable on phones without breaking the 8 px grid.
spacing · 8px grid
Everything aligns to 8 px. Allowed values: 4 8 12 16 24 32 48 64 96 128 192. --grid-size: 8px is exposed so dot/line backgrounds align with content automatically.
shadow · hairline offset
Two shadow vocabularies. Hard-offset (default) for everyday elevation. Halftone density-gradient (sparing) for hero cards and primary CTAs. Both are blur-free; elevation = longer offset, never softer blur.
1px hairline · default
2px foreground · hover
halftone · density gradient
halftone · showcase only
motion · restrained · ease-schematic
MOTION_INTENSITY is 3. Hover and focus only. Three named easings cover everything. Animate transform and opacity exclusively — never width, height, top, or left.
cubic-bezier(0.32, 0.72, 0, 1)default · all hover/focus state
cubic-bezier(0.16, 1, 0.3, 1)enter · panel reveal, modal in
cubic-bezier(0.7, 0, 0.84, 0)exit · modal close, dismiss
headlines · eyebrow + asymmetric
Every section heading gets an eyebrow tag above it. The eyebrow lets the heading drop off-center without losing hierarchy. Centered hero text on a giant image is banned.
drop-in replacement for openai.
Swap the base URL, ship the diff, keep the SDK. Per-key budgets stop the bill before it starts.
Welcome to Synapse Garden!
Elevate your team with seamless, next-gen AI infrastructure.
input · text controls
controls · checkbox · radio · switch · progress
card · default · schematic · flat
schematic card primitive
With corner brackets, top-right meta label, and a bottom caption — the recurring marketing card pattern.
badge · meta tags
alert · the four states
sub_4Hf2… renewed. Next invoice runs on the 1st.search-dev is at 88 % of its monthly cap. Bump the limit or split the project before requests start failing.504 on 2 % of requests in the last 5 minutes. Retries already succeeded.tabs · code surface
# ai-sdk · openai-compatible$ import { generateText } from 'ai'$$ const { text } = await generateText({$ model: 'openai/gpt-5.4',$ baseURL: 'https://synapse.garden/api/v1',$ prompt: 'why is the sky blue?',$ })→ 200 OK · 184 ms · 12 tokens · $0.00021
table · spec sheet · tabular numerics
For dense numeric data, prefer a flat <table> over a card grid. Every digit aligns. Hairline rules between rows.
| Metric | Value | Window | Status |
|---|---|---|---|
| P50 latency overhead | 12.4 ms | vs. vercel direct | ok |
| P95 latency overhead | 39.1 ms | target < 50 ms | ok |
| Key cache hit rate | 99.42 % | rolling 7d · upstash | ok |
| Daily request count | 4,182,600 | rolling 24h | ok |
| Monthly margin (10%) | $ 8,417.22 | month-to-date | ok |
marketing primitives
patterns · the vocabulary in one frame
How the primitives compose. Eyebrow + asymmetric headline + schematic frame + ascii flow + tabular stat. Every page section should feel familiar from this composition.
one key · every llm.
anti-slop · forbidden patterns
The patterns that make AI-generated UI identifiable on sight. Banned without exception.
Inter / Roboto / Helvetica
Default-LLM type. We use Geist Sans + Mono only.
Pure #FFF / #000
Palette is washi · warm-soft-black. Always tokens.
Glow shadows · gradient text
Elevation = longer hard offset, never softer blur.
Rounded corners on rectangles
--radius: 0. Round only for physical affordances.
3-equal-card horizontal grids
Replaced by 2fr / 1fr or spec-sheet rows.
Centered hero text on giant image
Use eyebrow + asymmetric heading instead.
John Doe · Acme · 99.99 %
Believable, organic data only.
“Elevate · Seamless · Unleash”
Concrete verbs. Sentence case. Technical voice.
Custom cursors · parallax tilt
MOTION_INTENSITY is 3. Not in this system.