Designing Halvy's calm palette
title: "Designing Halvy's calm palette" dek: "Sage, sand, and a single strict rule about red." date: 2026-04-12 author: "Iqbal Adrianto" status: published coverImage: /blog/designing-halvys-calm-palette.svg coverAlt: "Halvy palette swatches — sage, sand, dusk, ink, off-white — on a warm background" tags: ["design", "accessibility"]
Finance apps tend to look like finance apps. Sharp blues. Grid-ruled cards. Green arrows pointing up at you when the market cooperated and red arrows pointing down when it didn't. I've spent enough mornings looking at those dashboards to know they are not restful surfaces. Halvy is a tool two people will open on Sunday night, together, to talk about money. It cannot feel like a trading floor.
So the palette was the first real design decision, and it shaped every one that followed.
Sage, sand, terracotta
The core of Halvy's look is three families. Sage green carries the primary accent — it's calm, it's slightly old-fashioned, and it has none of the aggressive optimism of a venture-fund teal. Warm sand handles backgrounds and soft surfaces; it reads like paper, which is the metaphor we want. Terracotta shows up sparingly in illustrations and celebration states — a savings goal hitting its target, a household created, a first expense logged. Three families is enough to feel considered, not enough to feel busy.
The names matter more than designers usually admit. Calling the accent "sage" instead of "green-500" nudges every new screen toward the right feeling. A sage accent asks to be used gently. A green-500 accent asks to be slathered across every call-to-action.
The red rule
Here is the single strict rule of Halvy's palette: red only appears when a shared budget is over.
Not for delete buttons. Not for validation errors. Not for declining balances. Not for overspending in an individual category — because overspending is a fact of life, not a moral lapse, and Halvy is not in the business of coloring your life with punishment.
"Over budget on a shared household budget" is the one case where red earns its intensity, because it is the one case where two people have made a joint commitment and a joint commitment has slipped. Everything else uses muted neutrals, an amber-leaning warning, or simply words. If you open Halvy and you don't see red, your shared money is behaving. That is the promise of the color, and we hold it.
Accessibility shaped every choice
A calm palette is not an accessible palette by default. Every pairing in Halvy's system was walked through WCAG AA contrast checks — body text on sand, accent links on surface, muted text on soft-accent cards. Where the preferred aesthetic failed contrast, the aesthetic lost. The "text-muted" token you see across the site is a slightly darker sage-gray than my first draft, because the first draft was prettier and less legible, and legible wins.
We also built a parallel high-contrast variant into the same tokens. It is not "a separate theme you opt into because you are a problem to solve." It is a switch that tightens the palette without losing its character, for readers who need it. The sage gets a touch darker. The sand goes a shade lighter. The ratios clear AAA. Nothing else shifts.
What the palette is doing, really
Colors, in a finance product, are emotional labels pretending to be data. Halvy's palette is an argument that shared money can feel like a shared notebook instead of a shared ledger — warm, a little literary, a little old, and honest about the one number that matters: whether the two of you, together, stayed inside the envelope you drew.
If that sounds soft, it is supposed to. Softness is the point.