Blog · August 3, 2026

How we chose our brand color (twice).

In April we shipped a redesign built around one accent: acid lime, #D6FF4B. Seven weeks and 83 builds later we deleted it from the codebase and replaced it with champagne gold. Here's the honest post-mortem — the contrast numbers, the patch that should have been a warning, and what we'd tell anyone picking an accent color this week.

Why lime looked right

The redesign was paper and ink: a warm off-white canvas, near-black text, an editorial serif. A palette that quiet needs one accent to do all the heavy lifting — primary buttons, selection rings, the capture button. On the dark editor screens where we did most of the design work, acid lime on ink measures a spectacular 16:1 contrast. It looked electric. We were sold.

That was the trap. We had chosen the accent on its best-case background — and then shipped it to all of them.

The first crack: one accent, two modes

Within days, the "single accent" had quietly become a rule instead of a color. Lime fills couldn't carry a primary button on the light theme's paper surfaces, so light mode's dominant color became ink, and lime was demoted to "use where it pops against something dark." Lime on ink, ink on paper.

Every app with a light and a dark theme ends up with some version of this rule, so we didn't worry. But it was the first sign that the color only actually worked in one half of the app.

The second crack: 1.1 to 1

Bright, saturated accents — lime, cyan, yellow — are light colors. Put them on a light surface and there's nothing left. Our lime measured 1.1:1 against the cream we use for raised cards, and 1.0:1 against the paper background itself. For reference, WCAG's floor for non-text UI elements is 3:1. Anywhere lime appeared as a thin mark on a light surface — a hairline loading spinner, a status dot, a selection check — it was mathematically invisible.

Why didn't we catch it in review? Because filled buttons lie. A lime button with ink text on top reads fine — the ink is doing the contrast work, not the lime. The failures were all in the small stuff: a loader triangle sitting on a pale pill that users simply couldn't see.

In early June we shipped the "fix": a third lime, a deep olive at 5.9:1, used for any mark sitting on a light surface. It was legible. It was also an admission. The brand accent was now three different values, and the one light-mode users saw most was a murky olive that no one had ever actually chosen.

Legibility wasn't the real problem

Five days after that fix, we killed the color entirely. Once the patch was in, the question we should have asked in April finally surfaced: why lime? The honest answer was that acid lime is what developer tools look like this decade. It said something about 2026 and nothing about the product.

ShotCanvas is a screenshot studio — an aperture logomark, a serif with print heritage, a product about making things look finished. Nothing about that is acid. A useful test: if your accent could be swapped into a hundred other apps without anyone noticing, it isn't a brand color. It's a default.

Choosing from pixels, not hex codes

The second time, we banned the color-name debate entirely. No "what about coral?" Instead we rendered complete candidate directions as boards — real screens, real buttons, selected states, empty states, each direction shown in both light and dark mode — and picked the one that looked right. A hex code tells you nothing about how a color behaves next to your actual surfaces. A rendered screen tells you everything.

Champagne gold won because it comes from what the product is: studio, print, the brass fittings on old camera gear. And it forced one more change we hadn't planned. Our dark theme had a warm brown tint, and champagne on warm brown goes muddy — so the dark theme cooled to a true neutral black, where gold measures 11.7:1 and reads premium. Your accent and your dark background are one decision, not two.

What survived the rebrand

Here's the part worth stealing. Gold on cream measures 1.6:1 — nearly as unusable as lime was for thin marks on light surfaces. The swap fixed nothing about the physics. What changed is that this time the system was designed around the constraint from day one: bright gold for fills and dark surfaces, a deeper pressed state, and a dark readable gold at 5.1:1 for any mark that touches paper. Same structure the lime era forced us to invent — but chosen on purpose, in the same family, before launch instead of at build 126.

There is no accent color that works everywhere. There are only accent systems.

The checklist we'd hand our April selves: budget for a system, not a swatch — bright fill, pressed state, and a deep text-variant, in both modes. Test the accent as a 2px spinner on your lightest surface, because filled buttons lie. Hold every meaningful mark to WCAG's 3:1. Judge candidates as fully rendered screens in light and dark, never as hex codes. And derive the color from what your product is — if it could be anyone's, it's no one's.

The same rule applies to your store listing

Everything above goes double for App Store screenshots, where a foreign accent color — a template blue that appears nowhere in your app — is the fastest way to make a listing feel generic. ShotCanvas templates pull their palette from your screenshots themselves, so the set looks like your app, not like the tool that made it. One palette, one system, every frame.

Design with your app's colors Read: icon design for developers