Skip to content

Instantly share code, notes, and snippets.

@Shilo
Last active June 26, 2024 06:23
Show Gist options
  • Save Shilo/ad80095dd2b1cf962f315222398adc06 to your computer and use it in GitHub Desktop.
Save Shilo/ad80095dd2b1cf962f315222398adc06 to your computer and use it in GitHub Desktop.
Color utility methods. [Godot 4]
class_name ColorUtil extends Object
static func parse_html(rgba_or_preset: String, ignore_alpha: bool = false, default_color: Variant = null) -> Color:
var color: Variant = PRESET.get(rgba_or_preset.to_upper())
if color == null and Color.html_is_valid(rgba_or_preset):
color = Color.html(rgba_or_preset)
if color == null:
return default_color
if ignore_alpha:
color.a = 1
return color
static var PRESET: Dictionary = {
"ALICE_BLUE": Color.ALICE_BLUE,
"ANTIQUE_WHITE": Color.ANTIQUE_WHITE,
"AQUA": Color.AQUA,
"AQUAMARINE": Color.AQUAMARINE,
"AZURE": Color.AZURE,
"BEIGE": Color.BEIGE,
"BISQUE": Color.BISQUE,
"BLACK": Color.BLACK,
"BLANCHED_ALMOND": Color.BLANCHED_ALMOND,
"BLUE": Color.BLUE,
"BLUE_VIOLET": Color.BLUE_VIOLET,
"BROWN": Color.BROWN,
"BURLYWOOD": Color.BURLYWOOD,
"CADET_BLUE": Color.CADET_BLUE,
"CHARTREUSE": Color.CHARTREUSE,
"CHOCOLATE": Color.CHOCOLATE,
"CORAL": Color.CORAL,
"CORNFLOWER_BLUE": Color.CORNFLOWER_BLUE,
"CORNSILK": Color.CORNSILK,
"CRIMSON": Color.CRIMSON,
"CYAN": Color.CYAN,
"DARK_BLUE": Color.DARK_BLUE,
"DARK_CYAN": Color.DARK_CYAN,
"DARK_GOLDENROD": Color.DARK_GOLDENROD,
"DARK_GRAY": Color.DARK_GRAY,
"DARK_GREEN": Color.DARK_GREEN,
"DARK_KHAKI": Color.DARK_KHAKI,
"DARK_MAGENTA": Color.DARK_MAGENTA,
"DARK_OLIVE_GREEN": Color.DARK_OLIVE_GREEN,
"DARK_ORANGE": Color.DARK_ORANGE,
"DARK_ORCHID": Color.DARK_ORCHID,
"DARK_RED": Color.DARK_RED,
"DARK_SALMON": Color.DARK_SALMON,
"DARK_SEA_GREEN": Color.DARK_SEA_GREEN,
"DARK_SLATE_BLUE": Color.DARK_SLATE_BLUE,
"DARK_SLATE_GRAY": Color.DARK_SLATE_GRAY,
"DARK_TURQUOISE": Color.DARK_TURQUOISE,
"DARK_VIOLET": Color.DARK_VIOLET,
"DEEP_PINK": Color.DEEP_PINK,
"DEEP_SKY_BLUE": Color.DEEP_SKY_BLUE,
"DIM_GRAY": Color.DIM_GRAY,
"DODGER_BLUE": Color.DODGER_BLUE,
"FIREBRICK": Color.FIREBRICK,
"FLORAL_WHITE": Color.FLORAL_WHITE,
"FOREST_GREEN": Color.FOREST_GREEN,
"FUCHSIA": Color.FUCHSIA,
"GAINSBORO": Color.GAINSBORO,
"GHOST_WHITE": Color.GHOST_WHITE,
"GOLD": Color.GOLD,
"GOLDENROD": Color.GOLDENROD,
"GRAY": Color.GRAY,
"GREEN": Color.GREEN,
"GREEN_YELLOW": Color.GREEN_YELLOW,
"HONEYDEW": Color.HONEYDEW,
"HOT_PINK": Color.HOT_PINK,
"INDIAN_RED": Color.INDIAN_RED,
"INDIGO": Color.INDIGO,
"IVORY": Color.IVORY,
"KHAKI": Color.KHAKI,
"LAVENDER": Color.LAVENDER,
"LAVENDER_BLUSH": Color.LAVENDER_BLUSH,
"LAWN_GREEN": Color.LAWN_GREEN,
"LEMON_CHIFFON": Color.LEMON_CHIFFON,
"LIGHT_BLUE": Color.LIGHT_BLUE,
"LIGHT_CORAL": Color.LIGHT_CORAL,
"LIGHT_CYAN": Color.LIGHT_CYAN,
"LIGHT_GOLDENROD": Color.LIGHT_GOLDENROD,
"LIGHT_GRAY": Color.LIGHT_GRAY,
"LIGHT_GREEN": Color.LIGHT_GREEN,
"LIGHT_PINK": Color.LIGHT_PINK,
"LIGHT_SALMON": Color.LIGHT_SALMON,
"LIGHT_SEA_GREEN": Color.LIGHT_SEA_GREEN,
"LIGHT_SKY_BLUE": Color.LIGHT_SKY_BLUE,
"LIGHT_SLATE_GRAY": Color.LIGHT_SLATE_GRAY,
"LIGHT_STEEL_BLUE": Color.LIGHT_STEEL_BLUE,
"LIGHT_YELLOW": Color.LIGHT_YELLOW,
"LIME": Color.LIME,
"LIME_GREEN": Color.LIME_GREEN,
"LINEN": Color.LINEN,
"MAGENTA": Color.MAGENTA,
"MAROON": Color.MAROON,
"MEDIUM_AQUAMARINE": Color.MEDIUM_AQUAMARINE,
"MEDIUM_BLUE": Color.MEDIUM_BLUE,
"MEDIUM_ORCHID": Color.MEDIUM_ORCHID,
"MEDIUM_PURPLE": Color.MEDIUM_PURPLE,
"MEDIUM_SEA_GREEN": Color.MEDIUM_SEA_GREEN,
"MEDIUM_SLATE_BLUE": Color.MEDIUM_SLATE_BLUE,
"MEDIUM_SPRING_GREEN": Color.MEDIUM_SPRING_GREEN,
"MEDIUM_TURQUOISE": Color.MEDIUM_TURQUOISE,
"MEDIUM_VIOLET_RED": Color.MEDIUM_VIOLET_RED,
"MIDNIGHT_BLUE": Color.MIDNIGHT_BLUE,
"MINT_CREAM": Color.MINT_CREAM,
"MISTY_ROSE": Color.MISTY_ROSE,
"MOCCASIN": Color.MOCCASIN,
"NAVAJO_WHITE": Color.NAVAJO_WHITE,
"NAVY_BLUE": Color.NAVY_BLUE,
"OLD_LACE": Color.OLD_LACE,
"OLIVE": Color.OLIVE,
"OLIVE_DRAB": Color.OLIVE_DRAB,
"ORANGE": Color.ORANGE,
"ORANGE_RED": Color.ORANGE_RED,
"ORCHID": Color.ORCHID,
"PALE_GOLDENROD": Color.PALE_GOLDENROD,
"PALE_GREEN": Color.PALE_GREEN,
"PALE_TURQUOISE": Color.PALE_TURQUOISE,
"PALE_VIOLET_RED": Color.PALE_VIOLET_RED,
"PAPAYA_WHIP": Color.PAPAYA_WHIP,
"PEACH_PUFF": Color.PEACH_PUFF,
"PERU": Color.PERU,
"PINK": Color.PINK,
"PLUM": Color.PLUM,
"POWDER_BLUE": Color.POWDER_BLUE,
"PURPLE": Color.PURPLE,
"REBECCA_PURPLE": Color.REBECCA_PURPLE,
"RED": Color.RED,
"ROSY_BROWN": Color.ROSY_BROWN,
"ROYAL_BLUE": Color.ROYAL_BLUE,
"SADDLE_BROWN": Color.SADDLE_BROWN,
"SALMON": Color.SALMON,
"SANDY_BROWN": Color.SANDY_BROWN,
"SEA_GREEN": Color.SEA_GREEN,
"SEASHELL": Color.SEASHELL,
"SIENNA": Color.SIENNA,
"SILVER": Color.SILVER,
"SKY_BLUE": Color.SKY_BLUE,
"SLATE_BLUE": Color.SLATE_BLUE,
"SLATE_GRAY": Color.SLATE_GRAY,
"SNOW": Color.SNOW,
"SPRING_GREEN": Color.SPRING_GREEN,
"STEEL_BLUE": Color.STEEL_BLUE,
"TAN": Color.TAN,
"TEAL": Color.TEAL,
"THISTLE": Color.THISTLE,
"TOMATO": Color.TOMATO,
"TRANSPARENT": Color.TRANSPARENT,
"TURQUOISE": Color.TURQUOISE,
"VIOLET": Color.VIOLET,
"WEB_GRAY": Color.WEB_GRAY,
"WEB_GREEN": Color.WEB_GREEN,
"WEB_MAROON": Color.WEB_MAROON,
"WEB_PURPLE": Color.WEB_PURPLE,
"WHEAT": Color.WHEAT,
"WHITE": Color.WHITE,
"WHITE_SMOKE": Color.WHITE_SMOKE,
"YELLOW": Color.YELLOW,
"YELLOW_GREEN": Color.YELLOW_GREEN
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment