0 | module CyBy.Draw.Internal.Color
  1 |
  2 | import Text.Molfile
  3 | import Text.SVG.Types
  4 |
  5 | %default total
  6 |
  7 | export
  8 | jmolColor : Elem -> SVGColor
  9 | jmolColor H  = RGB 0xFF 0xFF 0xFF
 10 | jmolColor He = RGB 0xD9 0xFF 0xFF
 11 | jmolColor Li = RGB 0xCC 0x80 0xFF
 12 | jmolColor Be = RGB 0xC2 0xFF 0x00
 13 | jmolColor B  = RGB 0xFF 0xB5 0xB5
 14 | jmolColor C  = RGB 0x90 0x90 0x90
 15 | jmolColor N  = RGB 0x30 0x50 0xF8
 16 | jmolColor O  = RGB 0xFF 0x0D 0x0D
 17 | jmolColor F  = RGB 0x90 0xE0 0x50
 18 | jmolColor Ne = RGB 0xB3 0xE3 0xF5
 19 | jmolColor Na = RGB 0xAB 0x5C 0xF2
 20 | jmolColor Mg = RGB 0x8A 0xFF 0x00
 21 | jmolColor Al = RGB 0xBF 0xA6 0xA6
 22 | jmolColor Si = RGB 0xF0 0xC8 0xA0
 23 | jmolColor P  = RGB 0xFF 0x80 0x00
 24 | jmolColor S  = RGB 0xFF 0xFF 0x30
 25 | jmolColor Cl = RGB 0x1F 0xF0 0x1F
 26 | jmolColor Ar = RGB 0x80 0xD1 0xE3
 27 | jmolColor K  = RGB 0x8F 0x40 0xD4
 28 | jmolColor Ca = RGB 0x3D 0xFF 0x00
 29 | jmolColor Sc = RGB 0xE6 0xE6 0xE6
 30 | jmolColor Ti = RGB 0xBF 0xC2 0xC7
 31 | jmolColor V  = RGB 0xA6 0xA6 0xAB
 32 | jmolColor Cr = RGB 0x8A 0x99 0xC7
 33 | jmolColor Mn = RGB 0x9C 0x7A 0xC7
 34 | jmolColor Fe = RGB 0xE0 0x66 0x33
 35 | jmolColor Co = RGB 0xF0 0x90 0xA0
 36 | jmolColor Ni = RGB 0x50 0xD0 0x50
 37 | jmolColor Cu = RGB 0xC8 0x80 0x33
 38 | jmolColor Zn = RGB 0x7D 0x80 0xB0
 39 | jmolColor Ga = RGB 0xC2 0x8F 0x8F
 40 | jmolColor Ge = RGB 0x66 0x8F 0x8F
 41 | jmolColor As = RGB 0xBD 0x80 0xE3
 42 | jmolColor Se = RGB 0xFF 0xA1 0x00
 43 | jmolColor Br = RGB 0xA6 0x29 0x29
 44 | jmolColor Kr = RGB 0x5C 0xB8 0xD1
 45 | jmolColor Rb = RGB 0x70 0x2E 0xB0
 46 | jmolColor Sr = RGB 0x00 0xFF 0x00
 47 | jmolColor Y  = RGB 0x94 0xFF 0xFF
 48 | jmolColor Zr = RGB 0x94 0xE0 0xE0
 49 | jmolColor Nb = RGB 0x73 0xC2 0xC9
 50 | jmolColor Mo = RGB 0x54 0xB5 0xB5
 51 | jmolColor Tc = RGB 0x3B 0x9E 0x9E
 52 | jmolColor Ru = RGB 0x24 0x8F 0x8F
 53 | jmolColor Rh = RGB 0x0A 0x7D 0x8C
 54 | jmolColor Pd = RGB 0x00 0x69 0x85
 55 | jmolColor Ag = RGB 0xC0 0xC0 0xC0
 56 | jmolColor Cd = RGB 0xFF 0xD9 0x8F
 57 | jmolColor In = RGB 0xA6 0x75 0x73
 58 | jmolColor Sn = RGB 0x66 0x80 0x80
 59 | jmolColor Sb = RGB 0x9E 0x63 0xB5
 60 | jmolColor Te = RGB 0xD4 0x7A 0x00
 61 | jmolColor I  = RGB 0x94 0x00 0x94
 62 | jmolColor Xe = RGB 0x42 0x9E 0xB0
 63 | jmolColor Cs = RGB 0x57 0x17 0x8F
 64 | jmolColor Ba = RGB 0x00 0xC9 0x00
 65 | jmolColor La = RGB 0x70 0xD4 0xFF
 66 | jmolColor Ce = RGB 0xFF 0xFF 0xC7
 67 | jmolColor Pr = RGB 0xD9 0xFF 0xC7
 68 | jmolColor Nd = RGB 0xC7 0xFF 0xC7
 69 | jmolColor Pm = RGB 0xA3 0xFF 0xC7
 70 | jmolColor Sm = RGB 0x8F 0xFF 0xC7
 71 | jmolColor Eu = RGB 0x61 0xFF 0xC7
 72 | jmolColor Gd = RGB 0x45 0xFF 0xC7
 73 | jmolColor Tb = RGB 0x30 0xFF 0xC7
 74 | jmolColor Dy = RGB 0x1F 0xFF 0xC7
 75 | jmolColor Ho = RGB 0x00 0xFF 0x9C
 76 | jmolColor Er = RGB 0x00 0xE6 0x75
 77 | jmolColor Tm = RGB 0x00 0xD4 0x52
 78 | jmolColor Yb = RGB 0x00 0xBF 0x38
 79 | jmolColor Lu = RGB 0x00 0xAB 0x24
 80 | jmolColor Hf = RGB 0x4D 0xC2 0xFF
 81 | jmolColor Ta = RGB 0x4D 0xA6 0xFF
 82 | jmolColor W  = RGB 0x21 0x94 0xD6
 83 | jmolColor Re = RGB 0x26 0x7D 0xAB
 84 | jmolColor Os = RGB 0x26 0x66 0x96
 85 | jmolColor Ir = RGB 0x17 0x54 0x87
 86 | jmolColor Pt = RGB 0xD0 0xD0 0xE0
 87 | jmolColor Au = RGB 0xFF 0xD1 0x23
 88 | jmolColor Hg = RGB 0xB8 0xB8 0xD0
 89 | jmolColor Tl = RGB 0xA6 0x54 0x4D
 90 | jmolColor Pb = RGB 0x57 0x59 0x61
 91 | jmolColor Bi = RGB 0x9E 0x4F 0xB5
 92 | jmolColor Po = RGB 0xAB 0x5C 0x00
 93 | jmolColor At = RGB 0x75 0x4F 0x45
 94 | jmolColor Rn = RGB 0x42 0x82 0x96
 95 | jmolColor Fr = RGB 0x42 0x00 0x66
 96 | jmolColor Ra = RGB 0x00 0x7D 0x00
 97 | jmolColor Ac = RGB 0x70 0xAB 0xFA
 98 | jmolColor Th = RGB 0x00 0xBA 0xFF
 99 | jmolColor Pa = RGB 0x00 0xA1 0xFF
