BoutonJones.com

Clarification on Colors

Color Accessibility

Read Me

This web page is the presentation material for Clarification on Colors, a presentation on Tuesday, 5/12, 8:30-10:00 during the John Slatin AccessU 2025 conference in Austin, TX.

Choosing Website Color Palettes

Choosing the right colors makes your website look better and easier to use. Designers often follow a few proven steps to create a strong and consistent color scheme.

Start with Your Brand

Pick a main color that reflects your brand’s message and style. This will guide the rest of your color choices and help keep your site consistent.

Screen capture of YouTube site displaying the "Choosing a Color Palette" video.

VIDEO: Choosing a Color Palette (2:36)
Summary: Colors in an effective color palette work together, follow your brand's color guidelines, and avoid overwhelming users.

Try a Mood Board

Gather images, colors, and textures that match your brand’s feel. A mood board helps you see what works well together before you start designing.

Use the 60-30-10 Rule

This simple rule helps balance your colors:

Selecting Color Harmonies with Color Wheels

Color harmonies are combinations of colors that look good together. These are based on the color wheel, which shows how colors relate. Popular harmonies include:

Analogous Color Palette

Use colors that are adjacent to each other on the color wheel to create harmonious, comfortable designs.

Analogous Color Selection
#3300FF
#6600FF
#0066FF
#00AAFF
#00FFCC

Complementary Color Palette

Complementary colors are pairs of colors that are positioned opposite each other on the color wheel. These color combinations create high contrast and visual vibrance, making content pop. They're ideal for highlighting important elements.

Complementary Color Selection
#FF0000
#FF6666
#990000
#00FFFF
#66FFFF
#009999

Triadic Color Palette

Triadic colors are three colors equally spaced around the color wheel (forming an equilateral triangle). This scheme offers strong visual contrast while maintaining harmony and balance. Triadic color schemes tend to be vibrant even when using paler or unsaturated versions of the colors.

Triadic Color Selection
#AA00FF
#CC66FF
#FFAA00
#FFCC66
#00FF55
#66FF99

Monochromatic Color Palette

Monochromatic color schemes use variations in lightness and saturation of a single color. This creates a cohesive look that's elegant and easy on the eyes. It's perfect for creating a harmonious, sophisticated design where color isn't meant to distract from content.

Color Palette Resources

Here are some online resources for finding ready-made website color palettes.

Websites like the following can help you build or explore ready-made color palettes. You can also check if the colors meet accessibility standards.

Basics of Accessible Color

WCAG Color Guidelines

Level A Guideline

A pie chart with multple colors asnd the same pie chart in greyscale

For example: A pie chart that only uses color to indicate the different portions.

Level AA Guidelines

In Simpler Terms:

Color-Ajacent Guidelines

Success Criteria 1.4.12 and 1.4.13 are not directly about color, but they can indirectly relate to color in the context of accessibility and how visual information is presented. So while these two aren't "color guidelines" per se, they often intersect with color use in real-world design and should be reviewed together with 1.4.1, 1.4.3, and 1.4.11.

Color Blindness

Too much realiance on color can alienate people with color blindness. In the greyscale version of this image, the number is impreceivable.

Normal Color Vision

  • Red
  • Green
  • Blue
  • Yellow

Red-Green Color Deficiency (Deuteranopia)

Red and green colors appear indistinguishable

Blue-Yellow Color Deficiency (Tritanopia)

Blue and yellow colors appear indistinguishable

Complete Color Blindness (Achromatopsia)

All colors appear as shades of gray

The Pattern Fill Technique

Most users will see this.

Bar chart with two distinct colors.

Most color blind users can distinguish between the colors in this bar chart. But users with Monocromacy/Achromatopsia color blindness will see this:

The same bar chart as viewed by someone with severe color blindness

Achromatopsia is the most severe type of color blindness. It affects an estimated 1 in 30,000 people worldwide.

To address this, designers can use fill patterns (in addition to colors) for these bar charts and other charts. For example:

Another bar chart with colors and fill patterns

