Skip to content

newmana/chroma-elm

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages