newmana/chroma-elm

An Elm native version of chroma.js for color maps, color spaces and operations.


License
Apache-2.0
Install
elm-package install newmana/chroma-elm 18.2.0

Documentation

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 coverage
  • 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.