I tweaked my colours in iTerm (though the specific terminal application I use is not relevant). I chose a dark background colour, and defined red, green, yellow, etc. All was well until I ran
Apparently the output includes black text, which is very difficult to see on the dark grey background. I'm not sure which layer is at fault here.
npm outdatedis at fault for printing black text? Perhaps command-line utilities should avoid printing explicitly black or white text, and instead rely on the default terminal settings? Printing colours other than black and white seems fine, as the theme designer will have chosen colour values which ensure sufficient differentiation between foreground and background.
Perhaps I am at fault for designing a theme which cannot display black text? If so, what is my course of action? Should I choose a value other than
#000000for ANSI black? I couldn't use
#ffffff, as this would make explicitly black text on an explicitly white background unreadable. Perhaps a grey of some sort?
Perhaps my terminal application is at fault for not detecting the similarity between foreground colour and background colour and taking some reasonable course of action (such as inverting the foreground colour).
I'm not so much interested in fixing this specific readability issue as I am in understanding the roles of the various players. As a designer of command-line utilities, I'd like to learn how to use colours without introducing readability issues.