A color bar chart with multiple fill textures.

Another bar chart with colors and fill patterns

The same bar chart in greyscale. While the shades of grey are hard to distinguish, the fill textures are distinct.

While the percentage of users with Achromatopsia might seem small, this is a reasonable accommodation when considering all the potential present and future users of this application.

Color Blindness Simulators:

Color Contrast Ratio

Color contrast
a ratio determined by comparing the luminosity of the text and background color values.
Luminosity
  1. Relative brightness of something
  2. The radiance weighted by the effect of each wavelength on a typical human observer, measured in SI units in candela per square meter (cd/m2). Often the term luminance is used for the relative luminance, Y/Yn, where Yn is the luminance of the reference white point. (CITE: Wikipedia)

In the context of WCAG's contrast ratio, luminosity refers to the relative brightness (or perceived lightness) of a color, calculated from its RGB values using a standardized formula.

Obligatory Math and Science

Note: You don't need to understand or remember this section.

Relative luminance is calculated as the sum of the weighted RGB values, where the weights are:

These weightings reflect human visual perception (i.e., sensitivity of the human eye to different colors.) The result is a value between 0 (darkest) and 1 (lightest.)

The WCAG relative luminance formula applies different weightings to RGB channels. These weights are derived from the CIE 1931 color space, which is a standardized color model developed by the International Commission on Illumination (CIE). Specifically, they are based on the luminosity function, which describes the average human eye's sensitivity to different wavelengths of light. The weights approximate the perceived brightness of different colors, with green contributing most to perceived brightness, followed by red, and then blue. This is because the human eye is more sensitive to the mid-spectrum wavelengths (green) than to the longer (red) or shorter (blue) wavelengths.

This relative luminance is used to determine how much contrast exists between two colors—typically text and its background.

The contrast ratio is calculated as:

(L1 + 0.05) / (L2 + 0.05)

Where:

It's not necessary to remember or even understand that science and math in order to determine whether specific color combinations pass or fail.

HTML Color names and their Hex, RGB, and HSL Values

NOTE: You don't need to know the HTML color names.

HTML color keywords are pre-defined names for colors that can be used in HTML and CSS to specify the color of text, backgrounds, and other elements. These keywords offer a convenient way to represent colors without needing to use hex, RGB, or HSL codes.

These are the original 16 colors (sometimes 17 with "Orange") defined in the HTML 3.2 and early CSS specifications. They are supported by all browsers. They became a W3C recommendation in January 1997.

Basic HTML Color Keywords
Color Name Swatch Hex Code RGB HSL
Black #000000 rgb(0, 0, 0) hsl(0, 0%, 0%)
Silver #C0C0C0 rgb(192, 192, 192) hsl(0, 0%, 75%)
Gray #808080 rgb(128, 128, 128) hsl(0, 0%, 50%)
White #FFFFFF rgb(255, 255, 255) hsl(0, 0%, 100%)
Maroon #800000 rgb(128, 0, 0) hsl(0, 100%, 25%)
Red #FF0000 rgb(255, 0, 0) hsl(0, 100%, 50%)
Purple #800080 rgb(128, 0, 128) hsl(300, 100%, 25%)
Fuchsia #FF00FF rgb(255, 0, 255) hsl(300, 100%, 50%)
Green #008000 rgb(0, 128, 0) hsl(120, 100%, 25%)
Lime #00FF00 rgb(0, 255, 0) hsl(120, 100%, 50%)
Olive #808000 rgb(128, 128, 0) hsl(60, 100%, 25%)
Navy #000080 rgb(0, 0, 128) hsl(240, 100%, 25%)
Blue #0000FF rgb(0, 0, 255) hsl(240, 100%, 50%)
Teal #008080 rgb(0, 128, 128) hsl(180, 100%, 25%)
Aqua #00FFFF rgb(0, 255, 255) hsl(180, 100%, 50%)
Yellow #FFFF00 rgb(255, 255, 0) hsl(60, 100%, 50%)
Orange #FFA500 rgb(255, 165, 0) hsl(39, 100%, 50%)

