A linear, or axial, color gradient

In color science, a color gradient (also known as a color ramp or a color progression) specifies a range of position-dependent colors, usually used to fill a region.

In assigning colors to a set of values, a gradient is a continuous colormap, a type of color scheme. In computer graphics, the term swatch[1] has come to mean a palette of active colors.

Definitions

Strict definition

A colormap[4] is a function which associate a real value r with point c in color space

which is defined by:

where:

Types

Criteria for classification:

Dimension

Shapes

Axial gradients

An axial color gradient, with a white line segment connecting the two points

An axial color gradient (sometimes also called a linear color gradient) is specified by two points, and a color at each point. The colors along the line through those points are calculated using linear interpolation, then extended perpendicular to that line. In digital imaging systems, colors are typically interpolated in an RGB color space, often using gamma compressed RGB color values, as opposed to linear. CSS and SVG both support linear gradients.[8][9]

Radial gradients

A radial color gradient

A radial gradient is specified as a circle that has one color at the edge and another at the center. Colors are calculated by linear interpolation based on distance from the center. This can be used to approximate the diffuse reflection of light from a point source by a sphere.[citation needed] Both CSS and SVG support radial gradients.[10][11]

Conic gradients

conic gradient

Conic or conical gradients are gradients with color transitions rotated around a center point (rather than radiating from the center). Example conic gradients include pie charts and color wheels.[12] Conic gradients are sometimes called "sweep gradients" (for example in the OpenType specification) or angular gradients.

Other shapes

In vector graphics polygon meshes can be used, e.g., Adobe Illustrator supported gradient meshes.

Color space

Effect of color space

The appearance of a gradient not only varies by the color themselves, but also by the color space the calculation is performed in. The problem usually becomes important for two reasons:

A "linear" blend would match physical light blending and has been the standard in game engines for a long time.[16] On the web, however, it has long been neglected for both color gradients and image scaling.[17] Such a blend still has a subtle difference from one done in a perceptually-uniform color space.[18]

Examples

HSV rainbow

Applications

See also

References

  1. ^ cssgradient: CSS Gradient Swatches
  2. ^ Dave Green's 'cubehelix' colour scheme
  3. ^ Diverging Color Maps for Scientific Visualization - Kenneth Moreland
  4. ^ The Good, the Bad, and the Ugly: A Theoretical Framework for the Assessment of Continuous Colormaps by Roxana Bujack, Terece L. Turton, Francesca Samsel, Colin Ware
  5. ^ which-color-scale-to-use-in-data-vis by Lisa Charlotte Rost
  6. ^ Fabio Crameri: Scientific colour maps
  7. ^ A survey and task-based quality assessment of static 2D colormaps Author(s): Bernard, Jürgen; Steiger, Martin; Mittelstädt, Sebastian; Thum, Simon; Keim, Daniel; Kohlhammer, Jörn, In Kao, David L. (Ed.) ; Society for Imaging Science and Technology -IS&T-; Society of Photo-Optical Instrumentation Engineers -SPIE-, Bellingham/Wash.: Visualization and Data Analysis 2015 : 9–11 February 2015, San Francisco, California Bellingham, WA: SPIE, 2015 (Proceedings of SPIE 9397) ISBN 9781628414875
  8. ^ Linear Gradients in "CSS Image Values and Replaced Content Module Level 3", W3C Candidate Recommendation, April 2012
  9. ^ Linear Gradients in "SVG 1.1 (Second Edition)", W3C Recommendation, August 2011
  10. ^ Radial Gradients in "CSS Image Values and Replaced Content Module Level 3", W3C Candidate Recommendation, April 2012
  11. ^ Radial Gradients in "SVG 1.1 (Second Edition)", W3C Recommendation, August 2011
  12. ^ mozilla docs: CSS conic-gradient
  13. ^ Minute Physics (March 20, 2015). "Computer Color is Broken". YouTube. Archived from the original on December 21, 2021.
  14. ^ Novak, John (September 21, 2016). "What every coder should know about gamma".
  15. ^ Zeileis, Achim; Fisher, Jason C.; Hornik, Kurt; Ihaka, Ross; McWhite, Claire D.; Murrell, Paul; Stauffer, Reto; Wilke, Claus O. (2019). "Colorspace: A Toolbox for Manipulating and Assessing Colors and Palettes". arXiv:1903.06490 [stat.CO].
  16. ^ "Chapter 24. The Importance of Being Linear". NVIDIA Developer.
  17. ^ "Web color is still broken".
  18. ^ "How software gets color wrong". bottosson.github.io.
  19. ^ gnuplot docs 4.2 node167: Color box
  20. ^ Eisenberg, J. David (2002). SVG Essentials. O'Reilly Media. p. 107. ISBN 0-596-00223-8.