Parses/normalizes CSS color strings, and returns them as strings in "#RRGGBB" and/or "#RRGGBBAA" format. Understands hex colors in 3, 4, 6, and 8 digit forms, rgb()/rgba(), hsl()/hsla(), and color keywords.

parseCssColors(str, mustWork = TRUE)

Arguments

str

CSS color strings

mustWork

If true, invalid color strings will cause an error; if false, then the result will contain NA for invalid colors.

Value

A vector of strings in #RRGGBB or #RRGGBBAA format (the latter is only used for colors whose alpha values are less than FF), or NA for invalid colors when mustWork is false. Such strings are suitable for use in plots, or parsing with col2rgb() (be sure to pass alpha = TRUE

to prevent the alpha channel from being discarded).

Details

Note that parseCssColors may return colors in #RRGGBBAA format. Such values are not understood by Internet Explorer, and must be converted to rgba(red, green, blue, alpha) format to be safe for the web.

Examples

parseCssColors(c(
  "#0d6efd",
  "#DC35457F",
  "rgb(32,201,151)",
  "  rgba( 23 , 162 , 184 , 0.5 )  ",
  "hsl(261, 51%, 51%)",
  "cornflowerblue"
))
#> [1] "#0D6EFD"   "#DC35457F" "#20C997"   "#17A2B880" "#6F42C2"   "#6495ED"