Can you see identify colors in light themes on monitors?

1 aradove 1 6/25/2025, 8:19:44 AM
Hi!

How do you make colors easily identifiable when using a light theme?

For me it has always been troublesome to distinguish colors on text on a light theme. I always had the same trouble with 1 pixel line charts. I need to put at least 5-10px wide lines in line charts to identify the different colors.

Some research suggest that light mode helps with reading on monitors, and I have to admit that reflections are not such a big issue when using light mode. I can also have a much more lit room, which helps with being tired.

So if I change to light mode in VSCode, it is like turning off the colors for me. I see different shades of black/white text. The highlightning that helps me in dark mode is gone.

Am I the only one experiencing this?

Comments (1)

johncoltrane · 8h ago
The problem is that the light emitted by the background "eats up" the light emitted by the foreground object because there is, simply, more of it. The background is larger than the foreground and the intensity is higher. Ironically, the effect is easier to visualize with a light foreground against a dark background: that halo around white lines and text is also produced by a light background. The light halo eats up its darker neighbors.

So there are basically two ways to mitigate that effect: make the foreground elements larger or reduce the delta in intensity.

We can make lines thicker, boxes a little bit larger, and use bold text.

We can reduce the intensity of the background, from pure white to rgb(246, 246, 239), for example.

We can choose brighter colors in a kind of arms race against the background.

All three options have inherent limits, though.

Thick lines and large boxes kill details and bold text lack nuance, darkening the background is not always possible, and the catalogue of bright-enough-colors is pretty small.

One of the reasons why we, colorscheme authors, tend to default to dark backgrounds is that doing so gives us more colors to play with and thus more creative leeway.