Boolean colour palette
ZX Spectrum palette
For want of a better phrase, the Boolean colour palette is a garish colour palette that's technically simple to implement on colour CRTs such as TV sets.
Colour CRTs work by combining the additive primary colours red, green, and blue in varying intensities to make all the other colours.
The Boolean colour palette simply uses Boolean logic to toggle all three of these primary colours between full tilt and completely off. Any one in isolation gives you that colour; any two in combination give you one of the secondary colours cyan, magenta, and yellow; all three give you white; and none at all give you black. So using three bits gives you eight colours to work with.
An optional fourth Boolean value for brightness doubles the palette, for sixteen colours represented by four bits — a nibble.
This palette was very common circa the 1980s, used by old standards such as the ANSI escape codes for video terminals, teletext for televisions, and videotex for phones, as well as by new home computers such as the BBC Micro and the beloved ZX Spectrum.
The C64 was notable for not conforming to this palette. Its engineers devised a way to pick any arbitrary sixteen colours, and so were able to choose a much more aesthetically appealing palette.
Even into the 1990s, a slight variation of the 4-bit Boolean colour palette made an appearance in the IBM PC's CGA, EGA, and VGA graphics cards. This led to its use in Windows 3.1, and even the World Wide Web's sixteen named colours.
It's surely the most common of the 3-bit and 4-bit colour palettes.
When designing a user interface or video game using the Boolean colour palette, you can try further limiting the colours to complementary (opposite), triadic (a third of the colour wheel away), or analogous (neighbouring) colours... but with such a garish starting point, it will barely help.
Further reading
Deep dives
- "The IBM 5153's True CGA Palette and Colour Output" VileR, int10h.org, Jun 2022
Coined and minted: Boolean colour palette | How to add proportional reverb in Reaper | Polymetre and polyrhythm | Synthesiser component
Colour palettes: Boolean colour palette