100 | jmolColor U  = RGB 0x00 0x8F 0xFF
101 | jmolColor Np = RGB 0x00 0x80 0xFF
102 | jmolColor Pu = RGB 0x00 0x6B 0xFF
103 | jmolColor Am = RGB 0x54 0x5C 0xF2
104 | jmolColor Cm = RGB 0x78 0x5C 0xE3
105 | jmolColor Bk = RGB 0x8A 0x4F 0xE3
106 | jmolColor Cf = RGB 0xA1 0x36 0xD4
107 | jmolColor Es = RGB 0xB3 0x1F 0xD4
108 | jmolColor Fm = RGB 0xB3 0x1F 0xBA
109 | jmolColor Md = RGB 0xB3 0x0D 0xA6
110 | jmolColor No = RGB 0xBD 0x0D 0x87
111 | jmolColor Lr = RGB 0xC7 0x00 0x66
112 | jmolColor Rf = RGB 0xCC 0x00 0x59
113 | jmolColor Db = RGB 0xD1 0x00 0x4F
114 | jmolColor Sg = RGB 0xD9 0x00 0x45
115 | jmolColor Bh = RGB 0xE0 0x00 0x38
116 | jmolColor Hs = RGB 0xE6 0x00 0x2E
117 | jmolColor Mt = RGB 0xEB 0x00 0x26
118 | jmolColor Ds = RGB 0x00 0x00 0x00
119 | jmolColor Rg = RGB 0x00 0x00 0x00
120 | jmolColor Cn = RGB 0x00 0x00 0x00
121 | jmolColor Nh = RGB 0x00 0x00 0x00
122 | jmolColor Fl = RGB 0x00 0x00 0x00
123 | jmolColor Mc = RGB 0x00 0x00 0x00
124 | jmolColor Lv = RGB 0x00 0x00 0x00
125 | jmolColor Ts = RGB 0x00 0x00 0x00
126 | jmolColor Og = RGB 0x00 0x00 0x00
127 |
128 | export
129 | pymolColor : Elem -> SVGColor
130 | pymolColor H = RGB 0xE6 0xE6 0xE6
131 | pymolColor C = RGB 0x33 0xFF 0x33
132 | pymolColor N = RGB 0x33 0x33 0xFF
133 | pymolColor O = RGB 0xFF 0x4D 0x4D
134 | pymolColor F = RGB 0xB3 0xFF 0xFF
135 | pymolColor S = RGB 0xE6 0xC6 0x40
136 | pymolColor e = jmolColor e
137 |
138 | export
139 | cybyColor : Elem -> SVGColor
140 | cybyColor H = silver
141 | cybyColor C = dimgray
142 | cybyColor F = limegreen
143 | cybyColor S = RGB 0xE6 0xC6 0x40
144 | cybyColor e = jmolColor e
145 |
146 | -- Colors from CPK, ugly as they come
147 | -- Adpated H
148 | export
149 | cpkColor : Elem -> SVGColor
150 | cpkColor H  = silver -- cdk: white
151 | cpkColor He = RGB 0xFF 0xC0 0xCB
152 | cpkColor Li = RGB 0xB2 0x22 0x22
153 | cpkColor B  = RGB 0x00 0xFF 0x00
154 | cpkColor C  = RGB 0xC8 0xC8 0xC8
155 | cpkColor N  = RGB 0x8F 0x8F 0xFF
156 | cpkColor O  = RGB 0xF0 0x00 0x00
157 | cpkColor F  = RGB 0xDA 0xA5 0x20
158 | cpkColor Na = RGB 0x00 0x00 0xFF
159 | cpkColor Mg = RGB 0x22 0x8B 0x22
160 | cpkColor Al = RGB 0x80 0x80 0x90
161 | cpkColor Si = RGB 0xDA 0xA5 0x20
162 | cpkColor P  = RGB 0xFF 0xA5 0x00
163 | cpkColor S  = RGB 0xFF 0xC8 0x32
164 | cpkColor Cl = RGB 0x00 0xFF 0x00
165 | cpkColor Ca = RGB 0x80 0x80 0x90
166 | cpkColor Ti = RGB 0x80 0x80 0x90
167 | cpkColor Cr = RGB 0x80 0x80 0x90
168 | cpkColor Mn = RGB 0x80 0x80 0x90
169 | cpkColor Fe = RGB 0xFF 0xA5 0x00
170 | cpkColor Ni = RGB 0xA5 0x2A 0x2A
171 | cpkColor Cu = RGB 0xA5 0x2A 0x2A
172 | cpkColor Zn = RGB 0xA5 0x2A 0x2A
173 | cpkColor Br = RGB 0xA5 0x2A 0x2A
174 | cpkColor Ag = RGB 0x80 0x80 0x90
175 | cpkColor I  = RGB 0xA0 0x20 0xF0
176 | cpkColor Ba = RGB 0xFF 0xA5 0x00
177 | cpkColor Au = RGB 0xDA 0xA5 0x20
178 | cpkColor _  = RGB 0xFF 0x14 0x93
179 |
180 | -- Colors as defined in CDKAtomColors
181 | -- Adapted Color for H and S
182 | export 
183 | cdkColor : Elem -> SVGColor
184 | cdkColor H  = silver -- cdk: white
185 | cdkColor C  = black
186 | cdkColor N  = blue
187 | cdkColor O  = red
188 | cdkColor P  = green
189 | cdkColor S  = gold -- cdk: yellow
190 | cdkColor Cl = magenta
191 | cdkColor _  = RGB 0x48 0x48 0x48
192 |
193 | -- Coloring of important Elements
194 | -- The colors are:
195 | -- - H:  lightgrey (RGB 0x90 0x90 0x90)
196 | -- - C:  black 
197 | -- - N:  blue (RGB 0x0b 0x53 0x94)
198 | -- - O:  red (RGB 0xcc 0x00 0x00)
199 | -- - P:  brown (RGB 0xb4 0x5f 0x06)
200 | -- - S:  yellow (RGB 0xe5 0xae 0x06) 
201 | -- - Cl: green 
202 | export 
203 | basicColors : Elem -> SVGColor
204 | basicColors H  = RGB 0x90 0x90 0x90
205 | basicColors C  = black
206 | basicColors N  = RGB 0x0b 0x53 0x94
207 | basicColors O  = RGB 0xcc 0x00 0x00
208 | basicColors P  = RGB 0xb4 0x5f 0x06
209 | basicColors S  = RGB 0xe5 0xae 0x06  
210 | basicColors Cl = green 
211 | basicColors _  = RGB 0x48 0x48 0x48
212 |
213 | -- Colored PSE groups
214 | -- Addtionally to the specific coloring of important elements, the elements are 
215 | -- colored according to the group they are in. 
216 | -- The colors are: 
217 | -- - alkali metals:         dark pink (RGB 0xa6 0x4d 0x79)
218 | -- - alkaline earth metals: pink (RGB 0xc2 0x7b 0xa0)
219 | -- - transition metals:     purple (RGB 0x9c 0x7a 0xc7)
220 | -- - metals:                turquoise (RGB 0x42 0x9e 0xb0)
221 | -- - metalloids:            blue (RGB 0x0b 0x53 0x94)
222 | -- - nonmetals:             coloring of significnat elemets see basicColors
223 | -- - halogens:              light green (RGB 0x0a 0x72 0x48)
224 | -- - noble gases:           green (RGB 0x06 0x55 0x35)
225 | export
226 | groupColors : Elem -> SVGColor
227 | groupColors H  = RGB 0x90 0x90 0x90
228 | groupColors C  = black
229 | groupColors N  = RGB 0x0b 0x53 0x94
230 | groupColors O  = RGB 0xcc 0x00 0x00
231 | groupColors P  = RGB 0xb4 0x5f 0x06
232 | groupColors S  = gold
233 | groupColors Cl = RGB 0x3a 0x8e 0x6c 
234 | groupColors He = RGB 0x06 0x55 0x35
235 | groupColors Ne = RGB 0x06 0x55 0x35
236 | groupColors Ar = RGB 0x06 0x55 0x35
237 | groupColors Kr = RGB 0x06 0x55 0x35
238 | groupColors Xe = RGB 0x06 0x55 0x35
239 | groupColors Rn = RGB 0x06 0x55 0x35
240 | groupColors Og = RGB 0x06 0x55 0x35
241 | groupColors F  = RGB 0x0a 0x72 0x48
242 | groupColors Br = RGB 0x0a 0x72 0x48
243 | groupColors I  = RGB 0x0a 0x72 0x48
244 | groupColors At = RGB 0x0a 0x72 0x48
245 | groupColors Ts = RGB 0x0a 0x72 0x48
246 | groupColors B  = RGB 0x0b 0x53 0x94
247 | groupColors Si = RGB 0x0b 0x53 0x94
248 | groupColors Ge = RGB 0x0b 0x53 0x94
249 | groupColors As = RGB 0x0b 0x53 0x94
250 | groupColors Sb = RGB 0x0b 0x53 0x94
251 | groupColors Se = RGB 0x0b 0x53 0x94
252 | groupColors Te = RGB 0x0b 0x53 0x94
253 | groupColors Po = RGB 0x0b 0x53 0x94
254 | groupColors Al = RGB 0x42 0x9e 0xb0
255 | groupColors Ga = RGB 0x42 0x9e 0xb0
256 | groupColors In = RGB 0x42 0x9e 0xb0
257 | groupColors Tl = RGB 0x42 0x9e 0xb0
258 | groupColors Nh = RGB 0x42 0x9e 0xb0
259 | groupColors Sn = RGB 0x42 0x9e 0xb0
260 | groupColors Pb = RGB 0x42 0x9e 0xb0
261 | groupColors Fl = RGB 0x42 0x9e 0xb0
262 | groupColors Bi = RGB 0x42 0x9e 0xb0
263 | groupColors Mc = RGB 0x42 0x9e 0xb0
264 | groupColors Lv = RGB 0x42 0x9e 0xb0
265 | groupColors Be = RGB 0xc2 0x7b 0xa0 
266 | groupColors Ca = RGB 0xc2 0x7b 0xa0 
267 | groupColors Mg = RGB 0xc2 0x7b 0xa0
268 | groupColors Sr = RGB 0xc2 0x7b 0xa0 
269 | groupColors Ba = RGB 0xc2 0x7b 0xa0
270 | groupColors Ra = RGB 0xc2 0x7b 0xa0
271 | groupColors Li = RGB 0xa6 0x4d 0x79 
272 | groupColors Na = RGB 0xa6 0x4d 0x79 
273 | groupColors K  = RGB 0xa6 0x4d 0x79
274 | groupColors Rb = RGB 0xa6 0x4d 0x79 
275 | groupColors Cs = RGB 0xa6 0x4d 0x79
276 | groupColors Fr = RGB 0xa6 0x4d 0x79
277 | groupColors Ce = RGB 0x72 0x70 0x74
278 | groupColors Pr = RGB 0x72 0x70 0x74
279 | groupColors Nd = RGB 0x72 0x70 0x74
280 | groupColors Pm = RGB 0x72 0x70 0x74
281 | groupColors Sm = RGB 0x72 0x70 0x74
282 | groupColors Eu = RGB 0x72 0x70 0x74
283 | groupColors Gd = RGB 0x72 0x70 0x74
284 | groupColors Tb = RGB 0x72 0x70 0x74
285 | groupColors Dy = RGB 0x72 0x70 0x74
286 | groupColors Ho = RGB 0x72 0x70 0x74
287 | groupColors Er = RGB 0x72 0x70 0x74
288 | groupColors Tm = RGB 0x72 0x70 0x74
289 | groupColors Yb = RGB 0x72 0x70 0x74
290 | groupColors Lu = RGB 0x72 0x70 0x74
291 | groupColors Th = RGB 0x48 0x48 0x48
292 | groupColors Pa = RGB 0x48 0x48 0x48
293 | groupColors U  = RGB 0x48 0x48 0x48 
294 | groupColors Np = RGB 0x48 0x48 0x48
295 | groupColors Pu = RGB 0x48 0x48 0x48
296 | groupColors Am = RGB 0x48 0x48 0x48
297 | groupColors Cm = RGB 0x48 0x48 0x48
298 | groupColors Bk = RGB 0x48 0x48 0x48
299 | groupColors Cf = RGB 0x48 0x48 0x48
300 | groupColors Es = RGB 0x48 0x48 0x48
301 | groupColors Fm = RGB 0x48 0x48 0x48
302 | groupColors Md = RGB 0x48 0x48 0x48
303 | groupColors No = RGB 0x48 0x48 0x48
304 | groupColors Lr = RGB 0x48 0x48 0x48
305 | groupColors _  = RGB 0x9c 0x7a 0xc7
306 |