Psychology

How Color Contrast Improved Website Accessibility: A Germany Winter Story

S

Shivangi · 10 min

Jul 8, 2026

Last December, I was staring at a website redesign that looks great on my designer's monitor, and that doesn't look at all on my mom's old laptop. Color contrast exists in that "looks nice" to "actually works for people" chasm. It's not as big as it's often made out to be. This is the tale of how one little project, sparked by a Berlin winter, taught me that accessibility and beauty were not at odds with one another. It's also, in no small measure, a story about tools (one that I used more than I anticipated) and a coloor palette generator that saved the whole redesign, and the remarkable utility of finding colours in images rather than speculating on hex codes in a void. I'm sure you've been through this at least once if you've ever created a website, brand kit, or even a simple landing page.If you built a website, a brand kit, or even a simple landing page, you've probably experienced this without realising: you have a beautiful palette perfect on its own, but that somehow doesn't work once you actually have real content on top of it. This is what happened to me and what I did to remedy that. This is the Palette That Started It All! I'd been joking around and doodling mood boards for weeks; this quiet light, that hush that usually falls over a city after a fresh snowfall, the soft coldness of the light, this side of January in Germany. I kept coming back to four colors: #D6E4F0 a pale, frosted blue, like morning light through a frozen window #E8ECEF a near-white grey, the color of overcast sky #C9D6E3 a muted steel blue, cool and steady #B8C6D9 a deeper dusk blue, the kind you see right before streetlights come on Individually, each color felt calm and wintry. Together, they formed a palette that looked like An envelope with a postcard from Munich in the snow. The exact combination I found as I was surfing the endless palettes created at one of those sites that scrols, scrols, scrols until you get something that resonates with you. This one was right on the money. There's something about that site you can keep pressing generate and watch four or five swatches shuffle in front of you, and every so often a combination stuns you, because it's a feeling you couldn't have articulated in words. This is what has happened here. Four blues not so dissimilar, managed to embody an entire season. I saved the palette, exported the hex codes and began building. The home page was quickly put together. Background colour: #E8ECEF (soft); Header bar colour: #C9D6E3; Card colour: #D6E4F0; Footer colour: #B8C6D9 It was a true winter traveler's website, one you would see saying to check out the Christmas markets in Nuremberg or ice-skating rinks in Munich. However, what I didn't anticipate was one of the most gorgeous palette ideas I've ever had can actually fail the readers of your website. No one can read this in the first 5 minutes because in the first 5 minutes you're looking at how good it looks, not whether you can read it on a budget tablet in bright sunlight while being 68. When "Pretty" Isn't the Same as "Readable" I built the first draft of the homepage using those four blues as backgrounds, buttons, and body text. It looked elegant, soft, Scandinavian, almost editorial. Then I ran it through a contrast checker, and the results were humbling. Light grey-blue text on a pale blue background barely cleared a contrast ratio of 2:1. WCAG guidelines ask for at least 4.5:1 for normal text, and 3:1 for large headings. My "winter in Germany" website was, in accessibility terms, basically a snowstorm pretty to look at, impossible to read through. I asked a few friends to try it cold, no context, just "open this link and tell me what you think." Two of them squinted at their phones. One admitted, a little sheepishly, that she'd assumed the site was still loading because she couldn't find the navigation menu it was there the whole time, just #B8C6D9 text on a #C9D6E3 background, two shades of the same soft blue sitting almost on top of each other. That's the moment color contrast stopped being a design afterthought and became the actual project. It's a strange thing to admit as someone who cares about design, but the prettiest version of my site was, functionally, one of the least usable versions of my site. Accessibility isn't a checkbox you tick after the "real" design work is done; it turns out to be one of the load-bearing walls of the design itself. Why This Happens So Often The honest answer is that our eyes are forgiving in ways that accessibility guidelines aren't. When you design on a calibrated monitor in a dim room, subtle contrast differences read just fine. Move that same interface to a phone screen in direct sunlight, or hand it to someone with even mild color vision deficiency, or just someone over 40 whose eyes don't focus quite the way they used to, and the gaps become obvious. Roughly 1 in 12 men and 1 in 200 women have some form of color vision deficiency, and low vision becomes more common with age which means "it looks fine to me" is one of the least reliable tests a designer can run. Rebuilding With Contrast in Mind Instead of scrapping the winter palette, I kept it as the atmosphere and rebuilt the functional layer around it. A few things changed the entire experience: I anchored text in near-black, not near-white. The frosty blues stayed as backgrounds and accents, but body copy shifted to a deep charcoal. Suddenly the same "Germany winter" feeling read clearly on every screen, from a flagship phone to a decade-old desktop monitor. I used a color picker to fine-tune every shade, nudging brightness values until each background-and-text pairing cleared accessible contrast ratios without losing the cold, wintry mood. A color picker sounds like a small tool, but when you're adjusting a hex code by two or three points of lightness to hit a contrast threshold, it's the difference between a site that passes an audit and one that doesn't. I ran the whole palette through a color palette generator to test tints and shades of each of the four blues systematically, rather than guessing. This gave me a full ramp lighter and darker variants of #D6E4F0, #C9D6E3, and the rest so I always had an accessible option that still matched the winter theme, whether I needed a subtle hover state or a bold call-to-action button. And for the photography, I actually pulled colors from image assets, snowy Berlin rooftops, and frost on a windowpane to extend the palette naturally. Extracting color from image references kept the site's mood consistent with real winter scenes instead of colors invented in a vacuum, and it surfaced a couple of accent tones I never would have picked manually. The Payoff The rebuilt site kept its identity completely. Visitors still described it as calm, cold, wintry, the Germany-in-December feeling I was chasing from the start. But now: Text passed WCAG AA contrast standards across every page Users with low vision or color vision deficiencies could actually read the content, not just admire it Bounce rate on mobile dropped noticeably once buttons and links became genuinely legible in daylight and low-light conditions alike The design system became easier to maintain, because every color pairing had a documented, tested contrast ratio behind it What I'd Tell Anyone Starting a Palette From Scratch Start with mood, absolutely a site with no personality is worse than a site with slightly imperfect contrast. But test early. Use a color picker to make precise adjustments rather than eyeballing hex codes. Run your choices through a proper color palette generator so you have accessible variants ready before you need them, not after a failed audit. And if your inspiration comes from photography, pull color from image sources deliberately; it keeps a palette honest to its inspiration while giving you more usable options than four hex codes alone. Winter in Germany, it turns out, is actually a wonderful accessibility lesson: the most striking colors are the quiet ones, and the best ones are the ones everyone can actually see.

How to use this palette

  • Primary color for branding and call-to-action moments.
  • Mid tones for components, cards, and supporting UI.
  • Light tones for backgrounds, surfaces, and whitespace balance.
  • Keep contrast strong enough for accessibility and readability.

Written by Shivangi · 10 min