chroma-js
Version:
JavaScript library for color conversions
31 lines (26 loc) • 806 B
JavaScript
const Color = require('../../Color');
const input = require('../input');
const {type} = require('../../utils');
const w3cx11 = require('../../colors/w3cx11');
const hex2rgb = require('../hex/hex2rgb');
const rgb2hex = require('../hex/rgb2hex');
Color.prototype.name = function() {
const hex = rgb2hex(this._rgb, 'rgb');
for (let n of Object.keys(w3cx11)) {
if (w3cx11[n] === hex) return n.toLowerCase();
}
return hex;
};
input.format.named = (name) => {
name = name.toLowerCase();
if (w3cx11[name]) return hex2rgb(w3cx11[name]);
throw new Error('unknown color name: '+name);
}
input.autodetect.push({
p: 5,
test: (h, ...rest) => {
if (!rest.length && type(h) === 'string' && w3cx11[h.toLowerCase()]) {
return 'named';
}
}
});