Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/internalfx/distinct-colors
Generate a palette of visually distinct colors. It's great for charts.
https://github.com/internalfx/distinct-colors
Last synced: about 2 months ago
JSON representation
Generate a palette of visually distinct colors. It's great for charts.
- Host: GitHub
- URL: https://github.com/internalfx/distinct-colors
- Owner: internalfx
- License: isc
- Created: 2015-08-12T17:05:21.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T04:36:20.000Z (over 1 year ago)
- Last Synced: 2024-04-14T13:53:54.340Z (3 months ago)
- Language: JavaScript
- Size: 1.04 MB
- Stars: 117
- Watchers: 4
- Forks: 20
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- Colorful - Distinct Colors - Generate a palette of visually distinct colors. (Tools)
README
# Distinct Colors
[![npm version](https://img.shields.io/npm/v/distinct-colors.svg)](https://www.npmjs.com/package/distinct-colors)
[![license](https://img.shields.io/npm/l/distinct-colors.svg)](https://github.com/internalfx/distinct-colors/blob/master/LICENSE)This is a complete rewrite of (but is heavily inspired by) [Mathieu Jacomy's](https://github.com/jacomyma) [Palette Generator](https://github.com/medialab/iwanthue/blob/master/js/libs/chroma.palette-gen.js)
I have taken the ideas and the theories, and put them into a simple modular library. I have also optimized it for speed.
This library generates a palette of *visually* distinct colors, and returns an array of [chroma-js](https://github.com/gka/chroma.js) objects.
distinct-colors is highly configurable:
- Choose how many colors are in the palette
- Restrict the hue to a specific range
- Restrict the chroma (saturation) to a specific range
- Restrict the lightness to a specific range
- Configure general quality of the paletteTo get an example of how to use this (and what it produces), check out [I want hue](http://tools.medialab.sciences-po.fr/iwanthue/).
---
Special thanks to [Arthur Andrew Medical](http://www.arthurandrew.com/) for sponsoring this project.
Arthur Andrew Medical manufactures products with ingredients that have extensive clinical research for safety and efficacy. We specialize in Enzymes, Probiotics and Antioxidants.
---
## Installation
```
npm install distinct-colors
```## Getting Started
```javascript
// ESM
import distinctColors from 'distinct-colors'// CommonJS
var distinctColors = require('distinct-colors').defaultvar palette = distinctColors() // You may pass an optional config object
// Thats it!
```## API
#### distinctColors([options])
Generates a new palette. Returns an array of [chroma-js](https://github.com/gka/chroma.js) objects.
#### Options
| Name | Type | Valid Range | Default | Description |
| --- | --- | --- | --- | --- |
| count | integer | `0-Infinity` | `5` | The number of colors the palette should contain |
| hueMin | integer | `0-360` | `0` | The minimum hue for colors in the palette. |
| hueMax | integer | `0-360` | `360` | The maximum hue for colors in the palette. |
| chromaMin | integer | `0-100` | `0` | The minimum chroma (color) for colors in the palette. |
| chromaMax | integer | `0-100` | `100` | The maximum chroma (color) for colors in the palette. |
| lightMin | integer | `0-100` | `0` | The minimum lightness for colors in the palette. |
| lightMax | integer | `0-100` | `100` | The maximum lightness for colors in the palette. |
| quality | integer | `1-Infinity` | `50` | The number of steps for [k-means](https://en.wikipedia.org/wiki/K-means_clustering) convergence. Will break early if the result has converged. |
| samples | integer | `1-Infinity` | `800` | The number of color samples to choose from. |