diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e05280e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +go-colorpalettes diff --git a/color_hex/popular.go b/color_hex/popular.go index 4481895..821d408 100644 --- a/color_hex/popular.go +++ b/color_hex/popular.go @@ -1,4 +1,4 @@ -package main +package color_hex var Palettes = map[string][]int{"Facebook": {0x3B5998, 0x8B9DC3, diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..d1924b7 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/taigrr/go-colorpalettes + +go 1.18 diff --git a/html/html.go b/html/html.go new file mode 100644 index 0000000..e05dbec --- /dev/null +++ b/html/html.go @@ -0,0 +1,144 @@ +package html + +var Colors = map[string]int{ + "aliceblue": 0xF0F8FF, + "antiquewhite": 0xFAEBD7, + "aqua": 0x00FFFF, + "aquamarine": 0x7FFFD4, + "azure": 0xF0FFFF, + "beige": 0xF5F5DC, + "bisque": 0xFFE4C4, + "black": 0x000000, + "blanchedalmond": 0xFFEBCD, + "blue": 0x0000FF, + "blueviolet": 0x8A2BE2, + "brown": 0xA52A2A, + "burlywood": 0xDEB887, + "cadetblue": 0x5F9EA0, + "chartreuse": 0x7FFF00, + "chocolate": 0xD2691E, + "coral": 0xFF7F50, + "cornflowerblue": 0x6495ED, + "cornsilk": 0xFFF8DC, + "crimson": 0xDC143C, + "cyan": 0x00FFFF, + "darkblue": 0x00008B, + "darkcyan": 0x008B8B, + "darkgoldenrod": 0xB886BB, + "darkgray": 0xA9A9A9, + "darkgreen": 0x006400, + "darkkhaki": 0xBDB76B, + "darkmagenta": 0x8B008B, + "darkolivegreen": 0x556B2F, + "darkorange": 0xFF8C00, + "darkorchid": 0x9932CC, + "darkred": 0x8B0000, + "darksalmon": 0xE9967A, + "darkseagreen": 0x8FBC8F, + "darkslateblue": 0x483D8B, + "darkslategray": 0x2F4F4F, + "darkturquoise": 0x00CED1, + "darkviolet": 0x9400D3, + "deeppink": 0xFF1493, + "deepskyblue": 0x00BFFF, + "dimgray": 0x696969, + "dodgerblue": 0x1E90FF, + "firebrick": 0xB22222, + "floralwhite": 0xFFFAF0, + "forestgreen": 0x228B22, + "fuchsia": 0xFF00FF, + "gainsboro": 0xDCDCDC, + "ghostwhite": 0xF8F8FF, + "gold": 0xFFD700, + "goldenrod": 0xDAA520, + "gray": 0xBEBEBE, + "green": 0x008000, + "greenyellow": 0xADFF2F, + "honeydew": 0xF0FFF0, + "hotpink": 0xFF69B4, + "indianred": 0xCD5C5C, + "indigo": 0x4B0082, + "ivory": 0xFFFFF0, + "khaki": 0xF0D58C, + "lavender": 0xE6E6FA, + "lavenderblush": 0xFFF0F5, + "lawngreen": 0x7CFC00, + "lemonchiffon": 0xFFFACD, + "lightblue": 0xADD8E6, + "lightcoral": 0xF08080, + "lightcyan": 0xE0FFFF, + "lightgoldenrodyellow": 0xFAFAD2, + "lightgreen": 0x90EE90, + "lightgrey": 0xD3D3D3, + "lightpink": 0xFFB6C1, + "lightsalmon": 0xFFA07A, + "lightseagreen": 0x20B2AA, + "lightskyblue": 0x87CEFA, + "lightslategray": 0x778899, + "lightsteelblue": 0xB0C4DE, + "lightyellow": 0xFFFFE0, + "lime": 0x00FF00, + "limegreen": 0x32CD32, + "linen": 0xFAF0E6, + "magenta": 0xFF00FF, + "maroon": 0x800000, + "mediumaquamarine": 0x66CDAA, + "mediumblue": 0x0000CD, + "mediumorchid": 0xBA55D3, + "mediumpurple": 0x9370DB, + "mediumseagreen": 0x3CB371, + "mediumslateblue": 0x7B68EE, + "mediumspringgreen": 0x00FA9A, + "mediumturquoise": 0x48D1CC, + "mediumvioletred": 0xC71585, + "midnightblue": 0x191970, + "mintcream": 0xF5FFFA, + "mistyrose": 0xFFE4E1, + "moccasin": 0xFFE4B5, + "navajowhite": 0xFFDEAD, + "navy": 0x000080, + "oldlace": 0xFDF5E6, + "olive": 0x808000, + "olivedrab": 0x6B8E23, + "orange": 0xFFA500, + "orangered": 0xFF4500, + "orchid": 0xDA70D6, + "palegoldenrod": 0xEEE8AA, + "palegreen": 0x98FB98, + "paleturquoise": 0xAFEEEE, + "palevioletred": 0xDB7093, + "papayawhip": 0xFFEFD5, + "peachpuff": 0xFFDAB9, + "peru": 0xCD853F, + "pink": 0xFFC0CB, + "plum": 0xDDA0DD, + "powderblue": 0xB0E0E6, + "purple": 0x800080, + "red": 0xFF0000, + "rosybrown": 0xBC8F8F, + "royalblue": 0x4169E1, + "saddlebrown": 0x8B4513, + "salmon": 0xFA8072, + "sandybrown": 0xF4A460, + "seagreen": 0x2E8B57, + "seashell": 0xFFF5EE, + "sienna": 0xA0522D, + "silver": 0xC0C0C0, + "skyblue": 0x87CEEB, + "slateblue": 0x6A5ACD, + "slategray": 0x708090, + "snow": 0xFFFAFA, + "springgreen": 0x00FF7F, + "steelblue": 0x4682B4, + "tan": 0xD2B48C, + "teal": 0x008080, + "thistle": 0xD8BFD8, + "tomato": 0xFF6347, + "turquoise": 0x40E0D0, + "violet": 0xEE82EE, + "wheat": 0xF5DEB3, + "white": 0xFFFFFF, + "whitesmoke": 0xF5F5F5, + "yellow": 0xFFFF00, + "yellowgreen": 0x9ACD32, +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..282a345 --- /dev/null +++ b/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "fmt" + "strings" + + "github.com/taigrr/go-colorpalettes/material" +) + +func main() { + colors := material.GetShadesForColorName("Red") + var open []string + var close []string + for _, c := range colors { + red := c >> 16 & 0xFF + green := c >> 8 & 0xFF + blue := c & 0xFF + + if (float32(red)*0.299 + float32(green)*0.587 + float32(blue)*0.114) > 150.0 { + open = append(open, fmt.Sprintf("\u001B[38;2;%d;%d;%dm", 0, 0, 0)) + } else { + + open = append(open, fmt.Sprintf("\u001B[38;2;%d;%d;%dm", 255, 255, 255)) + } + close = append(close, "\u001B[39m") + + open = append(open, fmt.Sprintf("\u001B[48;2;%d;%d;%dm", red, green, blue)) + close = append(close, "\u001B[49m") + + // if m.isUnderlined { + //open = append(open, "\u001B[4m") + //close = append(close, "\u001B[24m") + // } + + // if m.isDim { + // open = append(open, "\u001B[2m") + // close = append(close, "\u001B[22m") + // } + // + // if m.isItalic { + // open = append(open, "\u001B[3m") + // close = append(close, "\u001B[23m") + // } + + // if m.isBold { + // open = append(open, "\u001B[1m") + // close = append(close, "\u001B[21m") + // } + var b strings.Builder + fmt.Fprint(&b, strings.Join(open, "")) + fmt.Fprint(&b, "adasdasd") + fmt.Fprint(&b, strings.Join(close, "")) + + fmt.Print(b.String() + " ") + } + fmt.Println("") + +} diff --git a/material/material.go b/material/material.go index 0017aa7..952e9c1 100644 --- a/material/material.go +++ b/material/material.go @@ -1,5 +1,7 @@ package material +import "sort" + type ColorPallette map[string]int var Red = ColorPallette{ @@ -119,3 +121,44 @@ var BlueGrey = ColorPallette{ "400": 0x78909c, "500": 0x607d8b, "600": 0x546e7a, "700": 0x455a64, "800": 0x37474f, "900": 0x263238, } +var Spectrum = map[string]ColorPallette{ + "Red": Red, + "Pink": Pink, + "Purple": Purple, + // These colors render too similarly to Purple for most use cases + // "DeepPurple": DeepPurple, + "Blue": Blue, + "LightBlue": LightBlue, + "Cyan": Cyan, + "Teal": Teal, + "Green": Green, + "LightGreen": LightGreen, + "Lime": Lime, + "Yellow": Yellow, + "Amber": Amber, + "Orange": Orange, + "DeepOrange": DeepOrange, + "Brown": Brown, + "Grey": Grey, + "BlueGrey": BlueGrey, +} + +func GetColorsForShade(shade string) (colors []int) { + for _, cp := range Spectrum { + if hue, ok := cp[shade]; ok { + colors = append(colors, hue) + sort.Ints(colors) + } + } + return +} + +func GetShadesForColorName(color string) (colors []int) { + if c, ok := Spectrum[color]; ok { + for _, cp := range c { + colors = append(colors, cp) + sort.Ints(colors) + } + } + return +}