Design system

Every value on the site comes from a token in styles.css. This page shows each one in use.

Color

White paper, cool grey floor, near-black ink. Cobalt is the brand and the only chromatic accent. Amber is reserved for reclaimable space, as in the app.

Paper--paper #ffffff
Floor--floor #f1f3f7
Ink--ink #0e1116
Slate--slate #5b6472
Cobalt--cobalt #2545f5
Amber--amber #f5a624
Floor high--floor-hi
Rule--rule
Slate light--slate-2
Cobalt wash--cobalt-wash

Type

Bricolage Grotesque carries headlines with tight tracking and its optical sizing left on. Hanken Grotesk sets everything else. Body copy stays under 34em.

Display
--fs-3xl
Gigabytes
Heading
--fs-2xl

See where the disk went.

Title
--fs-xl

Background cleanup

Lead
--fs-lg

AI Keeper shows which worktrees and build folders are safe to delete.

Body
--fs-base

Each cleanup opens a list of exactly what will be removed and how much space it frees.

Fine print
14px

Free. Requires macOS 14 or later.

Space and radius

A 4pt scale. Radii step up with the size of the thing: buttons and code blocks 10, windows 26 on a 1360 capture (1.9% of width), plates 28.

--s-2
--s-4
--s-5
--s-6
--s-8
--s-9
--r-sm 6
--r-md 10
--r-lg 20
--r-xl 28

Elevation

Shadows are neutral and layered: a one-pixel edge, then offset and blur that double with each layer, so light comes from above. Small for controls, medium for panels and dialogs, large for the app window. Shadows only read on the floor, so surfaces that lift sit on it. App windows also get a hairline edge and an inner top highlight, like AppKit draws.

--e-sm · controls
--e-md · panels
--e-lg · hero
.win · app window

Components

Buttons lift one pixel on hover and settle on press. One primary action per view.

$ brew trust --tap chungquantin/ai-keeper $ brew install --cask ai-keeper

Index row

A name and a sentence, set on a ruled line. Used where content is a list of parallel things, in place of a card grid.

Plate

A floor-colored panel with a window cropped into it. The crop shows depth and keeps one screenshot from filling the page.

Rules