contrast_ratio()
calculates the contrast ratio between the color x
and
the color(s) y
. Contrast ratios can range from 1 to 21 with 1 being no
contrast (i.e., same color) and 21 being highest contrast.
Arguments
- x
A length 1 color object (see
color()
) or a length 1 vector of any of the three kinds of R color specifications, i.e., either a color name (as listed bygrDevices::colors()
), a hexadecimal string (seecol2rgb()
), or a positive integeri
meaninggrDevices::palette()
[i]
.- y
A color object (see
color()
) or a vector of any of the three kinds of R color specifications, i.e., either a color name (as listed bygrDevices::colors()
), a hexadecimal string (seecol2rgb()
), or a positive integeri
meaninggrDevices::palette()
[i]
.
Details
The formula used for calculating a contrast ratio between two colors is
$$(L1 + 0.05) / (L2 + 0.05)$$
where
L1 is the relative luminance of the lighter of the colors, and
L2 is the relative luminance of the darker of the colors.
Relative luminance is calculated according to https://www.w3.org/TR/WCAG21/#dfn-relative-luminance.
Examples
contrast_ratio("red", "blue")
#> [1] 2.148936
contrast_ratio("grey20", grey.colors(10))
#> [1] 1.494662 2.406117 3.332732 4.271564 5.251557 6.161825 7.168355
#> [8] 8.109768 9.125539 10.123342
contrast_ratio("white", c("white", "black"))
#> [1] 1 21