mirror of
https://github.com/6543/go-hexcolor
synced 2024-12-20 00:34:51 +00:00
resolve CSS3 named colors
This commit is contained in:
parent
d071c61804
commit
fe0e8e86d6
@ -18,6 +18,7 @@ func NewHexColor(hc string) (*HexColor, error) {
|
|||||||
c := &HexColor{original: hc}
|
c := &HexColor{original: hc}
|
||||||
hc = strings.TrimLeft(strings.ToLower(hc), "#")
|
hc = strings.TrimLeft(strings.ToLower(hc), "#")
|
||||||
|
|
||||||
|
// normalize hex color
|
||||||
if _, err := strconv.ParseUint(hc, 16, 24); err == nil {
|
if _, err := strconv.ParseUint(hc, 16, 24); err == nil {
|
||||||
if len(hc) == 6 {
|
if len(hc) == 6 {
|
||||||
c.hex = hc
|
c.hex = hc
|
||||||
@ -29,7 +30,12 @@ func NewHexColor(hc string) (*HexColor, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle named colors
|
// resolve named color to hex color
|
||||||
|
val, exist := CSS3ColorMap[strings.TrimSpace(hc)]
|
||||||
|
if exist {
|
||||||
|
c.hex = string(val)
|
||||||
|
return c, nil
|
||||||
|
}
|
||||||
|
|
||||||
return nil, fmt.Errorf("Malformed color: %s", hc)
|
return nil, fmt.Errorf("Malformed color: %s", hc)
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,14 @@ func TestNewHexColor(t *testing.T) {
|
|||||||
{"#dd22cc", "dd22cc", false},
|
{"#dd22cc", "dd22cc", false},
|
||||||
{"#adf", "aaddff", false},
|
{"#adf", "aaddff", false},
|
||||||
{"15d", "1155dd", false},
|
{"15d", "1155dd", false},
|
||||||
{"a5i", "", true},
|
{"15di", "1155dd", true},
|
||||||
|
{"2e8b57", "2e8b57", false},
|
||||||
|
{"2e8b572e8b57", "", true},
|
||||||
|
|
||||||
|
{"Red", "ff0000", false},
|
||||||
|
{"blue", "0000ff", false},
|
||||||
|
{"reed", "", true},
|
||||||
|
{"", "", true},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range cases {
|
for _, tc := range cases {
|
||||||
|
312
named.go
312
named.go
@ -1 +1,311 @@
|
|||||||
package go_hexcolor
|
package hexcolor
|
||||||
|
|
||||||
|
type ANSIColor string
|
||||||
|
|
||||||
|
// CSS3 named colors
|
||||||
|
// ref: https://drafts.csswg.org/css-color-3/
|
||||||
|
type CSS3Color string
|
||||||
|
|
||||||
|
const (
|
||||||
|
Aliceblue CSS3Color = "f0f8ff"
|
||||||
|
Antiquewhite CSS3Color = "faebd7"
|
||||||
|
Aqua CSS3Color = "00ffff"
|
||||||
|
Aquamarine CSS3Color = "7fffd4"
|
||||||
|
Azure CSS3Color = "f0ffff"
|
||||||
|
Beige CSS3Color = "f5f5dc"
|
||||||
|
Bisque CSS3Color = "ffe4c4"
|
||||||
|
Black CSS3Color = "000000"
|
||||||
|
Blanchedalmond CSS3Color = "ffebcd"
|
||||||
|
Blue CSS3Color = "0000ff"
|
||||||
|
Blueviolet CSS3Color = "8a2be2"
|
||||||
|
Brown CSS3Color = "a52a2a"
|
||||||
|
Burlywood CSS3Color = "deb887"
|
||||||
|
Cadetblue CSS3Color = "5f9ea0"
|
||||||
|
Chartreuse CSS3Color = "7fff00"
|
||||||
|
Chocolate CSS3Color = "d2691e"
|
||||||
|
Coral CSS3Color = "ff7f50"
|
||||||
|
Cornflowerblue CSS3Color = "6495ed"
|
||||||
|
Cornsilk CSS3Color = "fff8dc"
|
||||||
|
Crimson CSS3Color = "dc143c"
|
||||||
|
Cyan CSS3Color = "00ffff"
|
||||||
|
Darkblue CSS3Color = "00008b"
|
||||||
|
Darkcyan CSS3Color = "008b8b"
|
||||||
|
Darkgoldenrod CSS3Color = "b8860b"
|
||||||
|
Darkgray CSS3Color = "a9a9a9"
|
||||||
|
Darkgreen CSS3Color = "006400"
|
||||||
|
Darkgrey CSS3Color = "a9a9a9"
|
||||||
|
Darkkhaki CSS3Color = "bdb76b"
|
||||||
|
Darkmagenta CSS3Color = "8b008b"
|
||||||
|
Darkolivegreen CSS3Color = "556b2f"
|
||||||
|
Darkorange CSS3Color = "ff8c00"
|
||||||
|
Darkorchid CSS3Color = "9932cc"
|
||||||
|
Darkred CSS3Color = "8b0000"
|
||||||
|
Darksalmon CSS3Color = "e9967a"
|
||||||
|
Darkseagreen CSS3Color = "8fbc8f"
|
||||||
|
Darkslateblue CSS3Color = "483d8b"
|
||||||
|
Darkslategray CSS3Color = "2f4f4f"
|
||||||
|
Darkslategrey CSS3Color = "2f4f4f"
|
||||||
|
Darkturquoise CSS3Color = "00ced1"
|
||||||
|
Darkviolet CSS3Color = "9400d3"
|
||||||
|
Deeppink CSS3Color = "ff1493"
|
||||||
|
Deepskyblue CSS3Color = "00bfff"
|
||||||
|
Dimgray CSS3Color = "696969"
|
||||||
|
Dimgrey CSS3Color = "696969"
|
||||||
|
Dodgerblue CSS3Color = "1e90ff"
|
||||||
|
Firebrick CSS3Color = "b22222"
|
||||||
|
Floralwhite CSS3Color = "fffaf0"
|
||||||
|
Forestgreen CSS3Color = "228b22"
|
||||||
|
Fuchsia CSS3Color = "ff00ff"
|
||||||
|
Gainsboro CSS3Color = "dcdcdc"
|
||||||
|
Ghostwhite CSS3Color = "f8f8ff"
|
||||||
|
Gold CSS3Color = "ffd700"
|
||||||
|
Goldenrod CSS3Color = "daa520"
|
||||||
|
Gray CSS3Color = "808080"
|
||||||
|
Green CSS3Color = "008000"
|
||||||
|
Greenyellow CSS3Color = "adff2f"
|
||||||
|
Grey CSS3Color = "808080"
|
||||||
|
Honeydew CSS3Color = "f0fff0"
|
||||||
|
Hotpink CSS3Color = "ff69b4"
|
||||||
|
Indianred CSS3Color = "cd5c5c"
|
||||||
|
Indigo CSS3Color = "4b0082"
|
||||||
|
Ivory CSS3Color = "fffff0"
|
||||||
|
Khaki CSS3Color = "f0e68c"
|
||||||
|
Lavender CSS3Color = "e6e6fa"
|
||||||
|
Lavenderblush CSS3Color = "fff0f5"
|
||||||
|
Lawngreen CSS3Color = "7cfc00"
|
||||||
|
Lemonchiffon CSS3Color = "fffacd"
|
||||||
|
Lightblue CSS3Color = "add8e6"
|
||||||
|
Lightcoral CSS3Color = "f08080"
|
||||||
|
Lightcyan CSS3Color = "e0ffff"
|
||||||
|
Lightgoldenrodyellow CSS3Color = "fafad2"
|
||||||
|
Lightgray CSS3Color = "d3d3d3"
|
||||||
|
Lightgreen CSS3Color = "90ee90"
|
||||||
|
Lightgrey CSS3Color = "d3d3d3"
|
||||||
|
Lightpink CSS3Color = "ffb6c1"
|
||||||
|
Lightsalmon CSS3Color = "ffa07a"
|
||||||
|
Lightseagreen CSS3Color = "20b2aa"
|
||||||
|
Lightskyblue CSS3Color = "87cefa"
|
||||||
|
Lightslategray CSS3Color = "778899"
|
||||||
|
Lightslategrey CSS3Color = "778899"
|
||||||
|
Lightsteelblue CSS3Color = "b0c4de"
|
||||||
|
Lightyellow CSS3Color = "ffffe0"
|
||||||
|
Lime CSS3Color = "00ff00"
|
||||||
|
Limegreen CSS3Color = "32cd32"
|
||||||
|
Linen CSS3Color = "faf0e6"
|
||||||
|
Magenta CSS3Color = "ff00ff"
|
||||||
|
Maroon CSS3Color = "800000"
|
||||||
|
Mediumaquamarine CSS3Color = "66cdaa"
|
||||||
|
Mediumblue CSS3Color = "0000cd"
|
||||||
|
Mediumorchid CSS3Color = "ba55d3"
|
||||||
|
Mediumpurple CSS3Color = "9370db"
|
||||||
|
Mediumseagreen CSS3Color = "3cb371"
|
||||||
|
Mediumslateblue CSS3Color = "7b68ee"
|
||||||
|
Mediumspringgreen CSS3Color = "00fa9a"
|
||||||
|
Mediumturquoise CSS3Color = "48d1cc"
|
||||||
|
Mediumvioletred CSS3Color = "c71585"
|
||||||
|
Midnightblue CSS3Color = "191970"
|
||||||
|
Mintcream CSS3Color = "f5fffa"
|
||||||
|
Mistyrose CSS3Color = "ffe4e1"
|
||||||
|
Moccasin CSS3Color = "ffe4b5"
|
||||||
|
Navajowhite CSS3Color = "ffdead"
|
||||||
|
Navy CSS3Color = "000080"
|
||||||
|
Oldlace CSS3Color = "fdf5e6"
|
||||||
|
Olive CSS3Color = "808000"
|
||||||
|
Olivedrab CSS3Color = "6b8e23"
|
||||||
|
Orange CSS3Color = "ffa500"
|
||||||
|
Orangered CSS3Color = "ff4500"
|
||||||
|
Orchid CSS3Color = "da70d6"
|
||||||
|
Palegoldenrod CSS3Color = "eee8aa"
|
||||||
|
Palegreen CSS3Color = "98fb98"
|
||||||
|
Paleturquoise CSS3Color = "afeeee"
|
||||||
|
Palevioletred CSS3Color = "db7093"
|
||||||
|
Papayawhip CSS3Color = "ffefd5"
|
||||||
|
Peachpuff CSS3Color = "ffdab9"
|
||||||
|
Peru CSS3Color = "cd853f"
|
||||||
|
Pink CSS3Color = "ffc0cb"
|
||||||
|
Plum CSS3Color = "dda0dd"
|
||||||
|
Powderblue CSS3Color = "b0e0e6"
|
||||||
|
Purple CSS3Color = "800080"
|
||||||
|
Red CSS3Color = "ff0000"
|
||||||
|
Rosybrown CSS3Color = "bc8f8f"
|
||||||
|
Royalblue CSS3Color = "4169e1"
|
||||||
|
Saddlebrown CSS3Color = "8b4513"
|
||||||
|
Salmon CSS3Color = "fa8072"
|
||||||
|
Sandybrown CSS3Color = "f4a460"
|
||||||
|
Seagreen CSS3Color = "2e8b57"
|
||||||
|
Seashell CSS3Color = "fff5ee"
|
||||||
|
Sienna CSS3Color = "a0522d"
|
||||||
|
Silver CSS3Color = "c0c0c0"
|
||||||
|
Skyblue CSS3Color = "87ceeb"
|
||||||
|
Slateblue CSS3Color = "6a5acd"
|
||||||
|
Slategray CSS3Color = "708090"
|
||||||
|
Slategrey CSS3Color = "708090"
|
||||||
|
Snow CSS3Color = "fffafa"
|
||||||
|
Springgreen CSS3Color = "00ff7f"
|
||||||
|
Steelblue CSS3Color = "4682b4"
|
||||||
|
Tan CSS3Color = "d2b48c"
|
||||||
|
Teal CSS3Color = "008080"
|
||||||
|
Thistle CSS3Color = "d8bfd8"
|
||||||
|
Tomato CSS3Color = "ff6347"
|
||||||
|
Turquoise CSS3Color = "40e0d0"
|
||||||
|
Violet CSS3Color = "ee82ee"
|
||||||
|
Wheat CSS3Color = "f5deb3"
|
||||||
|
White CSS3Color = "ffffff"
|
||||||
|
Whitesmoke CSS3Color = "f5f5f5"
|
||||||
|
Yellow CSS3Color = "ffff00"
|
||||||
|
Yellowgreen CSS3Color = "9acd32"
|
||||||
|
)
|
||||||
|
|
||||||
|
var CSS3ColorMap map[string]CSS3Color
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
CSS3ColorMap = make(map[string]CSS3Color)
|
||||||
|
|
||||||
|
CSS3ColorMap["aliceblue"] = Aliceblue
|
||||||
|
CSS3ColorMap["antiquewhite"] = Antiquewhite
|
||||||
|
CSS3ColorMap["aqua"] = Aqua
|
||||||
|
CSS3ColorMap["aquamarine"] = Aquamarine
|
||||||
|
CSS3ColorMap["azure"] = Azure
|
||||||
|
CSS3ColorMap["beige"] = Beige
|
||||||
|
CSS3ColorMap["bisque"] = Bisque
|
||||||
|
CSS3ColorMap["black"] = Black
|
||||||
|
CSS3ColorMap["blanchedalmond"] = Blanchedalmond
|
||||||
|
CSS3ColorMap["blue"] = Blue
|
||||||
|
CSS3ColorMap["blueviolet"] = Blueviolet
|
||||||
|
CSS3ColorMap["brown"] = Brown
|
||||||
|
CSS3ColorMap["burlywood"] = Burlywood
|
||||||
|
CSS3ColorMap["cadetblue"] = Cadetblue
|
||||||
|
CSS3ColorMap["chartreuse"] = Chartreuse
|
||||||
|
CSS3ColorMap["chocolate"] = Chocolate
|
||||||
|
CSS3ColorMap["coral"] = Coral
|
||||||
|
CSS3ColorMap["cornflowerblue"] = Cornflowerblue
|
||||||
|
CSS3ColorMap["cornsilk"] = Cornsilk
|
||||||
|
CSS3ColorMap["crimson"] = Crimson
|
||||||
|
CSS3ColorMap["cyan"] = Cyan
|
||||||
|
CSS3ColorMap["darkblue"] = Darkblue
|
||||||
|
CSS3ColorMap["darkcyan"] = Darkcyan
|
||||||
|
CSS3ColorMap["darkgoldenrod"] = Darkgoldenrod
|
||||||
|
CSS3ColorMap["darkgray"] = Darkgray
|
||||||
|
CSS3ColorMap["darkgreen"] = Darkgreen
|
||||||
|
CSS3ColorMap["darkgrey"] = Darkgrey
|
||||||
|
CSS3ColorMap["darkkhaki"] = Darkkhaki
|
||||||
|
CSS3ColorMap["darkmagenta"] = Darkmagenta
|
||||||
|
CSS3ColorMap["darkolivegreen"] = Darkolivegreen
|
||||||
|
CSS3ColorMap["darkorange"] = Darkorange
|
||||||
|
CSS3ColorMap["darkorchid"] = Darkorchid
|
||||||
|
CSS3ColorMap["darkred"] = Darkred
|
||||||
|
CSS3ColorMap["darksalmon"] = Darksalmon
|
||||||
|
CSS3ColorMap["darkseagreen"] = Darkseagreen
|
||||||
|
CSS3ColorMap["darkslateblue"] = Darkslateblue
|
||||||
|
CSS3ColorMap["darkslategray"] = Darkslategray
|
||||||
|
CSS3ColorMap["darkslategrey"] = Darkslategrey
|
||||||
|
CSS3ColorMap["darkturquoise"] = Darkturquoise
|
||||||
|
CSS3ColorMap["darkviolet"] = Darkviolet
|
||||||
|
CSS3ColorMap["deeppink"] = Deeppink
|
||||||
|
CSS3ColorMap["deepskyblue"] = Deepskyblue
|
||||||
|
CSS3ColorMap["dimgray"] = Dimgray
|
||||||
|
CSS3ColorMap["dimgrey"] = Dimgrey
|
||||||
|
CSS3ColorMap["dodgerblue"] = Dodgerblue
|
||||||
|
CSS3ColorMap["firebrick"] = Firebrick
|
||||||
|
CSS3ColorMap["floralwhite"] = Floralwhite
|
||||||
|
CSS3ColorMap["forestgreen"] = Forestgreen
|
||||||
|
CSS3ColorMap["fuchsia"] = Fuchsia
|
||||||
|
CSS3ColorMap["gainsboro"] = Gainsboro
|
||||||
|
CSS3ColorMap["ghostwhite"] = Ghostwhite
|
||||||
|
CSS3ColorMap["gold"] = Gold
|
||||||
|
CSS3ColorMap["goldenrod"] = Goldenrod
|
||||||
|
CSS3ColorMap["gray"] = Gray
|
||||||
|
CSS3ColorMap["green"] = Green
|
||||||
|
CSS3ColorMap["greenyellow"] = Greenyellow
|
||||||
|
CSS3ColorMap["grey"] = Grey
|
||||||
|
CSS3ColorMap["honeydew"] = Honeydew
|
||||||
|
CSS3ColorMap["hotpink"] = Hotpink
|
||||||
|
CSS3ColorMap["indianred"] = Indianred
|
||||||
|
CSS3ColorMap["indigo"] = Indigo
|
||||||
|
CSS3ColorMap["ivory"] = Ivory
|
||||||
|
CSS3ColorMap["khaki"] = Khaki
|
||||||
|
CSS3ColorMap["lavender"] = Lavender
|
||||||
|
CSS3ColorMap["lavenderblush"] = Lavenderblush
|
||||||
|
CSS3ColorMap["lawngreen"] = Lawngreen
|
||||||
|
CSS3ColorMap["lemonchiffon"] = Lemonchiffon
|
||||||
|
CSS3ColorMap["lightblue"] = Lightblue
|
||||||
|
CSS3ColorMap["lightcoral"] = Lightcoral
|
||||||
|
CSS3ColorMap["lightcyan"] = Lightcyan
|
||||||
|
CSS3ColorMap["lightgoldenrodyellow"] = Lightgoldenrodyellow
|
||||||
|
CSS3ColorMap["lightgray"] = Lightgray
|
||||||
|
CSS3ColorMap["lightgreen"] = Lightgreen
|
||||||
|
CSS3ColorMap["lightgrey"] = Lightgrey
|
||||||
|
CSS3ColorMap["lightpink"] = Lightpink
|
||||||
|
CSS3ColorMap["lightsalmon"] = Lightsalmon
|
||||||
|
CSS3ColorMap["lightseagreen"] = Lightseagreen
|
||||||
|
CSS3ColorMap["lightskyblue"] = Lightskyblue
|
||||||
|
CSS3ColorMap["lightslategray"] = Lightslategray
|
||||||
|
CSS3ColorMap["lightslategrey"] = Lightslategrey
|
||||||
|
CSS3ColorMap["lightsteelblue"] = Lightsteelblue
|
||||||
|
CSS3ColorMap["lightyellow"] = Lightyellow
|
||||||
|
CSS3ColorMap["lime"] = Lime
|
||||||
|
CSS3ColorMap["limegreen"] = Limegreen
|
||||||
|
CSS3ColorMap["linen"] = Linen
|
||||||
|
CSS3ColorMap["magenta"] = Magenta
|
||||||
|
CSS3ColorMap["maroon"] = Maroon
|
||||||
|
CSS3ColorMap["mediumaquamarine"] = Mediumaquamarine
|
||||||
|
CSS3ColorMap["mediumblue"] = Mediumblue
|
||||||
|
CSS3ColorMap["mediumorchid"] = Mediumorchid
|
||||||
|
CSS3ColorMap["mediumpurple"] = Mediumpurple
|
||||||
|
CSS3ColorMap["mediumseagreen"] = Mediumseagreen
|
||||||
|
CSS3ColorMap["mediumslateblue"] = Mediumslateblue
|
||||||
|
CSS3ColorMap["mediumspringgreen"] = Mediumspringgreen
|
||||||
|
CSS3ColorMap["mediumturquoise"] = Mediumturquoise
|
||||||
|
CSS3ColorMap["mediumvioletred"] = Mediumvioletred
|
||||||
|
CSS3ColorMap["midnightblue"] = Midnightblue
|
||||||
|
CSS3ColorMap["mintcream"] = Mintcream
|
||||||
|
CSS3ColorMap["mistyrose"] = Mistyrose
|
||||||
|
CSS3ColorMap["moccasin"] = Moccasin
|
||||||
|
CSS3ColorMap["navajowhite"] = Navajowhite
|
||||||
|
CSS3ColorMap["navy"] = Navy
|
||||||
|
CSS3ColorMap["oldlace"] = Oldlace
|
||||||
|
CSS3ColorMap["olive"] = Olive
|
||||||
|
CSS3ColorMap["olivedrab"] = Olivedrab
|
||||||
|
CSS3ColorMap["orange"] = Orange
|
||||||
|
CSS3ColorMap["orangered"] = Orangered
|
||||||
|
CSS3ColorMap["orchid"] = Orchid
|
||||||
|
CSS3ColorMap["palegoldenrod"] = Palegoldenrod
|
||||||
|
CSS3ColorMap["palegreen"] = Palegreen
|
||||||
|
CSS3ColorMap["paleturquoise"] = Paleturquoise
|
||||||
|
CSS3ColorMap["palevioletred"] = Palevioletred
|
||||||
|
CSS3ColorMap["papayawhip"] = Papayawhip
|
||||||
|
CSS3ColorMap["peachpuff"] = Peachpuff
|
||||||
|
CSS3ColorMap["peru"] = Peru
|
||||||
|
CSS3ColorMap["pink"] = Pink
|
||||||
|
CSS3ColorMap["plum"] = Plum
|
||||||
|
CSS3ColorMap["powderblue"] = Powderblue
|
||||||
|
CSS3ColorMap["purple"] = Purple
|
||||||
|
CSS3ColorMap["red"] = Red
|
||||||
|
CSS3ColorMap["rosybrown"] = Rosybrown
|
||||||
|
CSS3ColorMap["royalblue"] = Royalblue
|
||||||
|
CSS3ColorMap["saddlebrown"] = Saddlebrown
|
||||||
|
CSS3ColorMap["salmon"] = Salmon
|
||||||
|
CSS3ColorMap["sandybrown"] = Sandybrown
|
||||||
|
CSS3ColorMap["seagreen"] = Seagreen
|
||||||
|
CSS3ColorMap["seashell"] = Seashell
|
||||||
|
CSS3ColorMap["sienna"] = Sienna
|
||||||
|
CSS3ColorMap["silver"] = Silver
|
||||||
|
CSS3ColorMap["skyblue"] = Skyblue
|
||||||
|
CSS3ColorMap["slateblue"] = Slateblue
|
||||||
|
CSS3ColorMap["slategray"] = Slategray
|
||||||
|
CSS3ColorMap["slategrey"] = Slategrey
|
||||||
|
CSS3ColorMap["snow"] = Snow
|
||||||
|
CSS3ColorMap["springgreen"] = Springgreen
|
||||||
|
CSS3ColorMap["steelblue"] = Steelblue
|
||||||
|
CSS3ColorMap["tan"] = Tan
|
||||||
|
CSS3ColorMap["teal"] = Teal
|
||||||
|
CSS3ColorMap["thistle"] = Thistle
|
||||||
|
CSS3ColorMap["tomato"] = Tomato
|
||||||
|
CSS3ColorMap["turquoise"] = Turquoise
|
||||||
|
CSS3ColorMap["violet"] = Violet
|
||||||
|
CSS3ColorMap["wheat"] = Wheat
|
||||||
|
CSS3ColorMap["white"] = White
|
||||||
|
CSS3ColorMap["whitesmoke"] = Whitesmoke
|
||||||
|
CSS3ColorMap["yellow"] = Yellow
|
||||||
|
CSS3ColorMap["yellowgreen"] = Yellowgreen
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user