Here are the additional 130+ named colors that were later standardized by the CSS Color Module Level 3 Introduced: Early 2000s (popularized around 2002-2003), based on the X11 color system (from Unix systems.) Not part of the original HTML standard, but now officially recognized in CSS3+. By 2005, all major browsers (like Firefox, IE, Safari) fully supported the extended set.

Extended HTML Color Keywords
Color Name Swatch Hex Code RGB HSL
aliceblue #F0F8FF rgb(240, 248, 255) hsl(208, 100, 97)
antiquewhite #FAEBD7 rgb(250, 235, 215) hsl(34, 77, 91)
aqua #00FFFF rgb(0, 255, 255) hsl(180, 100, 50)
aquamarine #7FFFD4 rgb(127, 255, 212) hsl(159, 100, 74)
azure #F0FFFF rgb(240, 255, 255) hsl(180, 100, 97)
beige #F5F5DC rgb(245, 245, 220) hsl(60, 55, 91)
bisque #FFE4C4 rgb(255, 228, 196) hsl(32, 100, 88)
black #000000 rgb(0, 0, 0) hsl(0, 0, 0)
blanchedalmond #FFEBCD rgb(255, 235, 205) hsl(35, 100, 90)
blue #0000FF rgb(0, 0, 255) hsl(240, 100, 50)
blueviolet #8A2BE2 rgb(138, 43, 226) hsl(271, 75, 52)
brown #A52A2A rgb(165, 42, 42) hsl(0, 59, 40)
burlywood #DEB887 rgb(222, 184, 135) hsl(33, 56, 70)
cadetblue #5F9EA0 rgb(95, 158, 160) hsl(181, 25, 50)
chartreuse #7FFF00 rgb(127, 255, 0) hsl(90, 100, 50)
chocolate #D2691E rgb(210, 105, 30) hsl(24, 74, 47)
coral #FF7F50 rgb(255, 127, 80) hsl(16, 100, 65)
cornflowerblue #6495ED rgb(100, 149, 237) hsl(218, 79, 66)
cornsilk #FFF8DC rgb(255, 248, 220) hsl(47, 100, 93)
crimson #DC143C rgb(220, 20, 60) hsl(348, 83, 47)
cyan #00FFFF rgb(0, 255, 255) hsl(180, 100, 50)
darkblue #00008B rgb(0, 0, 139) hsl(240, 100, 27)
darkcyan #008B8B rgb(0, 139, 139) hsl(180, 100, 27)
darkgoldenrod #B8860B rgb(184, 134, 11) hsl(42, 88, 38)
darkgray #A9A9A9 rgb(169, 169, 169) hsl(0, 0, 66)
darkgreen #006400 rgb(0, 100, 0) hsl(120, 100, 19)
darkgrey #A9A9A9 rgb(169, 169, 169) hsl(0, 0, 66)
darkkhaki #BDB76B rgb(189, 183, 107) hsl(55, 38, 58)
darkmagenta #8B008B rgb(139, 0, 139) hsl(300, 100, 27)
darkolivegreen #556B2F rgb(85, 107, 47) hsl(82, 38, 30)
darkorange #FF8C00 rgb(255, 140, 0) hsl(32, 100, 50)
darkorchid #9932CC rgb(153, 50, 204) hsl(280, 60, 49)
darkred #8B0000 rgb(139, 0, 0) hsl(0, 100, 27)
darksalmon #E9967A rgb(233, 150, 122) hsl(15, 71, 69)
darkseagreen #8FBC8F rgb(143, 188, 143) hsl(120, 25, 64)
darkslateblue #483D8B rgb(72, 61, 139) hsl(248, 38, 39)
darkslategray #2F4F4F rgb(47, 79, 79) hsl(180, 25, 24)
darkslategrey #2F4F4F rgb(47, 79, 79) hsl(180, 25, 24)
darkturquoise #00CED1 rgb(0, 206, 209) hsl(180, 100, 40)
darkviolet #9400D3 rgb(148, 0, 211) hsl(282, 100, 41)
deeppink #FF1493 rgb(255, 20, 147) hsl(327, 100, 53)
deepskyblue #00BFFF rgb(0, 191, 255) hsl(195, 100, 50)
dimgray #696969 rgb(105, 105, 105) hsl(0, 0, 41)
dimgrey #696969 rgb(105, 105, 105) hsl(0, 0, 41)
dodgerblue #1E90FF rgb(30, 144, 255) hsl(209, 100, 55)
firebrick #B22222 rgb(178, 34, 34) hsl(0, 67, 41)
floralwhite #FFFAF0 rgb(255, 250, 240) hsl(39, 100, 97)
forestgreen #228B22 rgb(34, 139, 34) hsl(120, 60, 33)
fuchsia #FF00FF rgb(255, 0, 255) hsl(300, 100, 50)
gainsboro #DCDCDC rgb(220, 220, 220) hsl(0, 0, 86)
ghostwhite #F8F8FF rgb(248, 248, 255) hsl(240, 100, 98)
gold #FFD700 rgb(255, 215, 0) hsl(50, 100, 50)
goldenrod #DAA520 rgb(218, 165, 32) hsl(42, 74, 49)
gray #808080 rgb(128, 128, 128) hsl(0, 0, 50)
green #008000 rgb(0, 128, 0) hsl(120, 100, 25)
greenyellow #ADFF2F rgb(173, 255, 47) hsl(83, 100, 59)
grey #808080 rgb(128, 128, 128) hsl(0, 0, 50)
honeydew #F0FFF0 rgb(240, 255, 240) hsl(120, 100, 97)
hotpink #FF69B4 rgb(255, 105, 180) hsl(330, 100, 70)
indianred #CD5C5C rgb(205, 92, 92) hsl(0, 53, 58)
indigo #4B0082 rgb(75, 0, 130) hsl(274, 100, 25)
ivory #FFFFF0 rgb(255, 255, 240) hsl(60, 100, 97)
khaki #F0E68C rgb(240, 230, 140) hsl(54, 76, 74)
lavender #E6E6FA rgb(230, 230, 250) hsl(240, 66, 94)
lavenderblush #FFF0F5 rgb(255, 240, 245) hsl(339, 100, 97)
lawngreen #7CFC00 rgb(124, 252, 0) hsl(90, 100, 49)
lemonchiffon #FFFACD rgb(255, 250, 205) hsl(53, 100, 90)
lightblue #ADD8E6 rgb(173, 216, 230) hsl(194, 53, 79)
lightcoral #F08080 rgb(240, 128, 128) hsl(0, 78, 72)
lightcyan #E0FFFF rgb(224, 255, 255) hsl(180, 100, 93)
lightgoldenrodyellow #FAFAD2 rgb(250, 250, 210) hsl(60, 80, 90)
lightgray #D3D3D3 rgb(211, 211, 211) hsl(0, 0, 82)
lightgreen #90EE90 rgb(144, 238, 144) hsl(120, 73, 74)
lightgrey #D3D3D3 rgb(211, 211, 211) hsl(0, 0, 82)
lightpink #FFB6C1 rgb(255, 182, 193) hsl(350, 100, 85)
lightsalmon #FFA07A rgb(255, 160, 122) hsl(17, 100, 73)
lightseagreen #20B2AA rgb(32, 178, 170) hsl(176, 69, 41)
lightskyblue #87CEFA rgb(135, 206, 250) hsl(202, 92, 75)
lightslategray #778899 rgb(119, 136, 153) hsl(210, 14, 53)
lightslategrey #778899 rgb(119, 136, 153) hsl(210, 14, 53)
lightsteelblue #B0C4DE rgb(176, 196, 222) hsl(213, 41, 78)
lightyellow #FFFFE0 rgb(255, 255, 224) hsl(60, 100, 93)
lime #00FF00 rgb(0, 255, 0) hsl(120, 100, 50)
limegreen #32CD32 rgb(50, 205, 50) hsl(120, 60, 50)
linen #FAF0E6 rgb(250, 240, 230) hsl(30, 66, 94)
magenta #FF00FF rgb(255, 0, 255) hsl(300, 100, 50)
maroon #800000 rgb(128, 0, 0) hsl(0, 100, 25)
mediumaquamarine #66CDAA rgb(102, 205, 170) hsl(159, 50, 60)
mediumblue #0000CD rgb(0, 0, 205) hsl(240, 100, 40)
mediumorchid #BA55D3 rgb(186, 85, 211) hsl(288, 58, 58)
mediumpurple #9370DB rgb(147, 112, 219) hsl(259, 59, 64)
mediumseagreen #3CB371 rgb(60, 179, 113) hsl(146, 49, 46)
mediumslateblue #7B68EE rgb(123, 104, 238) hsl(248, 79, 67)
mediumspringgreen #00FA9A rgb(0, 250, 154) hsl(156, 100, 49)
mediumturquoise #48D1CC rgb(72, 209, 204) hsl(177, 59, 55)
mediumvioletred #C71585 rgb(199, 21, 133) hsl(322, 80, 43)
midnightblue #191970 rgb(25, 25, 112) hsl(240, 63, 26)
mintcream #F5FFFA rgb(245, 255, 250) hsl(149, 100, 98)
mistyrose #FFE4E1 rgb(255, 228, 225) hsl(6, 100, 94)
moccasin #FFE4B5 rgb(255, 228, 181) hsl(38, 100, 85)
navajowhite #FFDEAD rgb(255, 222, 173) hsl(35, 100, 83)
navy #000080 rgb(0, 0, 128) hsl(240, 100, 25)
oldlace #FDF5E6 rgb(253, 245, 230) hsl(39, 85, 94)
olive #808000 rgb(128, 128, 0) hsl(60, 100, 25)
olivedrab #6B8E23 rgb(107, 142, 35) hsl(79, 60, 34)
orange #FFA500 rgb(255, 165, 0) hsl(38, 100, 50)
orangered #FF4500 rgb(255, 69, 0) hsl(16, 100, 50)
orchid #DA70D6 rgb(218, 112, 214) hsl(302, 58, 64)
palegoldenrod #EEE8AA rgb(238, 232, 170) hsl(54, 66, 80)
palegreen #98FB98 rgb(152, 251, 152) hsl(120, 92, 79)
paleturquoise #AFEEEE rgb(175, 238, 238) hsl(180, 64, 80)
palevioletred #DB7093 rgb(219, 112, 147) hsl(340, 59, 64)
papayawhip #FFEFD5 rgb(255, 239, 213) hsl(37, 100, 91)
peachpuff #FFDAB9 rgb(255, 218, 185) hsl(28, 100, 86)
peru #CD853F rgb(205, 133, 63) hsl(29, 58, 52)
pink #FFC0CB rgb(255, 192, 203) hsl(349, 100, 87)
plum #DDA0DD rgb(221, 160, 221) hsl(300, 47, 74)
powderblue #B0E0E6 rgb(176, 224, 230) hsl(186, 51, 79)
purple #800080 rgb(128, 0, 128) hsl(300, 100, 25)
rebeccapurple #663399 rgb(102, 51, 153) hsl(270, 49, 40)
red #FF0000 rgb(255, 0, 0) hsl(0, 100, 50)
rosybrown #BC8F8F rgb(188, 143, 143) hsl(0, 25, 64)
royalblue #4169E1 rgb(65, 105, 225) hsl(225, 72, 56)
saddlebrown #8B4513 rgb(139, 69, 19) hsl(24, 75, 30)
salmon #FA8072 rgb(250, 128, 114) hsl(6, 93, 71)
sandybrown #F4A460 rgb(244, 164, 96) hsl(27, 87, 66)
seagreen #2E8B57 rgb(46, 139, 87) hsl(146, 50, 36)
seashell #FFF5EE rgb(255, 245, 238) hsl(24, 100, 96)
sienna #A0522D rgb(160, 82, 45) hsl(19, 56, 40)
silver #C0C0C0 rgb(192, 192, 192) hsl(0, 0, 75)
skyblue #87CEEB rgb(135, 206, 235) hsl(197, 71, 72)
slateblue #6A5ACD rgb(106, 90, 205) hsl(248, 53, 57)
slategray #708090 rgb(112, 128, 144) hsl(210, 12, 50)
slategrey #708090 rgb(112, 128, 144) hsl(210, 12, 50)
snow #FFFAFA rgb(255, 250, 250) hsl(0, 100, 99)
springgreen #00FF7F rgb(0, 255, 127) hsl(149, 100, 50)
steelblue #4682B4 rgb(70, 130, 180) hsl(207, 44, 49)
tan #D2B48C rgb(210, 180, 140) hsl(34, 43, 68)
teal #008080 rgb(0, 128, 128) hsl(180, 100, 25)
thistle #D8BFD8 rgb(216, 191, 216) hsl(300, 24, 79)
tomato #FF6347 rgb(255, 99, 71) hsl(9, 100, 63)
turquoise #40E0D0 rgb(64, 224, 208) hsl(174, 72, 56)
violet #EE82EE rgb(238, 130, 238) hsl(300, 76, 72)
wheat #F5DEB3 rgb(245, 222, 179) hsl(39, 76, 83)
white #FFFFFF rgb(255, 255, 255) hsl(0, 0, 100)
whitesmoke #F5F5F5 rgb(245, 245, 245) hsl(0, 0, 96)
yellow #FFFF00 rgb(255, 255, 0) hsl(60, 100, 50)
yellowgreen #9ACD32 rgb(154, 205, 50) hsl(79, 60, 50)

