/chroma-elm

A native Elm version of the chroma.js library with various enhancements.

Primary LanguageElmApache License 2.0Apache-2.0

chroma-elm

A native version of Chroma.js that allows you to:

  • use W3C X11 color names,
  • cluster data points using algorithms: CkMeans, equal, head/tail, Jenks, logarithmic or quantile,
  • create color scales,
  • use different color spaces such as CMYK, HSLA, LAB, LCH and RGB,
  • modify colors using interpolate, set/get alpha, lighten/darken, saturate/desaturate,
  • compare colors using WCAG contrast,
  • use existing color maps such as Brewer, cmocean, Material, Cividis, Turbo, Sinebow, Parula, Virdis, Plasma, Magma and Inferno.

There is an example site showing how to use the library.

Changelog

Development

  • yarn install
  • yarn run make
  • yarn run test
  • yarn run review
  • yarn run full (test && review)

Test Coverage

Coverage Report

Benchmarks

  • yarn run benchmarks

101 Data Points, Limits on an Apple M1, Chrome 96.0:

| Algorithm     | Runs/Second   |
| ------------- | ------------- |
| CkMeans       | 846           |
| Equal         | 48,311        |
| HeadTail      | 32,197        |
| Jenks         | 108           |
| Logarithmic   | 48,017        |
| Quantile      | 40,905        |

Documentation

  • yarn run local-doc

Publish to GitHub

  • yarn run doc

Links

Elm

Color Maps

Thanks

Many thanks to Indicatrix for supporting this project.