00 / STYLE GUIDE — VISUAL SOURCE OF TRUTH
Dark
Type
Grid.
This page is the reference for every future change. If a component is not here, it does not exist yet.
01 / COLOR
Roles, not hex.
Components reference tokens only — a hex literal inside a component is a bug. Dark is the default identity; light is opt-in.
Ratio — Surfaces 82% · Text 15% · Accent 3%. Elevation is surface + border in dark, surface + shadow in light. Text clears 4.5:1 on every surface in the ladder; --text-disabled is the one exemption.
02 / TYPOGRAPHY
Geist · Geist Mono
Headings 500 · Body 400 · Mono for metadata, numbers, labels.
BUILDING DIGITAL THINGS.
A better way to move goods.
Project title goes here
Section heading
Websites, tools and experiments. A quiet technical editorial voice.
Body copy at 16px. Generous whitespace, no decoration without purpose.
01 / PROJECT — 2026.09.10 — ASTRO · SVELTE · TYPESCRIPT
01 / PROJECT
A BETTER WAY
TO MOVE GOODS.
Web design · Development · E-commerce
03 / BUTTONS
Pill primary. Outline secondary.
Declared once in global.css — never re-declare .btn in a component. Primary: fill --inverse-bg → hover --accent. Secondary: transparent / --border-strong → hover --accent-hover. Height 48px · Radius 999px
04 / GRID
12-col desktop · 4-col mobile
Max 1440px · Gutter 32px (20px mobile) · Gap 16px (12px mobile).
05 / CARDS
--surface · --border · hover --border-hover
No gradient, no glass. Image bed is --surface-sunken. Elevation is the shadow token — free in dark, real in light.
06 / BLOG ROWS
Editorial list, not cards.
Border-top hairline · Mono date + category · 17px title. Hover: --surface-hover wash, title → --accent-hover.
07 / TOOLS
Mono · index · status dot
Technical but not a dashboard. One purpose per card.
08 / EXPERIMENTAL
≤ 5–10% of the page.
Grid dots · coordinates · system labels · tiny ● indicator in --accent. Opacity low, never dominant.
V2 — Dark first, light opt-in via <html data-theme="light"> · Spacing 4px base (4 8 12 16 24 32 48 64 80 96 128 160 192) · Motion 200–700ms ease-out · Radius sharp (cards 0–4px, buttons 999px)