File

src/utils/ColorUtil.ts

Index

Properties
Methods

Properties

Static Colors
Type : object
Default value : { DC_DEFAULT: "#000000", DC_WHITE: "#FFFFFF", DC_AQUA: "#1ABC9C", DC_GREEN: "#2ECC71", DC_BLUE: "#3498DB", DC_YELLOW: "#FFFF00", DC_PURPLE: "#9B59B6", DC_LUMINOUS_VIVID_PINK: "#E91E63", DC_GOLD: "#F1C40F", DC_ORANGE: "#E67E22", DC_RED: "#E74C3C", DC_GREY: "#95A5A6", DC_NAVY: "#34495E", DC_DARK_AQUA: "#11806A", DC_DARK_GREEN: "#1F8B4C", DC_DARK_BLUE: "#206694", DC_DARK_PURPLE: "#71368A", DC_DARK_VIVID_PINK: "#AD1457", DC_DARK_GOLD: "#C27C0E", DC_DARK_ORANGE: "#A84300", DC_DARK_RED: "#992D22", DC_DARK_GREY: "#979C9F", DC_DARKER_GREY: "#7F8C8D", DC_LIGHT_GREY: "#BCC0C0", DC_DARK_NAVY: "#2C3E50", DC_BLURPLE: "#7289DA", DC_DARK_BLURPLE: "#4D5E94", DC_GREYPLE: "#99AAB5", DC_DARK_BUT_NOT_BLACK: "#2C2F33", DC_NOT_QUITE_BLACK: "#23272A", aliceblue: "#F0F8FF", antiquewhite: "#FAEBD7", aqua: "#00FFFF", aquamarine: "#7FFFD4", azure: "#F0FFFF", beige: "#F5F5DC", bisque: "#FFE4C4", black: "#000000", blanchedalmond: "#FFEBCD", blue: "#0000FF", blueviolet: "#8A2BE2", brown: "#A52A2A", burlywood: "#DEB887", cadetblue: "#5F9EA0", chartreuse: "#7FFF00", chocolate: "#D2691E", coral: "#FF7F50", cornflowerblue: "#6495ED", cornsilk: "#FFF8DC", crimson: "#DC143C", cyan: "#00FFFF", darkblue: "#00008B", darkcyan: "#008B8B", darkgoldenrod: "#B8860B", darkgray: "#A9A9A9", darkgreen: "#006400", darkgrey: "#A9A9A9", darkkhaki: "#BDB76B", darkmagenta: "#8B008B", darkolivegreen: "#556B2F", darkorange: "#FF8C00", darkorchid: "#9932CC", darkred: "#8B0000", darksalmon: "#E9967A", darkseagreen: "#8FBC8F", darkslateblue: "#483D8B", darkslategray: "#2F4F4F", darkslategrey: "#2F4F4F", darkturquoise: "#00CED1", darkviolet: "#9400D3", deeppink: "#FF1493", deepskyblue: "#00BFFF", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1E90FF", firebrick: "#B22222", floralwhite: "#FFFAF0", forestgreen: "#228B22", fuchsia: "#FF00FF", gainsboro: "#DCDCDC", ghostwhite: "#F8F8FF", goldenrod: "#DAA520", gold: "#FFD700", gray: "#808080", green: "#008000", greenyellow: "#ADFF2F", grey: "#808080", honeydew: "#F0FFF0", hotpink: "#FF69B4", indianred: "#CD5C5C", indigo: "#4B0082", ivory: "#FFFFF0", khaki: "#F0E68C", lavenderblush: "#FFF0F5", lavender: "#E6E6FA", lawngreen: "#7CFC00", lemonchiffon: "#FFFACD", lightblue: "#ADD8E6", lightcoral: "#F08080", lightcyan: "#E0FFFF", lightgoldenrodyellow: "#FAFAD2", lightgray: "#D3D3D3", lightgreen: "#90EE90", lightgrey: "#D3D3D3", lightpink: "#FFB6C1", lightsalmon: "#FFA07A", lightseagreen: "#20B2AA", lightskyblue: "#87CEFA", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#B0C4DE", lightyellow: "#FFFFE0", lime: "#00FF00", limegreen: "#32CD32", linen: "#FAF0E6", magenta: "#FF00FF", maroon: "#800000", mediumaquamarine: "#66CDAA", mediumblue: "#0000CD", mediumorchid: "#BA55D3", mediumpurple: "#9370DB", mediumseagreen: "#3CB371", mediumslateblue: "#7B68EE", mediumspringgreen: "#00FA9A", mediumturquoise: "#48D1CC", mediumvioletred: "#C71585", midnightblue: "#191970", mintcream: "#F5FFFA", mistyrose: "#FFE4E1", moccasin: "#FFE4B5", navajowhite: "#FFDEAD", navy: "#000080", oldlace: "#FDF5E6", olive: "#808000", olivedrab: "#6B8E23", orange: "#FFA500", orangered: "#FF4500", orchid: "#DA70D6", palegoldenrod: "#EEE8AA", palegreen: "#98FB98", paleturquoise: "#AFEEEE", palevioletred: "#DB7093", papayawhip: "#FFEFD5", peachpuff: "#FFDAB9", peru: "#CD853F", pink: "#FFC0CB", plum: "#DDA0DD", powderblue: "#B0E0E6", purple: "#800080", rebeccapurple: "#663399", red: "#FF0000", rosybrown: "#BC8F8F", royalblue: "#4169E1", saddlebrown: "#8B4513", salmon: "#FA8072", sandybrown: "#F4A460", seagreen: "#2E8B57", seashell: "#FFF5EE", sienna: "#A0522D", silver: "#C0C0C0", skyblue: "#87CEEB", slateblue: "#6A5ACD", slategray: "#708090", slategrey: "#708090", snow: "#FFFAFA", springgreen: "#00FF7F", steelblue: "#4682B4", tan: "#D2B48C", teal: "#008080", thistle: "#D8BFD8", tomato: "#FF6347", turquoise: "#40E0D0", violet: "#EE82EE", wheat: "#F5DEB3", white: "#FFFFFF", whitesmoke: "#F5F5F5", yellow: "#FFFF00", yellowgreen: "#9ACD32" }

Methods

Static hexToRGBA
hexToRGBA(hex: string)
Parameters :
Name Type Optional
hex string No
Returns : any
Static isHex
isHex(hex: string)
Parameters :
Name Type Optional
hex string No
Returns : template literal type
Static randomHex
randomHex()
Returns : template literal type
Static resolveHex
resolveHex(color: | "RANDOM")
Parameters :
Name Type Optional
color | "RANDOM" No
Returns : string
export class ColorUtil extends null {
    private constructor() {
        /* noop */
    }

    static Colors = {
        DC_DEFAULT: "#000000",
        DC_WHITE: "#FFFFFF",
        DC_AQUA: "#1ABC9C",
        DC_GREEN: "#2ECC71",
        DC_BLUE: "#3498DB",
        DC_YELLOW: "#FFFF00",
        DC_PURPLE: "#9B59B6",
        DC_LUMINOUS_VIVID_PINK: "#E91E63",
        DC_GOLD: "#F1C40F",
        DC_ORANGE: "#E67E22",
        DC_RED: "#E74C3C",
        DC_GREY: "#95A5A6",
        DC_NAVY: "#34495E",
        DC_DARK_AQUA: "#11806A",
        DC_DARK_GREEN: "#1F8B4C",
        DC_DARK_BLUE: "#206694",
        DC_DARK_PURPLE: "#71368A",
        DC_DARK_VIVID_PINK: "#AD1457",
        DC_DARK_GOLD: "#C27C0E",
        DC_DARK_ORANGE: "#A84300",
        DC_DARK_RED: "#992D22",
        DC_DARK_GREY: "#979C9F",
        DC_DARKER_GREY: "#7F8C8D",
        DC_LIGHT_GREY: "#BCC0C0",
        DC_DARK_NAVY: "#2C3E50",
        DC_BLURPLE: "#7289DA",
        DC_DARK_BLURPLE: "#4D5E94",
        DC_GREYPLE: "#99AAB5",
        DC_DARK_BUT_NOT_BLACK: "#2C2F33",
        DC_NOT_QUITE_BLACK: "#23272A",
        aliceblue: "#F0F8FF",
        antiquewhite: "#FAEBD7",
        aqua: "#00FFFF",
        aquamarine: "#7FFFD4",
        azure: "#F0FFFF",
        beige: "#F5F5DC",
        bisque: "#FFE4C4",
        black: "#000000",
        blanchedalmond: "#FFEBCD",
        blue: "#0000FF",
        blueviolet: "#8A2BE2",
        brown: "#A52A2A",
        burlywood: "#DEB887",
        cadetblue: "#5F9EA0",
        chartreuse: "#7FFF00",
        chocolate: "#D2691E",
        coral: "#FF7F50",
        cornflowerblue: "#6495ED",
        cornsilk: "#FFF8DC",
        crimson: "#DC143C",
        cyan: "#00FFFF",
        darkblue: "#00008B",
        darkcyan: "#008B8B",
        darkgoldenrod: "#B8860B",
        darkgray: "#A9A9A9",
        darkgreen: "#006400",
        darkgrey: "#A9A9A9",
        darkkhaki: "#BDB76B",
        darkmagenta: "#8B008B",
        darkolivegreen: "#556B2F",
        darkorange: "#FF8C00",
        darkorchid: "#9932CC",
        darkred: "#8B0000",
        darksalmon: "#E9967A",
        darkseagreen: "#8FBC8F",
        darkslateblue: "#483D8B",
        darkslategray: "#2F4F4F",
        darkslategrey: "#2F4F4F",
        darkturquoise: "#00CED1",
        darkviolet: "#9400D3",
        deeppink: "#FF1493",
        deepskyblue: "#00BFFF",
        dimgray: "#696969",
        dimgrey: "#696969",
        dodgerblue: "#1E90FF",
        firebrick: "#B22222",
        floralwhite: "#FFFAF0",
        forestgreen: "#228B22",
        fuchsia: "#FF00FF",
        gainsboro: "#DCDCDC",
        ghostwhite: "#F8F8FF",
        goldenrod: "#DAA520",
        gold: "#FFD700",
        gray: "#808080",
        green: "#008000",
        greenyellow: "#ADFF2F",
        grey: "#808080",
        honeydew: "#F0FFF0",
        hotpink: "#FF69B4",
        indianred: "#CD5C5C",
        indigo: "#4B0082",
        ivory: "#FFFFF0",
        khaki: "#F0E68C",
        lavenderblush: "#FFF0F5",
        lavender: "#E6E6FA",
        lawngreen: "#7CFC00",
        lemonchiffon: "#FFFACD",
        lightblue: "#ADD8E6",
        lightcoral: "#F08080",
        lightcyan: "#E0FFFF",
        lightgoldenrodyellow: "#FAFAD2",
        lightgray: "#D3D3D3",
        lightgreen: "#90EE90",
        lightgrey: "#D3D3D3",
        lightpink: "#FFB6C1",
        lightsalmon: "#FFA07A",
        lightseagreen: "#20B2AA",
        lightskyblue: "#87CEFA",
        lightslategray: "#778899",
        lightslategrey: "#778899",
        lightsteelblue: "#B0C4DE",
        lightyellow: "#FFFFE0",
        lime: "#00FF00",
        limegreen: "#32CD32",
        linen: "#FAF0E6",
        magenta: "#FF00FF",
        maroon: "#800000",
        mediumaquamarine: "#66CDAA",
        mediumblue: "#0000CD",
        mediumorchid: "#BA55D3",
        mediumpurple: "#9370DB",
        mediumseagreen: "#3CB371",
        mediumslateblue: "#7B68EE",
        mediumspringgreen: "#00FA9A",
        mediumturquoise: "#48D1CC",
        mediumvioletred: "#C71585",
        midnightblue: "#191970",
        mintcream: "#F5FFFA",
        mistyrose: "#FFE4E1",
        moccasin: "#FFE4B5",
        navajowhite: "#FFDEAD",
        navy: "#000080",
        oldlace: "#FDF5E6",
        olive: "#808000",
        olivedrab: "#6B8E23",
        orange: "#FFA500",
        orangered: "#FF4500",
        orchid: "#DA70D6",
        palegoldenrod: "#EEE8AA",
        palegreen: "#98FB98",
        paleturquoise: "#AFEEEE",
        palevioletred: "#DB7093",
        papayawhip: "#FFEFD5",
        peachpuff: "#FFDAB9",
        peru: "#CD853F",
        pink: "#FFC0CB",
        plum: "#DDA0DD",
        powderblue: "#B0E0E6",
        purple: "#800080",
        rebeccapurple: "#663399",
        red: "#FF0000",
        rosybrown: "#BC8F8F",
        royalblue: "#4169E1",
        saddlebrown: "#8B4513",
        salmon: "#FA8072",
        sandybrown: "#F4A460",
        seagreen: "#2E8B57",
        seashell: "#FFF5EE",
        sienna: "#A0522D",
        silver: "#C0C0C0",
        skyblue: "#87CEEB",
        slateblue: "#6A5ACD",
        slategray: "#708090",
        slategrey: "#708090",
        snow: "#FFFAFA",
        springgreen: "#00FF7F",
        steelblue: "#4682B4",
        tan: "#D2B48C",
        teal: "#008080",
        thistle: "#D8BFD8",
        tomato: "#FF6347",
        turquoise: "#40E0D0",
        violet: "#EE82EE",
        wheat: "#F5DEB3",
        white: "#FFFFFF",
        whitesmoke: "#F5F5F5",
        yellow: "#FFFF00",
        yellowgreen: "#9ACD32"
    };

    public static isHex(hex: string): hex is `#${string}` {
        return /^#(([\dA-Fa-f]{3}){1,2}|([\dA-Fa-f]{4}){1,2})$/.test(hex);
    }

    public static hexToRGBA(hex: string) {
        let c: string[] = hex.substring(1).split("");

        if (!ColorUtil.isHex(hex)) {
            return new Array(4).fill("0");
        }

        switch (c.length) {
            case 3:
                c = [c[0] + c[0], c[1] + c[1], c[2] + c[2], "ff"];
                break;
            case 4:
                c = [c[0] + c[0], c[1] + c[1], c[2] + c[2], c[3] + c[3]];
                break;
            case 6:
                c = [c[0] + c[1], c[2] + c[3], c[4] + c[5], "ff"];
                break;
            case 8:
                c = [c[0] + c[1], c[2] + c[3], c[4] + c[5], c[6] + c[7]];
                break;
        }

        c = c.map((char) => parseInt(char, 16).toString());
        c[3] = (Math.round((parseInt(c[3], 10) / 255) * 100) / 100).toString();
        if (c[3] === "1") c.pop();
        return c;
    }

    public static randomHex(): `#${string}` {
        return `#${Math.floor(Math.random() * 16777216)
            .toString(16)
            .padStart(6, "0")}`;
    }

    public static resolveHex(color: keyof typeof ColorUtil.Colors | "RANDOM") {
        if (color === "RANDOM") return ColorUtil.randomHex();
        return ColorUtil.Colors[color] ?? "#000000";
    }
}

results matching ""

    No results matching ""