Hex Codes

Color hex codes in HTML and CSS are 6-digit hexadecimal values prefixed with a # that represent RGB (red, green, blue) color components.

Format: #RRGGBB
RR = red component (00 to FF in hex, or 0–255 in decimal)
GG = green component
BB = blue component

Example: #FF0000 = pure red (255 red, 0 green, 0 blue)

A Few Sample Hexadecimal Color Codes for Illustration
Name Hex Code Swatch
Red #FF0000
Green #008000
Blue #0000FF
Black #000000
White #FFFFFF
Gray #808080
Yellow #FFFF00
Hexadecimal color codes with corresponding RGB values and visual swatches.
Hex Code Red Green Blue RGB Swatch
#FF0000 255 0 0 rgb(255, 0, 0)
#00FF00 0 255 0 rgb(0, 255, 0)
#0000FF 0 0 255 rgb(0, 0, 255)
#FFFF00 255 255 0 rgb(255, 255, 0)
#00FFFF 0 255 255 rgb(0, 255, 255)
#FF00FF 255 0 255 rgb(255, 0, 255)
#000000 0 0 0 rgb(0, 0, 0)
#FFFFFF 255 255 255 rgb(255, 255, 255)

Historical Footnote: 216 Web-Safe Colors

Note: "This will NOT be on the test.  This section doesn't have a practical application. It can be safely ignored

