Skip to content

Instantly share code, notes, and snippets.

@viridia
Created March 6, 2024 19:47
Show Gist options
  • Save viridia/0143965eaa7805145a115b85b04b79fd to your computer and use it in GitHub Desktop.
Save viridia/0143965eaa7805145a115b85b04b79fd to your computer and use it in GitHub Desktop.
Python script to generate bevy_color tables
X11_COLORS = '''
alice_blue #F0F8FF 240 248 255
antique_white #FAEBD7 250 235 215
aqua #00FFFF 0 255 255
aquamarine #7FFFD4 127 255 212
azure #F0FFFF 240 255 255
beige #F5F5DC 245 245 220
bisque #FFE4C4 255 228 196
black #000000 0 0 0
blanched_almond #FFEBCD 255 235 205
blue #0000FF 0 0 255
blue_violet #8A2BE2 138 43 226
brown #A52A2A 165 42 42
burlywood #DEB887 222 184 135
cadet_blue #5F9EA0 95 158 160
chartreuse #7FFF00 127 255 0
chocolate #D2691E 210 105 30
coral #FF7F50 255 127 80
cornflower_blue #6495ED 100 149 237
cornsilk #FFF8DC 255 248 220
crimson #DC143C 220 20 60
cyan #00FFFF 0 255 255
dark_blue #00008B 0 0 139
dark_cyan #008B8B 0 139 139
dark_goldenrod #B8860B 184 134 11
dark_gray #A9A9A9 169 169 169
dark_green #006400 0 100 0
dark_grey #A9A9A9 169 169 169
dark_khaki #BDB76B 189 183 107
dark_magenta #8B008B 139 0 139
dark_olivegreen #556B2F 85 107 47
dark_orange #FF8C00 255 140 0
dark_orchid #9932CC 153 50 204
dark_red #8B0000 139 0 0
dark_salmon #E9967A 233 150 122
dark_sea_green #8FBC8F 143 188 143
dark_slate_blue #483D8B 72 61 139
dark_slate_gray #2F4F4F 47 79 79
dark_slate_grey #2F4F4F 47 79 79
dark_turquoise #00CED1 0 206 209
dark_violet #9400D3 148 0 211
deep_pink #FF1493 255 20 147
deep_sky_blue #00BFFF 0 191 255
dim_gray #696969 105 105 105
dim_grey #696969 105 105 105
dodger_blue #1E90FF 30 144 255
fire_brick #B22222 178 34 34
floral_white #FFFAF0 255 250 240
forest_green #228B22 34 139 34
fuchsia #FF00FF 255 0 255
gainsboro #DCDCDC 220 220 220
ghost_white #F8F8FF 248 248 255
gold #FFD700 255 215 0
goldenrod #DAA520 218 165 32
gray #808080 128 128 128
green #008000 0 128 0
green_yellow #ADFF2F 173 255 47
grey #808080 128 128 128
honeydew #F0FFF0 240 255 240
hot_pink #FF69B4 255 105 180
indian_red #CD5C5C 205 92 92
indigo #4B0082 75 0 130
ivory #FFFFF0 255 255 240
khaki #F0E68C 240 230 140
lavender #E6E6FA 230 230 250
lavender_blush #FFF0F5 255 240 245
lawn_green #7CFC00 124 252 0
lemon_chiffon #FFFACD 255 250 205
light_blue #ADD8E6 173 216 230
light_coral #F08080 240 128 128
light_cyan #E0FFFF 224 255 255
light_goldenrod_yellow #FAFAD2 250 250 210
light_gray #D3D3D3 211 211 211
light_green #90EE90 144 238 144
light_grey #D3D3D3 211 211 211
light_pink #FFB6C1 255 182 193
light_salmon #FFA07A 255 160 122
light_sea_green #20B2AA 32 178 170
light_sky_blue #87CEFA 135 206 250
light_slate_gray #778899 119 136 153
light_slate_grey #778899 119 136 153
light_steel_blue #B0C4DE 176 196 222
light_yellow #FFFFE0 255 255 224
lime #00FF00 0 255 0
limegreen #32CD32 50 205 50
linen #FAF0E6 250 240 230
magenta #FF00FF 255 0 255
maroon #800000 128 0 0
medium_aquamarine #66CDAA 102 205 170
medium_blue #0000CD 0 0 205
medium_orchid #BA55D3 186 85 211
medium_purple #9370DB 147 112 219
medium_sea_green #3CB371 60 179 113
medium_slate_blue #7B68EE 123 104 238
medium_spring_green #00FA9A 0 250 154
medium_turquoise #48D1CC 72 209 204
medium_violet_red #C71585 199 21 133
midnight_blue #191970 25 25 112
mint_cream #F5FFFA 245 255 250
misty_rose #FFE4E1 255 228 225
moccasin #FFE4B5 255 228 181
navajo_white #FFDEAD 255 222 173
navy #000080 0 0 128
old_lace #FDF5E6 253 245 230
olive #808000 128 128 0
olive_drab #6B8E23 107 142 35
orange #FFA500 255 165 0
orange_red #FF4500 255 69 0
orchid #DA70D6 218 112 214
pale_goldenrod #EEE8AA 238 232 170
pale_green #98FB98 152 251 152
pale_turquoise #AFEEEE 175 238 238
pale_violetred #DB7093 219 112 147
papaya_whip #FFEFD5 255 239 213
peachpuff #FFDAB9 255 218 185
peru #CD853F 205 133 63
pink #FFC0CB 255 192 203
plum #DDA0DD 221 160 221
powder_blue #B0E0E6 176 224 230
purple #800080 128 0 128
rebecca_purple #663399 102 51 153
red #FF0000 255 0 0
rosy_brown #BC8F8F 188 143 143
royal_blue #4169E1 65 105 225
saddle_brown #8B4513 139 69 19
salmon #FA8072 250 128 114
sandy_brown #F4A460 244 164 96
sea_green #2E8B57 46 139 87
seashell #FFF5EE 255 245 238
sienna #A0522D 160 82 45
silver #C0C0C0 192 192 192
sky_blue #87CEEB 135 206 235
slate_blue #6A5ACD 106 90 205
slate_gray #708090 112 128 144
slate_grey #708090 112 128 144
snow #FFFAFA 255 250 250
spring_green #00FF7F 0 255 127
steel_blue #4682B4 70 130 180
tan #D2B48C 210 180 140
teal #008080 0 128 128
thistle #D8BFD8 216 191 216
tomato #FF6347 255 99 71
turquoise #40E0D0 64 224 208
violet #EE82EE 238 130 238
wheat #F5DEB3 245 222 179
white #FFFFFF 255 255 255
white_smoke #F5F5F5 245 245 245
yellow #FFFF00 255 255 0
yellow_green #9ACD32 154 205 50
'''
print('''//! [Extended colors from the CSS4 specification](https://en.wikipedia.org/wiki/Web_colors#Extended_colors),
//! Alsow known as X11 colors, which were standardized in HTML 4.0.
// This file generated by gen_x11_colors.py. Do not edit directly.
use crate::Srgba;
''')
for line in X11_COLORS.split('\n'):
if line:
name, hex, r, g, b = line.split(' ')
r = round((int(r) / 255) * 1000) / 1000
g = round((int(g) / 255) * 1000) / 1000
b = round((int(b) / 255) * 1000) / 1000
print(f'/// <div style="background-color:rgb({r * 100}%, {g * 100}%, {b * 100}%); width: 10px; padding: 10px; border: 1px solid;"></div>')
print(f'pub const {name.upper()}: Srgba = Srgba::new({r}, {g}, {b}, 1.0);')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment