Ask HN: Can't focus when writing code in dark mode

46 points by vucetica ↗ HN
Seeing fellow programmers left and right switching to dark mode and everyone seems very happy. I gave it a try a few times but it just doesn't work. I can't focus.

It is not the time that I need to get used to a different syntax highlighting scheme because I switch between editors all the time. I'm perfectly fine as long as the background is lighter than the foreground, so it has to do something with the dark mode itself.

Is it that I have to give it more time (so I can stop noticing that "something is wrong"), or simply it doesn't work for some people? And if so, what am I losing (reduced eye fatigue, better sleep...)?

56 comments

[ 3.0 ms ] story [ 118 ms ] thread
if it doesn't work for you; it doesn't work for you.

Your personal productivity story doesn't have to be like anyone elses. As you work, start paying attention to what conditions seem to work better for you.

Different brains and bodies are different, and programming as a mentally strenuous activity requires that you pay attention to your mental wellness.

+1

This also applies to ergonomics. There's a guideline for good ergonomics... but you'll need to experiment and personalize to fit your own ..umm... physiology(?).

I'm actually a huge fan of dark mode. I also enable flux's night mode the whole day; it seems to make me sleep better since I already have enough blue light in my daily life. I don't need more from a monitor.

Use what works for you. Personally I frequently switch between the two as I find that light mode works better in the day for me, while dark mode is better in the evenings/night.
I wonder if this has to do with getting less blue light. After I started using flux I found myself getting exhausted and unable to focus after around 3-4pm especially in the winter. Bumping flux back to only after work made a huge, noticeable difference for me. Might be a similar effect with bright vs. dark screen.
Dark mode appeals to some people and not others. Having things available only in dark mode would be just as bad as only in light mode. (Having things only available in system colors, and having that have many well tested color schemes would be most preferable, but since it's not 1995, I guess that's not going to happen)

If you want the least eye fatigue, you gotta go with yellow on blue, like Word Perfect of old. It's all about compromises.

Additionally some dark modes are just bad. I've got a couple of programs that I can only stand on light mode.
I’m a huge Light Mode guy. I use the morning color scheme in vim, and the light schemes in VS and VSCode.

I do run f.lux, static at 49k... but I have found that dark editor schemes make me feel claustrophobic (!).

Everyone’s different! It just might not work for people like you or I, and that’s okay. :)

Exactly the feeling that I have (claustrophobic).
I started as a developer in the 80s on vt100 terminals with green and amber on black screens. I vividly remember how nice it was to switch to a light background without flicker and have never looked back. Choose what works for you.
Amber monitors on a Hercules video card was supercrisp and easy on the eyes, but it was probably my young vision. Nowadays I also code better on white backgrounds, although I still prefer the console with black background.
I had VT100s in university and it was all green or amber monitors until Windows 3.0. It was a relief to the eyes to have something that looked like regular print on white paper. I find the default colors of dark mode syntax highlighting distractingly bright. The colors against white (or rather, light grey) seem less contrasty.
I hate dark mode, I thought I was weird. Glad to know there are others who prefer light mode!
started using and learning linux from the console so there was always a nostalgic reason for me to have everything in solarized dark. the last 2 or so years my eye sight has dropped due to aging but also because of way too much time on a screen. I notice it especially during reading ebooks at night that a dark theme isn't doing me favors so switched to an e-paper like color and slightly reduced screen brightness for late night pdfs/ebooks reading. (redshift does nothing for me here). an epaper color is a lot easier on my eyes than dark mode. still use dark colors for terminals during my day work but am also considering changing this but maybe it's because my eyes aren't tired throughout the day as much as they're between 21:00 and 02:00 ...
I prefer it, but can't use on screens when there's heavy glare (macbooks)
It depends on the environment I am in. If I am in a dark room (my coworkers like the dark for some reason) it is much less glaring to look at a dark screen. In a well lit room (like my home office) a light theme is much easier to use. I just switch between the Tomorrow and Tomorrow Night themes.

https://github.com/ChrisKempson/Tomorrow-Theme

I wouldn't say it depends so much on the brightness of the room but rather the general brightness of the screen and if there is any sort of glare on it. I use dark mode always and switch to light mode when im sitting in a sunny area.

Dark mode has one distinct advantage: colors pop way more meaning the syntax highlighting is more pronounced, which makes it easier to navigate the code.

Most dark modes hurt my eyes, it seems like white characters or graphics on a black background burn my retina (like a glare). For video editing, photoshoping or any apps I use normal `white` mode. For coding I use solarized liked theme with pastels and soft colours.

It could be debated but I think it's a matter of personal taste, habits, personal sensitivity to light and scientific-based explanations and that each of those aspects carry a different weight depending on the person.

