Last active
November 2, 2023 20:50
-
-
Save 32teeth/0370d50edc7bf0736b871456d3806f0c to your computer and use it in GitHub Desktop.
Convert HTML Colors to ANSI esc colors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
hexToAnsiColors() { | |
local color_name="$1" | |
local hex="$2" | |
hex=${hex#"#"} | |
r=$(printf '0x%0.2s' "$hex") | |
g=$(printf '0x%0.2s' ${hex#??}) | |
b=$(printf '0x%0.2s' ${hex#????}) | |
local ansi_code="$(( (r<75?0:(r-35)/40)*6*6 + | |
(g<75?0:(g-35)/40)*6 + | |
(b<75?0:(b-35)/40) + 16 ))" | |
local escape_color=$(printf '\e[38;5;%dm' $ansi_code) | |
eval "${color_name}='${escape_color}'" | |
} | |
# reds | |
reds=( | |
"IndianRed #CD5C5C" | |
"LightCoral #F08080" | |
"Salmon #FA8072" | |
"DarkSalmon #E9967A" | |
"LightSalmon #FFA07A" | |
"Crimson #DC143C" | |
"Red #FF0000" | |
"FireBrick #B22222" | |
"DarkRed #8B0000" | |
) | |
# pinks | |
pinks=( | |
"Pink #FFC0CB" | |
"LightPink #FFB6C1" | |
"HotPink #FF69B4" | |
"DeepPink #FF1493" | |
"MediumVioletRed #C71585" | |
"PaleVioletRed #DB7093" | |
) | |
# oranges | |
oranges=( | |
"LightSalmon #FFA07A" | |
"Coral #FF7F50" | |
"Tomato #FF6347" | |
"OrangeRed #FF4500" | |
"DarkOrange #FF8C00" | |
"Orange #FFA500" | |
) | |
# yellows | |
yellows=( | |
"Gold #FFD700" | |
"Yellow #FFFF00" | |
"LightYellow #FFFFE0" | |
"LemonChiffon #FFFACD" | |
"LightGoldenrodYellow #FAFAD2" | |
"PapayaWhip #FFEFD5" | |
"Moccasin #FFE4B5" | |
"PeachPuff #FFDAB9" | |
"PaleGoldenrod #EEE8AA" | |
"Khaki #F0E68C" | |
"DarkKhaki #BDB76B" | |
) | |
# purples | |
purples=( | |
"Lavender #E6E6FA" | |
"Thistle #D8BFD8" | |
"Plum #DDA0DD" | |
"Violet #EE82EE" | |
"Orchid #DA70D6" | |
"Fuchsia #FF00FF" | |
"Magenta #FF00FF" | |
"MediumOrchid #BA55D3" | |
"MediumPurple #9370DB" | |
"RebeccaPurple #663399" | |
"BlueViolet #8A2BE2" | |
"DarkViolet #9400D3" | |
"DarkOrchid #9932CC" | |
"DarkMagenta #8B008B" | |
"Purple #800080" | |
"Indigo #4B0082" | |
"SlateBlue #6A5ACD" | |
"DarkSlateBlue #483D8B" | |
"MediumSlateBlue #7B68EE" | |
) | |
# greens | |
greens=( | |
"GreenYellow #ADFF2F" | |
"Chartreuse #7FFF00" | |
"LawnGreen #7CFC00" | |
"Lime #00FF00" | |
"LimeGreen #32CD32" | |
"PaleGreen #98FB98" | |
"LightGreen #90EE90" | |
"MediumSpringGreen #00FA9A" | |
"SpringGreen #00FF7F" | |
"MediumSeaGreen #3CB371" | |
"SeaGreen #2E8B57" | |
"ForestGreen #228B22" | |
"Green #008000" | |
"DarkGreen #006400" | |
"YellowGreen #9ACD32" | |
"OliveDrab #6B8E23" | |
"Olive #808000" | |
"DarkOliveGreen #556B2F" | |
"MediumAquamarine #66CDAA" | |
"DarkSeaGreen #8FBC8B" | |
"LightSeaGreen #20B2AA" | |
"DarkCyan #008B8B" | |
"Teal #008080" | |
) | |
# blues | |
blues_and_cyans=( | |
"Aqua #00FFFF" | |
"Cyan #00FFFF" | |
"LightCyan #E0FFFF" | |
"PaleTurquoise #AFEEEE" | |
"Aquamarine #7FFFD4" | |
"Turquoise #40E0D0" | |
"MediumTurquoise #48D1CC" | |
"DarkTurquoise #00CED1" | |
"CadetBlue #5F9EA0" | |
"SteelBlue #4682B4" | |
"LightSteelBlue #B0C4DE" | |
"PowderBlue #B0E0E6" | |
"LightBlue #ADD8E6" | |
"SkyBlue #87CEEB" | |
"LightSkyBlue #87CEFA" | |
"DeepSkyBlue #00BFFF" | |
"DodgerBlue #1E90FF" | |
"CornflowerBlue #6495ED" | |
"MediumSlateBlue #7B68EE" | |
"RoyalBlue #4169E1" | |
"Blue #0000FF" | |
"MediumBlue #0000CD" | |
"DarkBlue #00008B" | |
"Navy #000080" | |
"MidnightBlue #191970" | |
) | |
# browns | |
browns=( | |
"Cornsilk #FFF8DC" | |
"BlanchedAlmond #FFEBCD" | |
"Bisque #FFE4C4" | |
"NavajoWhite #FFDEAD" | |
"Wheat #F5DEB3" | |
"BurlyWood #DEB887" | |
"Tan #D2B48C" | |
"RosyBrown #BC8F8F" | |
"SandyBrown #F4A460" | |
"Goldenrod #DAA520" | |
"DarkGoldenrod #B8860B" | |
"Peru #CD853F" | |
"Chocolate #D2691E" | |
"SaddleBrown #8B4513" | |
"Sienna #A0522D" | |
"Brown #A52A2A" | |
"Maroon #800000" | |
) | |
# whites | |
whites=( | |
"White #FFFFFF" | |
"Snow #FFFAFA" | |
"HoneyDew #F0FFF0" | |
"MintCream #F5FFFA" | |
"Azure #F0FFFF" | |
"AliceBlue #F0F8FF" | |
"GhostWhite #F8F8FF" | |
"WhiteSmoke #F5F5F5" | |
"SeaShell #FFF5EE" | |
"Beige #F5F5DC" | |
"OldLace #FDF5E6" | |
"FloralWhite #FFFAF0" | |
"Ivory #FFFFF0" | |
"AntiqueWhite #FAEBD7" | |
"Linen #FAF0E6" | |
"LavenderBlush #FFF0F5" | |
"MistyRose #FFE4E1" | |
) | |
# grays | |
grays=( | |
"Gainsboro #DCDCDC" | |
"LightGray #D3D3D3" | |
"Silver #C0C0C0" | |
"DarkGray #A9A9A9" | |
"Gray #808080" | |
"DimGray #696969" | |
"LightSlateGray #778899" | |
"SlateGray #708090" | |
"DarkSlateGray #2F4F4F" | |
"Black #000000" | |
) | |
colors=( | |
"${reds[@]}" | |
"${pinks[@]}" | |
"${oranges[@]}" | |
"${yellows[@]}" | |
"${purples[@]}" | |
"${greens[@]}" | |
"${blues_and_cyans[@]}" | |
"${browns[@]}" | |
"${whites[@]}" | |
"${grays[@]}" | |
) | |
for color_data in "${colors[@]}"; do | |
IFS=$' ' read -r color_name hex_code <<< "$color_data" | |
hexToAnsiColors "$color_name" "$hex_code" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hex color to ANSI conversion
This file contains a list of HTML color in hex format. Which are then converted to their ANSI escape equivalent.
List of color names and value are from here https://htmlcolorcodes.com/color-names/
Usage
source ./colors.sh
echo -e ${FireBrick}N${nc} Fire Brick Red.${nc}