A note to any developers writing console applications, please please please don't use RGB values in your terminal colour -- only use the 8 base colours plus highlight. RGB values prevent your users terminal from using the custom colour palettes your users might define (and like this site helps you to create). Aside from being a little annoying, it can cause genuine usability problems for some groups of people who use custom palettes:
- for visual impairment reasons (eg high contrast colours)
- or to differentiate different servers (eg different background colours for dev or prod servers)
- or have less contrasting colours to reduce eye strain (eg the Solarized colour schemes)
- might suffer from colour blindness so pick colours that contrast better with their condition
- or even just those that prefer a white or other non-black backgrounds for readability reasons (eg they might be dyslexic and find a non-black background or different shades of text easier to read).
I do fall into two of those categories and run into this issue a lot since there is a trend these days for developers to hard code colour values into their applications.
Equally, some developers use the "you can select a custom colour map - I just define a pretty default" argument and while that's slightly better, the best option would be still to default to the standard 8 colours (or the default unformatted text) and let users opt into RGB values if they wish. This will save your users from constantly having to define the same colour palettes in every application.
> only use the 8 base colours plus highlight.
Those are actually called "RGBI"[0] colors (which would make the 8 base colours "RGB", though I haven't seen that usage), although that's clearly not what you mean by "RGB values".
0: 1 bit each for red,green,blue,intensity: #(r·AA+i·55,g·AA+i·55,b·AA+i·55)
No, the colours I'm talking about aren't defined as RGBI values.
Wikipedia has good introduction to the different SGR colour parameters: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
I'm talking about 3/4-bit (8/16 colours) not 8-bit (256 colours) nor 24-bit ("true colour"). The 3/4-bit colour palette is configurable in most terminals. True colour is not.
I'm talking about the 4-bit (RGBI) ANSI color palette, used by \e[34;44;94;104m escapes. 8-bit or 24-bit color should not be supported by terminals in the first place (and certainly shouldn't be used by terminal applications), for the reasons you mentioned above.
Please don't assume that your views are generally held or will meet with general approval. I think what you're saying is completely wrong and wildly inappropriate. In general, there will exist many terminal applications where the designers should feel absolutely free to use 256 and full-RGB colors if they wish to, seeing as the technology has supported it for years.
An example is color themes for syntax highlighting; the designers of color themes obviously _can_ restrict themselves to 16-color palettes (e.g. https://github.com/chriskempson/base16) but they are perfectly free not to. I do not understand what makes you think you have the right to demand that people impose such a vast restriction on terminal applications. The web supports 256 colors and full RGB; why shouldn't terminal applications?