Created
August 21, 2019 11:44
-
-
Save zaydek-old/aebad993985cc57fd22c5c5e99d4251a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// See github.com/google/closure-library/blob/master/closure/goog/color/color.js#L164 | |
// for reference. | |
function hexToRgb(hexColor) { | |
// hexColor = goog.color.normalizeHex(hexColor); | |
var rgb = parseInt(hexColor.substr(1), 16); | |
var r = rgb >> 16; | |
var g = (rgb >> 8) & 255; | |
var b = rgb & 255; | |
return [r, g, b]; | |
}; | |
// See github.com/google/closure-library/blob/master/closure/goog/color/color.js#L215 | |
// for reference. | |
function rgbToHsl(r, g, b) { | |
// First must normalize r, g, b to be between 0 and 1. | |
var normR = r / 255; | |
var normG = g / 255; | |
var normB = b / 255; | |
var max = Math.max(normR, normG, normB); | |
var min = Math.min(normR, normG, normB); | |
var h = 0; | |
var s = 0; | |
// Luminosity is the average of the max and min rgb color intensities. | |
var l = 0.5 * (max + min); | |
// The hue and saturation are dependent on which color intensity is the max. | |
// If max and min are equal, the color is gray and h and s should be 0. | |
if (max != min) { | |
if (max == normR) { | |
h = 60 * (normG - normB) / (max - min); | |
} else if (max == normG) { | |
h = 60 * (normB - normR) / (max - min) + 120; | |
} else if (max == normB) { | |
h = 60 * (normR - normG) / (max - min) + 240; | |
} | |
if (0 < l && l <= 0.5) { | |
s = (max - min) / (2 * l); | |
} else { | |
s = (max - min) / (2 - 2 * l); | |
} | |
} | |
// Make sure the hue falls between 0 and 360. | |
return [Math.round(h + 360) % 360, s, l]; | |
}; | |
function prettyInt(n) { | |
if (n < 10) { | |
return " " + n | |
} else if (n < 100) { | |
return " " + n | |
} | |
return "" + n | |
} | |
let ret = "" | |
function convert(hexColor) { | |
const [r, g, b] = hexToRgb(hexColor) | |
const [h, s, l] = rgbToHsl(r, g, b) | |
ret += `${prettyInt(h)}, ${(s * 1e2).toFixed(4)}, ${(l * 1e2).toFixed(4)}\n` | |
} | |
convert("#FFEBEE") | |
convert("#FFCDD2") | |
convert("#EF9A9A") | |
convert("#E57373") | |
convert("#EF5350") | |
convert("#F44336") | |
convert("#E53935") | |
convert("#D32F2F") | |
convert("#C62828") | |
convert("#B71C1C") | |
convert("#FF8A80") | |
convert("#FF5252") | |
convert("#FF1744") | |
convert("#D50000") | |
convert("#FCE4EC") | |
convert("#F8BBD0") | |
convert("#F48FB1") | |
convert("#F06292") | |
convert("#EC407A") | |
convert("#E91E63") | |
convert("#D81B60") | |
convert("#C2185B") | |
convert("#AD1457") | |
convert("#880E4F") | |
convert("#FF80AB") | |
convert("#FF4081") | |
convert("#F50057") | |
convert("#C51162") | |
convert("#F3E5F5") | |
convert("#E1BEE7") | |
convert("#CE93D8") | |
convert("#BA68C8") | |
convert("#AB47BC") | |
convert("#9C27B0") | |
convert("#8E24AA") | |
convert("#7B1FA2") | |
convert("#6A1B9A") | |
convert("#4A148C") | |
convert("#EA80FC") | |
convert("#E040FB") | |
convert("#D500F9") | |
convert("#AA00FF") | |
convert("#EDE7F6") | |
convert("#D1C4E9") | |
convert("#B39DDB") | |
convert("#9575CD") | |
convert("#7E57C2") | |
convert("#673AB7") | |
convert("#5E35B1") | |
convert("#512DA8") | |
convert("#4527A0") | |
convert("#311B92") | |
convert("#B388FF") | |
convert("#7C4DFF") | |
convert("#651FFF") | |
convert("#6200EA") | |
convert("#E8EAF6") | |
convert("#C5CAE9") | |
convert("#9FA8DA") | |
convert("#7986CB") | |
convert("#5C6BC0") | |
convert("#3F51B5") | |
convert("#3949AB") | |
convert("#303F9F") | |
convert("#283593") | |
convert("#1A237E") | |
convert("#8C9EFF") | |
convert("#536DFE") | |
convert("#3D5AFE") | |
convert("#304FFE") | |
convert("#E3F2FD") | |
convert("#BBDEFB") | |
convert("#90CAF9") | |
convert("#64B5F6") | |
convert("#42A5F5") | |
convert("#2196F3") | |
convert("#1E88E5") | |
convert("#1976D2") | |
convert("#1565C0") | |
convert("#0D47A1") | |
convert("#82B1FF") | |
convert("#448AFF") | |
convert("#2979FF") | |
convert("#2962FF") | |
convert("#E1F5FE") | |
convert("#B3E5FC") | |
convert("#81D4FA") | |
convert("#4FC3F7") | |
convert("#29B6F6") | |
convert("#03A9F4") | |
convert("#039BE5") | |
convert("#0288D1") | |
convert("#0277BD") | |
convert("#01579B") | |
convert("#80D8FF") | |
convert("#40C4FF") | |
convert("#00B0FF") | |
convert("#0091EA") | |
convert("#E0F7FA") | |
convert("#B2EBF2") | |
convert("#80DEEA") | |
convert("#4DD0E1") | |
convert("#26C6DA") | |
convert("#00BCD4") | |
convert("#00ACC1") | |
convert("#0097A7") | |
convert("#00838F") | |
convert("#006064") | |
convert("#84FFFF") | |
convert("#18FFFF") | |
convert("#00E5FF") | |
convert("#00B8D4") | |
convert("#E0F2F1") | |
convert("#B2DFDB") | |
convert("#80CBC4") | |
convert("#4DB6AC") | |
convert("#26A69A") | |
convert("#009688") | |
convert("#00897B") | |
convert("#00796B") | |
convert("#00695C") | |
convert("#004D40") | |
convert("#A7FFEB") | |
convert("#64FFDA") | |
convert("#1DE9B6") | |
convert("#00BFA5") | |
convert("#E8F5E9") | |
convert("#C8E6C9") | |
convert("#A5D6A7") | |
convert("#81C784") | |
convert("#66BB6A") | |
convert("#4CAF50") | |
convert("#43A047") | |
convert("#388E3C") | |
convert("#2E7D32") | |
convert("#1B5E20") | |
convert("#B9F6CA") | |
convert("#69F0AE") | |
convert("#00E676") | |
convert("#00C853") | |
convert("#F1F8E9") | |
convert("#DCEDC8") | |
convert("#C5E1A5") | |
convert("#AED581") | |
convert("#9CCC65") | |
convert("#8BC34A") | |
convert("#7CB342") | |
convert("#689F38") | |
convert("#558B2F") | |
convert("#33691E") | |
convert("#CCFF90") | |
convert("#B2FF59") | |
convert("#76FF03") | |
convert("#64DD17") | |
convert("#F9FBE7") | |
convert("#F0F4C3") | |
convert("#E6EE9C") | |
convert("#DCE775") | |
convert("#D4E157") | |
convert("#CDDC39") | |
convert("#C0CA33") | |
convert("#AFB42B") | |
convert("#9E9D24") | |
convert("#827717") | |
convert("#F4FF81") | |
convert("#EEFF41") | |
convert("#C6FF00") | |
convert("#AEEA00") | |
convert("#FFFDE7") | |
convert("#FFF9C4") | |
convert("#FFF59D") | |
convert("#FFF176") | |
convert("#FFEE58") | |
convert("#FFEB3B") | |
convert("#FDD835") | |
convert("#FBC02D") | |
convert("#F9A825") | |
convert("#F57F17") | |
convert("#FFFF8D") | |
convert("#FFFF00") | |
convert("#FFEA00") | |
convert("#FFD600") | |
convert("#FFF8E1") | |
convert("#FFECB3") | |
convert("#FFE082") | |
convert("#FFD54F") | |
convert("#FFCA28") | |
convert("#FFC107") | |
convert("#FFB300") | |
convert("#FFA000") | |
convert("#FF8F00") | |
convert("#FF6F00") | |
convert("#FFE57F") | |
convert("#FFD740") | |
convert("#FFC400") | |
convert("#FFAB00") | |
convert("#FFF3E0") | |
convert("#FFE0B2") | |
convert("#FFCC80") | |
convert("#FFB74D") | |
convert("#FFA726") | |
convert("#FF9800") | |
convert("#FB8C00") | |
convert("#F57C00") | |
convert("#EF6C00") | |
convert("#E65100") | |
convert("#FFD180") | |
convert("#FFAB40") | |
convert("#FF9100") | |
convert("#FF6D00") | |
convert("#FBE9E7") | |
convert("#FFCCBC") | |
convert("#FFAB91") | |
convert("#FF8A65") | |
convert("#FF7043") | |
convert("#FF5722") | |
convert("#F4511E") | |
convert("#E64A19") | |
convert("#D84315") | |
convert("#BF360C") | |
convert("#FF9E80") | |
convert("#FF6E40") | |
convert("#FF3D00") | |
convert("#DD2C00") | |
convert("#EFEBE9") | |
convert("#D7CCC8") | |
convert("#BCAAA4") | |
convert("#A1887F") | |
convert("#8D6E63") | |
convert("#795548") | |
convert("#6D4C41") | |
convert("#5D4037") | |
convert("#4E342E") | |
convert("#3E2723") | |
convert("#FAFAFA") | |
convert("#F5F5F5") | |
convert("#EEEEEE") | |
convert("#E0E0E0") | |
convert("#BDBDBD") | |
convert("#9E9E9E") | |
convert("#757575") | |
convert("#616161") | |
convert("#424242") | |
convert("#212121") | |
convert("#ECEFF1") | |
convert("#CFD8DC") | |
convert("#B0BEC5") | |
convert("#90A4AE") | |
convert("#78909C") | |
convert("#607D8B") | |
convert("#546E7A") | |
convert("#455A64") | |
convert("#37474F") | |
convert("#263238") | |
convert("#000000") | |
convert("#FFFFFF") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment