newmana / chroma-elm

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

Home Page:https://package.elm-lang.org/packages/newmana/chroma-elm/latest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

https://package.elm-lang.org/packages/newmana/chroma-elm/latest

License:Apache License 2.0


Languages

Language:Elm 99.0%Language:JavaScript 1.0%Language:HTML 0.0%