+1 for solarized theme. IDE solarized are better than dark mode. Most of the dark modes are actually hurting the eyes. Heavy contrast and font blur is very common thing in dark mode.
I’m also a long time solarized fan. I try new themes once in a while, but always return to good old Solarized Light.
Dark modes are great, until someone decides to use dark color fonts on dark backgrounds (which constitutes up to 99.9% but not all of the themes)
Probably the same people who use thin, light fonts on bright backgrounds.
(comment deleted)
I write code in black windows (#000) and my terminals are also black. Everything else is white (#fff). No problems with that except the ones caused by aging, but I'm still ok with a screen at a harm's length.
The more light that hits your eyes, the more your iris contracts. The smaller hole makes for a clearer image (think of a pinhole camera). People who like dark mode have good vision at screen distance. For some others, they need to strain their eyes more to focus at that distance.

For me, the best is to have dark text on a light enough background, enough screen brightness overall, and a well lit room (natural light is really good, as long as it isn't coming from behind me).

I’m not sure there would be significant contraction at normal screen FOVs and brightness levels. Instead I think when your eye is out of focus the white smeared onto a black background is a much stronger signal than black smeared on a white background, due to visual perception’s inherent gamma curve exaggerating small brightness differences much more against low brightness levels (black background) than against high brightness levels (white background). So there is a much stronger perception of blurriness (black background with a +0.X lumen splotchy patch is exponentially more noticeable than a white background with a -0.X splotchy patch).
this is exactly it.

Dark mode allows your iris to expand, which makes natural optical focus harder to achieve.

With more light, the iris contracts (small pupils) and the light that comes though it is naturally in focus on your retina without muscular help.

In a dark room, with the screen is at a short distance from you, your eye muscles have to squeeze your cornea into the right shape to put the image into focus on your retina.

And the older you get, the more inflexible your retina becomes, and your eye muscles are trying to squeeze a stone.

In either case, reading glasses can help if they are properly adjusted to the distance from your eyes to your screen. the amount of squeezing on the cornea is eliminated (or minimized)

If you are using something closer, like an ipad or phone, you might need higher power reading glasses.

I use +0.75 for my computer screen and +1.25 for something held closer like an ipad.

Oh to be young again! When I was a kid I could focus at infinity AND focus on my fingerprint when my finger was held at the end of my nose.

I can’t agree with this more. I’m a 52 year old coder with older eyes and light mode with decent background lighting works much better for me than any other option.

I’m also old enough to recognise the current fashion trend for dark mode is exactly that - a current fashion trend. They come and go all the time in every area and can be ignored if they don’t work for you.

If you’re more productive in light mode stick with it, stop worrying, and ignore the sheep who say dark mode is better. You can churn out code while they fiddle with their IDE settings to optimise the latest productivity hack.

(comment deleted)
One problem with light modes is that they tend to be higher contrast or harsh, or pick their colours in a weird way. Last time I looked at trying light modes anyway, I tried over 20 extensions
Definitely not. Reduces my eye strain. Been doing it for about 10 years
I prefer black on white (or off-white) in Emacs and in the macOS terminal. It reminds me of paper and therefore feels “natural”.
I used to use dark mode but for a few years now I strongly prefer light mode. For Vim and Vscode I use the papercolor (papercolor redux for vscode) theme and on Emacs I use the hemisu-light theme. Both of them are great.

I still use most terminals in dark mode because I dislike their light color themes.

I guess the essence is that I prefer light themes if they are really good (for me). In the end this is all subjective and you should just choose by comparing themes yourself and not because others use "some theme".

I've noticed people either prefer dark or light when working. It's very binary.

In my 20s/early 30s I really preferred a dark environment when coding. It's how I "grew up" with my first job back in the 90s, based in a cellar.

At some point around being ~36-38 years old I randomly started feeling that I preferred a light environment - a view outside would be really nice too.

I think it's mostly due to what you're used to.

Dark mode hurts my eyes. My vision is still good enough for black on white background text but the inverse colors make it physically hurt when I try to read the same text in the same font size due to the slight astigmatism that I have.

Interestingly I developed astigmatism over a few short days when I was under a lot of mental trauma. Not sure if that was causal or just coincident. Can a serious emotional shock damage eyesight?

Dark vs Light mode seems to be the next Vim vs Emacs religious war. I'm on the Dark side.

I've not only got all my IDEs in dark mode, all my browser apps use stylus to darken things if the app doesn't already have it, and my MacOS is set to be permanently dark. And naturally my terminal window as well, and my mobile apps on all devices.

I simply find the strain on my eyes is a lot less. Particularly at night if I feel I need to reply to a message or use the laptop for whatever reason, it doesn't make my eyes hurt to open it. Before my dark mode revelation it would actually make me have to close my eyes.

Aethetically it makes sense too. With dark your laptop stops being a massive source of light, it's more of an everyday object that fits in any lighting.

I've always preferred light-on-dark. I have my Emacs background set to #000060, with primary foreground #88FF88. Very soothing.
It seems most of us develop astigmatisms from using our screens less than an hour, particularly when at a 40 dev angle (like a laptop, phone) [1] and despite being temporary (mins, hours, days) the astigmatisms themselves vary in angles and wavelengths (read dark text, light text) effected from person to person. All of this adds up to no one person having the same level of strain from the same colors/brightness, and then compounded by it constantly changing and shifting with eye strain. For example, one of my eyes has trouble focusing on dark blue on bright white as the day progresses, the other eye hates red on black.

[1] https://eyewiki.aao.org/Physiology_of_Astigmatism

Honestly I also find that I can more easily focus on light mode text when I'm well rested. Dark mode for me mostly reduces fatigue over time, preventing the ghosting after-image that my eyes do if they stare at a white background too long.

If dark mode isn't your cup of tea, you might try just decreasing the contrast of your light background or lowering the brightness on your monitor to get the same benefit. But really, your eyes are yours. If your setup works and doesn't seem to be causing you eye strain? Use that! No problem at all.

Until this month, I was thinking that I like dark mode better, but then I started experiencing vertigo, nausea and all sorts of migraines after long programming sessions. I tried light mode and it went away. So light mode all the way for me!
White text on black is as bad as black text on white for me; But I find off black (12/16/33) background and off-white (248/248/248) text significantly reduces eye-strain, for me at least.

If any of you are anywhere near 40 and feeling eye strain; you might be starting to suffer from presbyopia as i and most do at that age, getting a larger monitor and placing it slightly further away helps a lot more than any theme changes.