-
Notifications
You must be signed in to change notification settings - Fork 2
/
css-color.ss
166 lines (162 loc) · 4.57 KB
/
css-color.ss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
(define color-list
'((transparent 0 0 0 0)
(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)
(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)
(darkturquoise 0 206 209)
(darkviolet 148 0 211)
(deeppink 255 20 147)
(deepskyblue 0 191 255)
(dimgray 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)
(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)
(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)
(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)
(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)))
(define color-table
(begin (let ([t (make-eq-hashtable)])
(for-each (lambda (p)
(hashtable-set! t (car p) (cdr p)))
color-list)
t)))
(define (name->color x)
(check-arg symbol? x name->color)
(cond [(hashtable-ref color-table x #f)
=> (lambda (y) (apply make-color (map (lambda (x) (exact->inexact (/ x 255))) y) ))]
[else (errorf 'name->color "unknown color ~d" x)]))
(define (->color x)
(cond
[(color? x) x]
[(symbol? x) (name->color x)]
[(list? x) (case (car x)
[(rgb rgba) (apply make-color (map (cut / <> 255) (cdr x)))]
[(rgbf rgbaf) (apply make-color (cdr x))]
[else (errorf '->color "unknown color ~d" x)])]
[else (errorf '->color "unknown color ~d" x)]))