Socket
Socket
Sign inDemoInstall

color-hash

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    color-hash

Generate color based on the given string (using HSL color space and BKDRHash).


Version published
Weekly downloads
86K
increased by12.34%
Maintainers
1
Install size
71.3 kB
Created
Weekly downloads
 

Readme

Source

Color Hash

Generate color based on the given string.

Demo

https://zenozeng.github.io/color-hash/demo/

Usage

Browser

bower install color-hash

A UMD version of ColorHash was located in dist/.

Note that Array.prototype.map was used in color-hash, a pollfill must be provided if you want to use it in IE8.

Basic
var colorHash = new ColorHash();

// in HSL, Hue ∈ [0, 360), Saturation ∈ [0, 1], Lightness ∈ [0, 1]
colorHash.hsl('Hello World'); // [ 235, 0.65, 0.35 ]

// in RGB, R, G, B ∈ [0, 255]
colorHash.rgb('Hello World'); // [ 31, 41, 147 ]

// in HEX
colorHash.hex('Hello World'); // '#1f2993'
Custom Hash Function
var customHash = function(str) {
    var hash = 0;
    for(var i = 0; i < str.length; i++) {
        hash += str.charCodeAt(i);
    }
    return hash;
};
var colorHash = new ColorHash({hash: customHash});
colorHash.hsl('Hello World!');
colorHash.rgb('Hello World!');
colorHash.hex('Hello World!');
Custom Lightness
var colorHash = new ColorHash({lightness: 0.5});
var colorHash = new ColorHash({lightness: [0.35, 0.5, 0.65]});
Custom Saturation
var colorHash = new ColorHash({saturation: 0.5});
var colorHash = new ColorHash({saturation: [0.35, 0.5, 0.65]});

Node.JS

npm install color-hash --save
var ColorHash = require('color-hash');

License

MIT.

FAQ

How does it work?

Use the hash function (default is BKDRHash) to calculate the hash of the given string,

Hue = hash % 359. (Note that 359 is a prime)
Saturation = SaturationArray[hash / 360 % SaturationArray.length]
Lightness = LightnessArray[hash / 360 / Saturation.length % LightnessArray.length]

By default,
SaturationArray = LightnessArray = [0.35, 0.5, 0.65]

Why not LAB?

Though LAB is more perceptually uniform, HSL is easier to control. Simply sets lightness and saturation and change hue uniformly can generate uniform colors.

Dev

Test

sudo npm install -g mocha
sudo npm install -g istanbul
npm test
Coverage Report

100% coverage 47 SLOC

https://zenozeng.github.io/color-hash/test/coverage.html

Build browser js

sudo npm install -g browserify
npm run build

Follow Semantic Versioning

http://semver.org/lang/zh-CN/

FAQs

Last updated on 21 Feb 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc