setCLranges function

Get Chroma and Luminance ranges for the given lightMode

Get Chroma and Luminance ranges for the given lightMode

Return Crange, Lrange, Cgrey, adjustRgb values for the given lightMode, intended to provide ranges suitable for contrasting text displayed on a light or dark background.

setCLranges( lightMode = NULL, Crange = getOption("jam.Crange"), Lrange = getOption("jam.Lrange"), Cgrey = getOption("jam.Cgrey", 5), adjustRgb = getOption("jam.adjustRgb", 0), setOptions = c("FALSE", "ifnull", "TRUE"), verbose = FALSE, ... )

Arguments

  • lightMode: boolean indicating whether the background color is light (TRUE is bright), or dark (FALSE is dark.) By default it calls checkLightMode() which queries getOption("lightMode").

  • Crange: numeric range of chroma values, ranging between 0 and 100. By default, getOptions("Crange") is used, otherwise defaults will be assigned based upon lightMode.

  • Lrange: numeric range of luminance values, ranging between 0 and 100. By default, getOptions("Crange") is used, otherwise defaults will be assigned based upon lightMode.

  • Cgrey: numeric chroma (C) value, which defines grey colors at or below this chroma. Any colors at or below the grey cutoff will have their C values unchanged. This mechanism prevents converting black to red, for example. To disable the effect, set Cgrey=-1.

  • adjustRgb: numeric color adjustment factor, used during the conversion of RGB colors to the ANSI-compatible colors used by the crayon pacakge. The ANSI color range does not include a full RGB palette, and the conversion is somewhat lossy. By default, getOptions("jam.adjustRgb") is used to store a globally re-usable value.

  • setOptions: character or logical whether to update options()

    "jam.Crange" and "jam.Lrange", with the following behavior:

    • "ifnull" will update only options() which were previously NULL
    • FALSE or "FALSE" does not update options()
    • TRUE or "TRUE" will update options() with values determined by this function.
  • verbose: logical indicating whether to print verbose output.

  • ...: additional arguments are ignored.

Returns

list with elements:

  • Crange: Numeric vector of length 2, defining the HCL chroma (C) range.
  • Lrange: Numeric vector of length 2, defining the HCL luminance (L) range.
  • adjustRgb: Numeric vector of length 1, defining the adjustment to apply during RGB-to-ANSI color conversion.
  • Cgrey: Numeric vector of length 1, defining the HCL chroma (C) value below which colors are considered greyscale, and are converted to ANSI greyscale colors. HCL chroma ranges from 0 to 100. Set value Cgrey=-1 or Cgrey=FALSE to disable this logic, causing colors to be matched using all available ANSI color values.

Details

This function is intended mainly for internal use by jamba

such as printDebug(), and make_styles(), which is also mainly intended for console text or other printed text output. The utility of this function is to store the logic of determining sensible default ranges.

Companion functions:

  • applyCLranges() is used to apply the ranges to a vector of R colors.
  • checkLightMode() is used to detect whether console output is expected to have a light or dark background.

Examples

setCLranges(lightMode=FALSE)

See Also

Other jam color functions: alpha2col(), applyCLrange(), col2alpha(), col2hcl(), col2hsl(), col2hsv(), color2gradient(), fixYellow(), fixYellowHue(), getColorRamp(), hcl2col(), hsl2col(), hsv2col(), isColor(), kable_coloring(), makeColorDarker(), rainbow2(), rgb2col(), setTextContrastColor(), showColors(), unalpha(), warpRamp()

  • Maintainer: James M. Ward
  • License: MIT + file LICENSE
  • Last published: 2025-03-23