Color Scheme

A color scheme item (<ColorScheme.Color> in skin xml) can change (shift) depending on settings made in an app’s color scheme options.

A color may invert (color scheme option colorInversion)

Skin Attributes

color:

defines base color

huefixed:

keeps the base color’s hue value as is when color scheme option hue level changed

invertible:

[default: true] defines whether a color is affected by color inversion (e.g. set to false if you don’t want it to automatically invert)

invertedcolor:

defines specific color when inverted

invertedvalue:

overrides luminance value of base and inverted color when inverted

saturation:

defines how saturation value is affected when color scheme options are changed (value or curve)

luminance:

defines how luminance value is affected when color scheme options are changed (value or curve)

contrast:

defines how contrast values are affected when color scheme options are changed (value or curve)

slcombined:

increases the saturation with increasing luminance (deprecated)

Value Curves

A value curve is linear in general. Each curve can define segments with different slopes.

  • there are 2 sections separated by a : - lower segments : upper segments

  • segments are separated by /

  • the value that is added to the base color value at the “end” of a segment is defined by the segment value divided by the number of segments in this section

  • segments are uniformly spread over a section

  • lower segments’ end is at min - upper segments’ end is at max

  • a segment can define a jump offset at its end:

    • | always applied

    • I applied when colorInversion is set

    • X applied when colorInversion is not set

rough sketch of ColorSchemes (png inlcudes draw.io code)