hcg-minus-0.16: Data/CG/Minus/Colour/SVG.hs
-- | SVG colours
module Data.CG.Minus.Colour.SVG where
import qualified Data.Colour as C {- colour -}
import qualified Data.Colour.Names as N {- colour -}
import qualified Data.Colour.SRGB as C {- colour -}
import Data.Functor.Identity {- base -}
-- | Type specialised 'N.readColourName'.
svg_name_to_colour :: String -> C.Colour Double
svg_name_to_colour = runIdentity . N.readColourName
-- | The named colours of the @SVG@ specification, alphabetical order.
-- <https://www.w3.org/TR/SVG11/types.html#ColorKeywords>
--
-- > length svg_colour_data == 147
svg_colour_data :: Num n => [(String,n,n,n)]
svg_colour_data =
[("aliceblue", 240, 248, 255)
,("antiquewhite", 250, 235, 215)
,("aqua", 0, 255, 255)
,("aquamarine", 127, 255, 212)
,("azure", 240, 255, 255)
,("beige", 245, 245, 220)
,("bisque", 255, 228, 196)
,("black", 0, 0, 0)
,("blanchedalmond", 255, 235, 205)
,("blue", 0, 0, 255)
,("blueviolet", 138, 43, 226)
,("brown", 165, 42, 42)
,("burlywood", 222, 184, 135)
,("cadetblue", 95, 158, 160)
,("chartreuse", 127, 255, 0)
,("chocolate", 210, 105, 30)
,("coral", 255, 127, 80)
,("cornflowerblue", 100, 149, 237)
,("cornsilk", 255, 248, 220)
,("crimson", 220, 20, 60)
,("cyan", 0, 255, 255)
,("darkblue", 0, 0, 139)
,("darkcyan", 0, 139, 139)
,("darkgoldenrod", 184, 134, 11)
,("darkgray", 169, 169, 169)
,("darkgreen", 0, 100, 0)
,("darkgrey", 169, 169, 169)
,("darkkhaki", 189, 183, 107)
,("darkmagenta", 139, 0, 139)
,("darkolivegreen", 85, 107, 47)
,("darkorange", 255, 140, 0)
,("darkorchid", 153, 50, 204)
,("darkred", 139, 0, 0)
,("darksalmon", 233, 150, 122)
,("darkseagreen", 143, 188, 143)
,("darkslateblue", 72, 61, 139)
,("darkslategray", 47, 79, 79)
,("darkslategrey", 47, 79, 79)
,("darkturquoise", 0, 206, 209)
,("darkviolet", 148, 0, 211)
,("deeppink", 255, 20, 147)
,("deepskyblue", 0, 191, 255)
,("dimgray", 105, 105, 105)
,("dimgrey", 105, 105, 105)
,("dodgerblue", 30, 144, 255)
,("firebrick", 178, 34, 34)
,("floralwhite", 255, 250, 240)
,("forestgreen", 34, 139, 34)
,("fuchsia", 255, 0, 255)
,("gainsboro", 220, 220, 220)
,("ghostwhite", 248, 248, 255)
,("gold", 255, 215, 0)
,("goldenrod", 218, 165, 32)
,("gray", 128, 128, 128)
,("grey", 128, 128, 128)
,("green", 0, 128, 0)
,("greenyellow", 173, 255, 47)
,("honeydew", 240, 255, 240)
,("hotpink", 255, 105, 180)
,("indianred", 205, 92, 92)
,("indigo", 75, 0, 130)
,("ivory", 255, 255, 240)
,("khaki", 240, 230, 140)
,("lavender", 230, 230, 250)
,("lavenderblush", 255, 240, 245)
,("lawngreen", 124, 252, 0)
,("lemonchiffon", 255, 250, 205)
,("lightblue", 173, 216, 230)
,("lightcoral", 240, 128, 128)
,("lightcyan", 224, 255, 255)
,("lightgoldenrodyellow", 250, 250, 210)
,("lightgray", 211, 211, 211)
,("lightgreen", 144, 238, 144)
,("lightgrey", 211, 211, 211)
,("lightpink", 255, 182, 193)
,("lightsalmon", 255, 160, 122)
,("lightseagreen", 32, 178, 170)
,("lightskyblue", 135, 206, 250)
,("lightslategray", 119, 136, 153)
,("lightslategrey", 119, 136, 153)
,("lightsteelblue", 176, 196, 222)
,("lightyellow", 255, 255, 224)
,("lime", 0, 255, 0)
,("limegreen", 50, 205, 50)
,("linen", 250, 240, 230)
,("magenta", 255, 0, 255)
,("maroon", 128, 0, 0)
,("mediumaquamarine", 102, 205, 170)
,("mediumblue", 0, 0, 205)
,("mediumorchid", 186, 85, 211)
,("mediumpurple", 147, 112, 219)
,("mediumseagreen", 60, 179, 113)
,("mediumslateblue", 123, 104, 238)
,("mediumspringgreen", 0, 250, 154)
,("mediumturquoise", 72, 209, 204)
,("mediumvioletred", 199, 21, 133)
,("midnightblue", 25, 25, 112)
,("mintcream", 245, 255, 250)
,("mistyrose", 255, 228, 225)
,("moccasin", 255, 228, 181)
,("navajowhite", 255, 222, 173)
,("navy", 0, 0, 128)
,("oldlace", 253, 245, 230)
,("olive", 128, 128, 0)
,("olivedrab", 107, 142, 35)
,("orange", 255, 165, 0)
,("orangered", 255, 69, 0)
,("orchid", 218, 112, 214)
,("palegoldenrod", 238, 232, 170)
,("palegreen", 152, 251, 152)
,("paleturquoise", 175, 238, 238)
,("palevioletred", 219, 112, 147)
,("papayawhip", 255, 239, 213)
,("peachpuff", 255, 218, 185)
,("peru", 205, 133, 63)
,("pink", 255, 192, 203)
,("plum", 221, 160, 221)
,("powderblue", 176, 224, 230)
,("purple", 128, 0, 128)
,("red", 255, 0, 0)
,("rosybrown", 188, 143, 143)
,("royalblue", 65, 105, 225)
,("saddlebrown", 139, 69, 19)
,("salmon", 250, 128, 114)
,("sandybrown", 244, 164, 96)
,("seagreen", 46, 139, 87)
,("seashell", 255, 245, 238)
,("sienna", 160, 82, 45)
,("silver", 192, 192, 192)
,("skyblue", 135, 206, 235)
,("slateblue", 106, 90, 205)
,("slategray", 112, 128, 144)
,("slategrey", 112, 128, 144)
,("snow", 255, 250, 250)
,("springgreen", 0, 255, 127)
,("steelblue", 70, 130, 180)
,("tan", 210, 180, 140)
,("teal", 0, 128, 128)
,("thistle", 216, 191, 216)
,("tomato", 255, 99, 71)
,("turquoise", 64, 224, 208)
,("violet", 238, 130, 238)
,("wheat", 245, 222, 179)
,("white", 255, 255, 255)
,("whitesmoke", 245, 245, 245)
,("yellow", 255, 255, 0)
,("yellowgreen", 154, 205, 50)
]
-- | More useful form of 'svg_colour_data'.
svg_color_tbl :: [(String,C.Colour Double)]
svg_color_tbl =
let f (nm,r,g,b) = (nm,C.sRGB24 r g b)
in map f svg_colour_data
svg_colour_set :: [C.Colour Double]
svg_colour_set = map snd svg_color_tbl