Calculates the contrast ratio between `x` and the colors `y`. Contrast ratios can range from 1 to 21 with 1 being no contrast (same color) and 21 being highest contrast.
Arguments
- x
A color object or vector of length 1 of any of the three kinds of R color specifications, i.e., either a color name (as listed by colors()), a hexadecimal string of the form "#rrggbb" or "#rrggbbaa" (see rgb), or a positive integer i meaning palette()[i].
- y
A color object or vector of any of the three kinds of R color specifications, i.e., either a color name (as listed by colors()), a hexadecimal string of the form "#rrggbb" or "#rrggbbaa" (see rgb), or a positive integer i meaning palette()[i].
Details
The formula for calculating contract ratio 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/2008/REC-WCAG20-20081211/#relativeluminancedef.
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