Appendix A · DesignKit · Swift Package

The system underneath.

DesignKit is a Swift Package that defines one design language for the whole ecosystem — tokens, components, and presets. Stack is the first app shipping against it.

Pick a theme. Watch it land.

A curated slice of the catalog — leading with the loud ones. Same card, same button, same badge. Different identity each time, driven entirely by tokens.

Vapor · Loud · Light

Today · Push Day

Bench Press — 185 × 5

Three sets logged. Rest timer running. The set you just did is a personal record.

PR ✓
Background #FAF7F0
Surface #FFFFFF
Accent #2F5D3A
Text #1C1B1A

The catalog goes deeper.

Seven presets in the preview above. Thirty-four in the full catalog, sorted into six personalities.

Classic — Forest, Navy, Maroon, Walnut, Stone. Quiet anchors. Sweet — Sakura, Bubblegum, Mint. Soft and warm. Bright — Solar, Citrus, Lagoon. High-contrast, high-energy. Soft — Cream, Linen, Mist. Low-contrast and easy on the eyes. Moody — Nord, Dracula, Gruvbox, Carbon, Midnight. Editor-grade dark. Loud — Vapor, Synth, Hazard, Acid. Themes that pick a fight with restraint.

Beyond the catalog, the four-anchor override lets users build their own. Pick a background, a surface, an accent, and a text color — DesignKit derives the rest with contrast checks, so even a chaotic theme stays legible.

The design philosophy.

The contract is the tokens. Every color, type ramp, spacing step, corner radius, and motion curve is a named variable resolved at runtime. Components — DKCard, DKButton, DKBadge, DKThemePicker — never hardcode anything; they read from the contract. Switch a preset and every screen, every chart, every widget reflows in lockstep. No stray hex values. No drifted padding. No surprises.

That's how one team ships apps that feel like one premium product instead of a kit-bashed family. Tokens are the contract. The apps are the voices.

It's also the customization engine. The catalog ships thirty-four hand-tuned presets across six categories — Classic, Sweet, Bright, Soft, Moody, Loud — and a four-anchor override lets a user define their own theme. Pick four colors; DesignKit extrapolates the rest with contrast checks baked in, so a wild theme still has legible text and readable charts.

DesignKit ships inside Stack first. Follow the app to follow the system.