Design system
Design system / Tokens

Black ink, warm paper, rare signal.

The tokens here are the single source of truth. Tailwind reads from web/lib/design-tokens.ts; so does this page. If a color, size, or duration is not here, it is not in the system.

PaperReceiptsActions
02A / Color

Five values, no decoration.

Color separates, proves, or focuses. It does not flatter. Each token maps to a Tailwind utility — bg-ink, bg-paper, bg-surface, text-muted, text-accent — so the docs and the running site move in lockstep.

Ink
#050505
bg-ink · text-ink

Primary text, key panels, decisive actions, hard rules.

Paper
#f7f7f4
bg-paper · text-paper

Default page and panel fill. The warm background of the app.

White
#ffffff
bg-surface · text-surface

Source excerpts, inputs, compact specimens, lifted surfaces.

Neutral
#737373
bg-muted · text-muted

Secondary labels, explanatory copy, metadata.

Signal
#059669
bg-accent · text-accent

Rare positive state, verified status, focus ring only.

02B / Spacing

The editorial rhythm.

Tailwind ships a full spacing scale; these are the beats we reach for. Stick to them so margins stop drifting.

space-1
4px

Hairline gaps, border insets.

space-2
8px

Tight stacks, icon-to-text.

space-3
12px

Inline pill clusters, dense rows.

space-4
16px

Panel padding, default gaps.

space-5
20px

Section heads to body.

space-6
24px

Module gutter.

space-8
32px

Major section break inside a page.

space-10
40px

Between reference sections.

space-12
48px

Page header to body well.

02C / Radii

The system is square.

Only three radii exist. Anything more rounded reads as generic SaaS chrome and should be pushed back.

rounded-none
0px

The system is square. Use 0 unless there is a reason.

rounded-sm
4px

Focus ring radius only.

rounded-full
9999px

Round chips on chevron buttons; sparing use.

02D / Shadow

Almost never. Two cases only.

The system avoids shadow as decoration. Use diffuse only under floating surfaces; use sheet for modal sheets.

shadow-diffuse

Soft lift under floating drawers (WorkDrawer). Never on cards.

0 20px 40px -15px rgba(24, 24, 27, 0.06)

shadow-sheet

Mobile nav popover, modal sheets.

0 24px 80px rgba(0,0,0,0.22)

02E / Motion

One ease curve, four durations.

Every transition uses the same ease — cubic-bezier(0.32, 0.72, 0, 1). Duration changes with the size of the movement.

--ledger-ease: cubic-bezier(0.32, 0.72, 0, 1)
Micro
180ms

Color/opacity hover.

Card
350ms

Card lift, specimen hover.

Sheet
500ms

Drawer, modal entry.

Reveal
800ms

Section reveal on scroll.

02F / Type

See the type page.

Type tokens are large enough to deserve their own page.

Open Typography