Web-safe colors used to be important, but they don’t matter much today because modern screens can show millions of colors. The 216 web-safe colors were made for older computers that had limited color options. These colors followed the RGB model, using only six values for red, green, and blue: 00, 33, 66, 99, CC, and FF.

6 (red) x 6 (green) x 6 (blue) = 126

The hstorical 216 web safe colors.

RBG Color Codes

The Native HTML RGB Color Picker

You can easily add this color picker to one of your web pages with a line or two of HTML. You can run it in your browser with needing to install a plugin, extention, or additional software.

<form>
  <p><label for="color-picker">A Native HTML Color Picker:</label>
  <input type="color" id="color-picker"></p>
</form>

For more about the native HTML Color Picker, visit <input type="color"> at Mozilla.org

More Color Pickers and Other Color Tools

RGB Color Cube

The RGB color cube is a 3D model that shows how colors are created in digital displays. This cube is used to represent all possible colors that can be created by mixing these three primary colors.

RBG color cube with three sides displayed

It has three axes for each of the three primary colors of light: red, green, and blue. Each axis ranges from 0 (no intensity) to 255 (full intensity.) Colors are created by combining different intensities of the three primary colors of light

256 (red) × 256 (green) × 256 (blue) = 16,777,216. (That's ~16.8 billion colors. Compare that to the historical 216 web safe colors.)

The corners of the cube represent eight key colors:

Every point within the cube represents a unique color, defined by its specific RGB values. This model helps us understand how digital colors are formed and related to each other.

RGB Color Contrast Calculator

Visit the RGB Color Contrast Calculator on BoutonJones.com

Alternatively, visit the Contrast Checker on WebAIM.org.

Screen Capture of the Contrast Checker on webaim.org

Screen capture of the Contrast Checker on WebAIM.org

HSL Color Codes

From the W3C Wiki:
The HSL color model is used in numerical color specifications. The advantage of HSL over RGB is that it is far more intuitive: you can guess at the colors you want, and then tweak. It is also easier to create sets of matching colors (by keeping the hue the same and varying the lightness/darkness, and saturation).
Cite: https://www.w3.org/wiki/CSS3/Color/HSL

In CSS, it's easier to use HSL to adjust color contrast ratios with HSL than with RGB or hex code. See the following for more information.

Does the "lightness" component of HSL color codes correspond to the Luminosity in the color contrast ratio referenced in the WCAG guidelines?

The "lightness" component of HSL (Hue, Saturation, Lightness) color codes and the "luminosity" used in WCAG contrast ratios are related but not identical concepts.

HSL's lightness is a perceptual model that represents how light or dark a color appears, ranging from 0% (black) to 100% (white), regardless of hue. It's a straightforward linear scale where 50% represents the "pure" color.

In contrast, the luminosity used in WCAG contrast calculations (specifically relative luminance) is based on the sRGB color space and accounts for how the human eye perceives brightness differently across various colors. For example, our eyes perceive green as brighter than blue or red of the same intensity.

HSL Color Wheel

30° 60° 90° 120° 150° 180° 210° 240° 270° 300° 330° HSL Color Wheel (Clockwise from Top)

Image Source: Claude.ai/

The clockwise HSL color wheel with 0° at the top (12 o'clock position) is labeled in 30° increments.

This arrangement is actually a common alternative to the standard HSL representation, and some design tools and color pickers use this orientation because it can be more intuitive for many users.

The wheel clearly shows:

And the saturation decreases as you move toward the center, with full saturation at the edge.

HSL Color Contrast Calculator

Visit the HSL Color Contrast Calculator

HSLA Color Values

Note: It's not necessary to understand HSLA for the purpose of A11y.

HSLA color values are an extension of HSL color values, with an Alpha channel - which specifies the opacity for a color.

Opacity
  1. the condition of lacking transparency or translucence; opaqueness.
  2. (In CSS) The degree to which content behind an element is hidden, and is the opposite of transparency.

An HSLA color value is specified with:

hsla(hue, saturation, lightness, alpha)

The alpha parameter is a number between 0.0 (fully transparent) and 1.0 (not transparent at all):

See Colors: HSL at w3schools.com

Color Converters

Visit the HEX to HSL converter

Troubleshooting with Popular Color Checkers

The Wave Tool

Setting the Color Palette in CSS

You can use CSS to define a set of custom properties (or CSS variables), that store specific colors and styles for a website --- such as a color palette. By defining these variables in one place, you can easily manage your website's visual identity.

You can use these variables throughout your stylesheet to ensure consistency in your design. If you need to change a color or style, you only need to update it in this one place.

The benefits of using CSS variables for colors include:

In other words, you only need to define your color palette in one place: your CSS file. And you can change the color palette for the entire web site in a single place.

To use these variables, you reference them in your CSS code. For example:

:root {
  --primary-color: #005b96;
  --secondary-color: #6699cc;
  --accent-color: #7fdbff;
  --text-color: #333333;
  --link-color: #0000cc;
  --link-hover: #ff0000;
  --link-active: #009900;
  --link-visited: #800080;
  --background-light: #ffffff;
  --background-alt: #cccccc;
  --header-shadow: 0 2px 4px rgba(0,0,0,0.1);
  --content-shadow: 0 0 10px rgba(0,0,0,0.1);
}

Here's an example of where the primary color is referenced:

/* Header styles */
header {
  background-color: var(--primary-color);
  color: white;
  padding: 1rem 0;
  box-shadow: var(--header-shadow);
}

Tables with Banded Rows

Sample CSS for Alternating Row Colors in a Table

tr:nth-child(even) {
    background: #CCC;
}

tr:nth-child(odd) {
    background: #FFF;
}

An Example Table to Show Banded Rows
Name Hex Code Swatch
Red #FF0000
Green #008000
Blue #0000FF

An HTML table showing the lack of row formatting:

<table>
  <caption>An Example Table to Show Banded Rows</caption>
  <thead>
    <tr>
      <th>Name</th>
      <th>Hex Code</th>
      <th>Swatch</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Red</td>
      <td>#FF0000</td>
      <td style="background-color: #FF0000; width: 50px; height: 20px; border: 1px solid #000;"></td>
    </tr>
    <tr>
      <td>Green</td>
      <td>#008000</td>
      <td style="background-color: #008000; width: 50px; height: 20px; border: 1px solid #000;"></td>
    </tr>
    <tr>
      <td>Blue</td>
      <td>#0000FF</td>
      <td style="background-color: #0000FF; width: 50px; height: 20px; border: 1px solid #000;"></td>
    </tr>
  </tbody>
</table>

Greyscale

The Benefits of Developing with a Grayscale Wireframe

A wireframe of a website in grayscale

Sample CSS for a Grayscale Theme

BODY {
    background-color: #CCCCCC;
}

IMG {
    filter: grayscale(100%);
}

Text on Black Backgrounds: Best Practices

Bright, high-chroma colors like yellow (#FFFF00), green (#00FF00), cyan (#00FFFF), and magenta (#FF00FF) stand out well against black backgrounds. These colors provide strong contrast and are easier on the eyes than white text, which can cause fatigue over time.

Although white on black offers high contrast, it's harder to read and more tiring than black on white. For better readability, use lighter font weights and increase line spacing (leading) and letter spacing (tracking). This helps text feel more open and easier to follow.

Use high-chroma colors for headings or important links. Avoid red, purple, and blue on black, as they tend to blur or reduce legibility.

.paintedblack div {
  background-color: hsl(0, 0%, 20%);
  color: hsl(0, 0%, 100%);
}
.paintedblack a:link {
    color: hsl(203, 92%, 75%); /* "Lightskyblue" */
}
.paintedblack a:visited {
    color: hsl(287, 30%, 50%);
}
.paintedblack a:hover {
    color: hsl(0, 0%, 100%); /* "White" #ffffff */
}
.paintedblack a:active {
    color: hsl(0, 100%, 63%);
}

Dark Mode

Dark mode, also known as dark theme or night mode, is a color scheme that uses light-colored text and icons on a dark background. It's designed to reduce eye strain, conserve battery life, and provide a visually appealing experience, especially in low-light environments. Dark mode is a widely supported feature in operating systems, applications, and web browsers.

An example of a smart phone in dark mode.

Image Source: Wired.com

As of 5/12/2025, I have not prepared anything further on this topic. But here are some links related to dark mode.

Considering Neurodiversity

For neurodiversity, consider using muted, pastel tones or neutral backgrounds to avoid overwhelming users, and ensure sufficient contrast with text.

In general, neurodiverse audiences have a preference toward muted, pastel hues and neutral tones. Consider using a matte black background with two or three pastel hues to depict data, or a neutral tan, gray, or white background to prevent colors from overwhelming the reader.
From Navigating Neurodiversity: 11 Guidelines for Designing Inclusive Web Pages

Caution: Due to the nature of Neurodiversity, there can not be a "one size fits all" solution that works for everyone who is neurodiverse.

Similar pages on BoutonJones.com

PowerPoint