Color
Settld's palette is warm cream, not cold white. Every surface has a hint of the afternoon sun, every shadow is a warm brown — never gray. The accents are surgical: teal for money moving, coral for danger, butter for joy. One accent per moment.
Surface palette
Surfaces stack from canvas outward. Canvas is the page background, paper is elevated (cards, modals). The warm and deep steps create a layering hierarchy — like actual paper on a table.
--s-paper
--s-canvas
--s-warm
--s-deep
Ink scale
Ink is never pure black. The primary ink (#171513) is a deep warm brown — readable, authoritative, but not harsh. Step down to ink-body for body copy, ink-mute for metadata, ink-line for borders and rules.
--ink
--ink-body
--ink-mute
--ink-line
Accents
Three accents. Each has a job. Teal is the primary action color — settle, confirm, success. Coral is surgical emphasis and error states. Butter is celebration and joy. Never mix more than one accent in the same visual context.
Teal
--teal
--teal-deep
--teal-pale
--wm-teal
Coral
--coral
--coral-pale
Butter
--butter
--av-butter
Dark mode palette
Dark mode in Settld is warm brown — never pure black. The canvas is #1E1A16, a deep toasty brown. Pure black (#000000) would shatter the product's warmth. Elevated dark surfaces step up to #2A2521, borders to #3D3630. Text on dark is the light paper color, stepped down for hierarchy.
--dark-canvas
--dark-elevated
--dark-border
--dark-text
--dark-text-2
--dark-text-mute
Semantic colors
Semantic colors map intention to color. Success reuses teal — it's the same feeling as "settled." Warning is a desaturated butter. Error is coral. Info is the lighter wordmark teal. Each has a pale background tint for chips, banners, and toast backgrounds.
Glass
Glass is for floating nav bars, the sticky settle CTA, and overlays on complex backgrounds. It's a semi-transparent paper — not a frosted dark glass like iOS. On cream backgrounds, it blends. On images or dark surfaces, it gives contrast without hiding what's behind.
--glass-bg
--glass-border
Avatar palette
Avatars in Settld get a ring color from this palette. "You" is always ink — it's distinct at a glance. The other four rotate through coral, teal, butter-dark, and mute. The palette is designed so no two friends in a typical group look the same.
--av-you
--av-coral
--av-teal
--av-butter
--av-mute
Contrast ratios
All text pairings in Settld are checked against WCAG 2.1. Body text (ink-body on canvas) comfortably passes AA. Ink-mute on canvas passes AA for large text only — it's used exclusively for metadata and captions at small sizes, so it's intentional. Disabled states fall below AA, which is acceptable since they're non-interactive.
| Foreground | Background | Sample | Ratio | WCAG |
|---|---|---|---|---|
--ink #171513 |
--s-paper #FBF8F0 |
Settld | 12.5:1 | AAA |
--ink #171513 |
--s-canvas #F6F1E6 |
Settld | 11.6:1 | AAA |
--ink-body #4A443D |
--s-canvas #F6F1E6 |
Settld | 7.1:1 | AAA |
--ink-mute #8A8276 |
--s-canvas #F6F1E6 |
Settld | 3.2:1 | Fail (AA large only) |
--s-paper #FBF8F0 |
--ink #171513 |
Settld | 12.5:1 | AAA |
--s-paper #FBF8F0 |
--teal #0E7C66 |
Settle up | 4.8:1 | AA |
--s-paper #FBF8F0 |
--coral #E76F51 |
Remove | 3.1:1 | Fail (AA large only) |
--dark-text #FBF8F0 |
--dark-canvas #1E1A16 |
Settld | 12.1:1 | AAA |
--teal #0E7C66 |
--teal-pale #D6EAE2 |
Active | 4.5:1 | AA |
--coral #E76F51 |
--coral-pale #FADED4 |
Error | 2.9:1 | Fail (decorative use only) |
--coral on --s-paper or --s-canvas, where it passes AA for large text. For small error messages, use --ink or --ink-body with the pale background — not coral.
Shadows
All shadows use a warm tint — rgba(23,21,19,…). This is the ink color at low opacity. Never use gray or neutral-black shadows — they flatten and cool the palette. The warm tint makes cards look like they're sitting on the actual cream surface beneath them.
--shadow-sm — Hairline edge, used on inputs and dividers
--shadow-md — Hover, menus, popovers
--shadow-lg — Cards, panels
--shadow-float — Modals, sticky settle CTA
Usage
rgba(23,21,19,…)) — they sit in the palette like the surface actually has depth. Use teal surgically — the settle button, active states, confirmed indicators.
rgba(0,0,0,…)) — they break the warm palette the moment they appear. Don't use teal as a general-purpose theme color or decorative accent.
--dark-canvas (#1E1A16) for dark mode. It's a warm brown that keeps the product identity intact at night.
Code
CSS custom properties
/* Surface */ --s-paper: #FBF8F0; --s-canvas: #F6F1E6; --s-warm: #F1E9D5; --s-deep: #E8DEC5; /* Ink */ --ink: #171513; --ink-body: #4A443D; --ink-mute: #8A8276; --ink-line: #DDD2B8; /* Accent */ --teal: #0E7C66; --teal-deep: #0A5F4F; --teal-pale: #D6EAE2; --coral: #E76F51; --coral-pale: #FADED4; --butter: #F4C94E;