forked from 3rd-Eden/colorspace
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathindex.js
More file actions
29 lines (24 loc) · 734 Bytes
/
index.js
File metadata and controls
29 lines (24 loc) · 734 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict';
import color from 'color';
import hex from 'text-hex';
/**
* Generate a color for a given name. But be reasonably smart about it by
* understanding name spaces and coloring each namespace a bit lighter so they
* still have the same base color as the root.
*
* @param {string} namespace The namespace
* @param {string} [delimiter] The delimiter
* @returns {string} color
*/
export default function colorspace(namespace, delimiter) {
const split = namespace.split(delimiter || ':');
let base = hex(split[0]);
if (!split.length) return base;
for (let i = 0, l = split.length - 1; i < l; i++) {
base = color(base)
.mix(color(hex(split[i + 1])))
.saturate(1)
.hex();
}
return base;
};