UNPKG

colorjs.io

Version:

Color space agnostic color manipulation library

771 lines (765 loc) 11.5 kB
/* Parse color keywords without the browser DOM * This is only needed to parse Color keywords in Node, * and to improve performance when parsing color keywords in the browser * To take advantage of this, just import the module. * You can also take advantage of its default exports, if you need a data structure of named colors * Note that this does not handle currentColor */ import Color, {util} from "./color.js"; const KEYWORDS = { "aliceblue": [ 0.9411764705882353, 0.9725490196078431, 1 ], "antiquewhite": [ 0.9803921568627451, 0.9215686274509803, 0.8431372549019608 ], "aqua": [ 0, 1, 1 ], "aquamarine": [ 0.4980392156862745, 1, 0.8313725490196079 ], "azure": [ 0.9411764705882353, 1, 1 ], "beige": [ 0.9607843137254902, 0.9607843137254902, 0.8627450980392157 ], "bisque": [ 1, 0.8941176470588236, 0.7686274509803922 ], "black": [ 0, 0, 0 ], "blanchedalmond": [ 1, 0.9215686274509803, 0.803921568627451 ], "blue": [ 0, 0, 1 ], "blueviolet": [ 0.5411764705882353, 0.16862745098039217, 0.8862745098039215 ], "brown": [ 0.6470588235294118, 0.16470588235294117, 0.16470588235294117 ], "burlywood": [ 0.8705882352941177, 0.7215686274509804, 0.5294117647058824 ], "cadetblue": [ 0.37254901960784315, 0.6196078431372549, 0.6274509803921569 ], "chartreuse": [ 0.4980392156862745, 1, 0 ], "chocolate": [ 0.8235294117647058, 0.4117647058823529, 0.11764705882352941 ], "coral": [ 1, 0.4980392156862745, 0.3137254901960784 ], "cornflowerblue": [ 0.39215686274509803, 0.5843137254901961, 0.9294117647058824 ], "cornsilk": [ 1, 0.9725490196078431, 0.8627450980392157 ], "crimson": [ 0.8627450980392157, 0.0784313725490196, 0.23529411764705882 ], "cyan": [ 0, 1, 1 ], "darkblue": [ 0, 0, 0.5450980392156862 ], "darkcyan": [ 0, 0.5450980392156862, 0.5450980392156862 ], "darkgoldenrod": [ 0.7215686274509804, 0.5254901960784314, 0.043137254901960784 ], "darkgray": [ 0.6627450980392157, 0.6627450980392157, 0.6627450980392157 ], "darkgreen": [ 0, 0.39215686274509803, 0 ], "darkgrey": [ 0.6627450980392157, 0.6627450980392157, 0.6627450980392157 ], "darkkhaki": [ 0.7411764705882353, 0.7176470588235294, 0.4196078431372549 ], "darkmagenta": [ 0.5450980392156862, 0, 0.5450980392156862 ], "darkolivegreen": [ 0.3333333333333333, 0.4196078431372549, 0.1843137254901961 ], "darkorange": [ 1, 0.5490196078431373, 0 ], "darkorchid": [ 0.6, 0.19607843137254902, 0.8 ], "darkred": [ 0.5450980392156862, 0, 0 ], "darksalmon": [ 0.9137254901960784, 0.5882352941176471, 0.47843137254901963 ], "darkseagreen": [ 0.5607843137254902, 0.7372549019607844, 0.5607843137254902 ], "darkslateblue": [ 0.2823529411764706, 0.23921568627450981, 0.5450980392156862 ], "darkslategray": [ 0.1843137254901961, 0.30980392156862746, 0.30980392156862746 ], "darkslategrey": [ 0.1843137254901961, 0.30980392156862746, 0.30980392156862746 ], "darkturquoise": [ 0, 0.807843137254902, 0.8196078431372549 ], "darkviolet": [ 0.5803921568627451, 0, 0.8274509803921568 ], "deeppink": [ 1, 0.0784313725490196, 0.5764705882352941 ], "deepskyblue": [ 0, 0.7490196078431373, 1 ], "dimgray": [ 0.4117647058823529, 0.4117647058823529, 0.4117647058823529 ], "dimgrey": [ 0.4117647058823529, 0.4117647058823529, 0.4117647058823529 ], "dodgerblue": [ 0.11764705882352941, 0.5647058823529412, 1 ], "firebrick": [ 0.6980392156862745, 0.13333333333333333, 0.13333333333333333 ], "floralwhite": [ 1, 0.9803921568627451, 0.9411764705882353 ], "forestgreen": [ 0.13333333333333333, 0.5450980392156862, 0.13333333333333333 ], "fuchsia": [ 1, 0, 1 ], "gainsboro": [ 0.8627450980392157, 0.8627450980392157, 0.8627450980392157 ], "ghostwhite": [ 0.9725490196078431, 0.9725490196078431, 1 ], "gold": [ 1, 0.8431372549019608, 0 ], "goldenrod": [ 0.8549019607843137, 0.6470588235294118, 0.12549019607843137 ], "gray": [ 0.5019607843137255, 0.5019607843137255, 0.5019607843137255 ], "green": [ 0, 0.5019607843137255, 0 ], "greenyellow": [ 0.6784313725490196, 1, 0.1843137254901961 ], "grey": [ 0.5019607843137255, 0.5019607843137255, 0.5019607843137255 ], "honeydew": [ 0.9411764705882353, 1, 0.9411764705882353 ], "hotpink": [ 1, 0.4117647058823529, 0.7058823529411765 ], "indianred": [ 0.803921568627451, 0.3607843137254902, 0.3607843137254902 ], "indigo": [ 0.29411764705882354, 0, 0.5098039215686274 ], "ivory": [ 1, 1, 0.9411764705882353 ], "khaki": [ 0.9411764705882353, 0.9019607843137255, 0.5490196078431373 ], "lavender": [ 0.9019607843137255, 0.9019607843137255, 0.9803921568627451 ], "lavenderblush": [ 1, 0.9411764705882353, 0.9607843137254902 ], "lawngreen": [ 0.48627450980392156, 0.9882352941176471, 0 ], "lemonchiffon": [ 1, 0.9803921568627451, 0.803921568627451 ], "lightblue": [ 0.6784313725490196, 0.8470588235294118, 0.9019607843137255 ], "lightcoral": [ 0.9411764705882353, 0.5019607843137255, 0.5019607843137255 ], "lightcyan": [ 0.8784313725490196, 1, 1 ], "lightgoldenrodyellow": [ 0.9803921568627451, 0.9803921568627451, 0.8235294117647058 ], "lightgray": [ 0.8274509803921568, 0.8274509803921568, 0.8274509803921568 ], "lightgreen": [ 0.5647058823529412, 0.9333333333333333, 0.5647058823529412 ], "lightgrey": [ 0.8274509803921568, 0.8274509803921568, 0.8274509803921568 ], "lightpink": [ 1, 0.7137254901960784, 0.7568627450980392 ], "lightsalmon": [ 1, 0.6274509803921569, 0.47843137254901963 ], "lightseagreen": [ 0.12549019607843137, 0.6980392156862745, 0.6666666666666666 ], "lightskyblue": [ 0.5294117647058824, 0.807843137254902, 0.9803921568627451 ], "lightslategray": [ 0.4666666666666667, 0.5333333333333333, 0.6 ], "lightslategrey": [ 0.4666666666666667, 0.5333333333333333, 0.6 ], "lightsteelblue": [ 0.6901960784313725, 0.7686274509803922, 0.8705882352941177 ], "lightyellow": [ 1, 1, 0.8784313725490196 ], "lime": [ 0, 1, 0 ], "limegreen": [ 0.19607843137254902, 0.803921568627451, 0.19607843137254902 ], "linen": [ 0.9803921568627451, 0.9411764705882353, 0.9019607843137255 ], "magenta": [ 1, 0, 1 ], "maroon": [ 0.5019607843137255, 0, 0 ], "mediumaquamarine": [ 0.4, 0.803921568627451, 0.6666666666666666 ], "mediumblue": [ 0, 0, 0.803921568627451 ], "mediumorchid": [ 0.7294117647058823, 0.3333333333333333, 0.8274509803921568 ], "mediumpurple": [ 0.5764705882352941, 0.4392156862745098, 0.8588235294117647 ], "mediumseagreen": [ 0.23529411764705882, 0.7019607843137254, 0.44313725490196076 ], "mediumslateblue": [ 0.4823529411764706, 0.40784313725490196, 0.9333333333333333 ], "mediumspringgreen": [ 0, 0.9803921568627451, 0.6039215686274509 ], "mediumturquoise": [ 0.2823529411764706, 0.8196078431372549, 0.8 ], "mediumvioletred": [ 0.7803921568627451, 0.08235294117647059, 0.5215686274509804 ], "midnightblue": [ 0.09803921568627451, 0.09803921568627451, 0.4392156862745098 ], "mintcream": [ 0.9607843137254902, 1, 0.9803921568627451 ], "mistyrose": [ 1, 0.8941176470588236, 0.8823529411764706 ], "moccasin": [ 1, 0.8941176470588236, 0.7098039215686275 ], "navajowhite": [ 1, 0.8705882352941177, 0.6784313725490196 ], "navy": [ 0, 0, 0.5019607843137255 ], "oldlace": [ 0.9921568627450981, 0.9607843137254902, 0.9019607843137255 ], "olive": [ 0.5019607843137255, 0.5019607843137255, 0 ], "olivedrab": [ 0.4196078431372549, 0.5568627450980392, 0.13725490196078433 ], "orange": [ 1, 0.6470588235294118, 0 ], "orangered": [ 1, 0.27058823529411763, 0 ], "orchid": [ 0.8549019607843137, 0.4392156862745098, 0.8392156862745098 ], "palegoldenrod": [ 0.9333333333333333, 0.9098039215686274, 0.6666666666666666 ], "palegreen": [ 0.596078431372549, 0.984313725490196, 0.596078431372549 ], "paleturquoise": [ 0.6862745098039216, 0.9333333333333333, 0.9333333333333333 ], "palevioletred": [ 0.8588235294117647, 0.4392156862745098, 0.5764705882352941 ], "papayawhip": [ 1, 0.9372549019607843, 0.8352941176470589 ], "peachpuff": [ 1, 0.8549019607843137, 0.7254901960784313 ], "peru": [ 0.803921568627451, 0.5215686274509804, 0.24705882352941178 ], "pink": [ 1, 0.7529411764705882, 0.796078431372549 ], "plum": [ 0.8666666666666667, 0.6274509803921569, 0.8666666666666667 ], "powderblue": [ 0.6901960784313725, 0.8784313725490196, 0.9019607843137255 ], "purple": [ 0.5019607843137255, 0, 0.5019607843137255 ], "rebeccapurple": [ 0.4, 0.2, 0.6 ], "red": [ 1, 0, 0 ], "rosybrown": [ 0.7372549019607844, 0.5607843137254902, 0.5607843137254902 ], "royalblue": [ 0.2549019607843137, 0.4117647058823529, 0.8823529411764706 ], "saddlebrown": [ 0.5450980392156862, 0.27058823529411763, 0.07450980392156863 ], "salmon": [ 0.9803921568627451, 0.5019607843137255, 0.4470588235294118 ], "sandybrown": [ 0.9568627450980393, 0.6431372549019608, 0.3764705882352941 ], "seagreen": [ 0.1803921568627451, 0.5450980392156862, 0.3411764705882353 ], "seashell": [ 1, 0.9607843137254902, 0.9333333333333333 ], "sienna": [ 0.6274509803921569, 0.3215686274509804, 0.17647058823529413 ], "silver": [ 0.7529411764705882, 0.7529411764705882, 0.7529411764705882 ], "skyblue": [ 0.5294117647058824, 0.807843137254902, 0.9215686274509803 ], "slateblue": [ 0.41568627450980394, 0.35294117647058826, 0.803921568627451 ], "slategray": [ 0.4392156862745098, 0.5019607843137255, 0.5647058823529412 ], "slategrey": [ 0.4392156862745098, 0.5019607843137255, 0.5647058823529412 ], "snow": [ 1, 0.9803921568627451, 0.9803921568627451 ], "springgreen": [ 0, 1, 0.4980392156862745 ], "steelblue": [ 0.27450980392156865, 0.5098039215686274, 0.7058823529411765 ], "tan": [ 0.8235294117647058, 0.7058823529411765, 0.5490196078431373 ], "teal": [ 0, 0.5019607843137255, 0.5019607843137255 ], "thistle": [ 0.8470588235294118, 0.7490196078431373, 0.8470588235294118 ], "tomato": [ 1, 0.38823529411764707, 0.2784313725490196 ], "turquoise": [ 0.25098039215686274, 0.8784313725490196, 0.8156862745098039 ], "violet": [ 0.9333333333333333, 0.5098039215686274, 0.9333333333333333 ], "wheat": [ 0.9607843137254902, 0.8705882352941177, 0.7019607843137254 ], "white": [ 1, 1, 1 ], "whitesmoke": [ 0.9607843137254902, 0.9607843137254902, 0.9607843137254902 ], "yellow": [ 1, 1, 0 ], "yellowgreen": [ 0.6039215686274509, 0.803921568627451, 0.19607843137254902 ] }; Color.hooks.add("parse-start", env => { let str = env.str.toLowerCase(); let ret = {spaceId: "srgb", coords: null, alpha: 1}; if (str === "transparent") { ret.coords = KEYWORDS.black; ret.alpha = 0; } else { ret.coords = KEYWORDS[str]; } if (ret.coords) { env.color = ret; } }); export default KEYWORDS;