#pragma once #include typedef struct { uint8_t size; CRGB col[8]; } COLOR_PACK; const COLOR_PACK colorPack_Fire_Red PROGMEM = { 4, { CRGB::Red, CRGB::OrangeRed, CRGB::Yellow, CRGB::Black } }; const COLOR_PACK colorPack_Fire_Green PROGMEM = { 4, { CRGB::DarkGreen, CRGB::Green, CRGB::LightGreen, CRGB::Black } }; const COLOR_PACK colorPack_Fire_Blue PROGMEM = { 4, { CRGB::DarkBlue, CRGB::Blue, CRGB::LightBlue, CRGB::Black } }; const COLOR_PACK colorPack_Fire_Violet PROGMEM = { 4, { CRGB::Purple, CRGB::Blue, CRGB::Violet, CRGB::Black } }; // Fire (compacted: single PROGMEM array, removes duplicate size constants) const COLOR_PACK fireColorPacks[] PROGMEM = { colorPack_Fire_Red, colorPack_Fire_Green, colorPack_Fire_Blue, colorPack_Fire_Violet }; // Dual Color Packs const COLOR_PACK colorPack_RED_WHITE PROGMEM = { 2, { CRGB::Red, CRGB::White } }; const COLOR_PACK colorPack_ORANGE_WHITE PROGMEM = { 2, { CRGB::DarkOrange, CRGB::White } }; const COLOR_PACK colorPack_GREEN_WHITE PROGMEM = { 2, { CRGB::Green, CRGB::White } }; const COLOR_PACK colorPack_BLUE_WHITE PROGMEM = { 2, { CRGB::Blue, CRGB::White } }; const COLOR_PACK colorPack_MAGENTA_WHITE PROGMEM = { 2, { CRGB::Magenta, CRGB::White } }; const COLOR_PACK colorPack_PURPLE_WHITE PROGMEM = { 2, { CRGB::DarkViolet, CRGB::White } }; const COLOR_PACK colorPack_PURPLE_MAGENTA PROGMEM = { 2, { CRGB::DarkViolet, CRGB::Magenta } }; const COLOR_PACK colorPack_PURPLE_YELLOW PROGMEM = { 2, { CRGB::Purple, CRGB::Yellow } }; const COLOR_PACK colorPack_RED_YELLOW PROGMEM = { 2, { CRGB::Red, CRGB::Yellow } }; const COLOR_PACK colorPack_BLUE_YELLOW PROGMEM = { 2, { CRGB::Blue, CRGB::Yellow } }; const COLOR_PACK colorPack_GREEN_YELLOW PROGMEM = { 2, { CRGB::Green, CRGB::Yellow } }; const COLOR_PACK colorPack_BLUE_GREEN PROGMEM = { 2, { CRGB::Blue, CRGB::Green } }; const COLOR_PACK colorPack_BLUE_RED PROGMEM = { 2, { CRGB::Blue, CRGB::Red } }; // Additional complementary color pairs const COLOR_PACK colorPack_ORANGE_BLUE PROGMEM = { 2, { CRGB::DarkOrange, CRGB::Blue } }; const COLOR_PACK colorPack_RED_GREEN PROGMEM = { 2, { CRGB::Red, CRGB::Green } }; const COLOR_PACK colorPack_CYAN_RED PROGMEM = { 2, { CRGB::Cyan, CRGB::Red } }; // Warm/cool combinations const COLOR_PACK colorPack_ORANGE_CYAN PROGMEM = { 2, { CRGB::DarkOrange, CRGB::Cyan } }; const COLOR_PACK colorPack_MAGENTA_GREEN PROGMEM = { 2, { CRGB::Magenta, CRGB::Green } }; const COLOR_PACK colorPack_VIOLET_LIME PROGMEM = { 2, { CRGB::DarkViolet, CRGB::Lime } }; // Analogous combinations const COLOR_PACK colorPack_RED_ORANGE PROGMEM = { 2, { CRGB::Red, CRGB::DarkOrange } }; const COLOR_PACK colorPack_BLUE_PURPLE PROGMEM = { 2, { CRGB::Blue, CRGB::Purple } }; const COLOR_PACK colorPack_YELLOW_LIME PROGMEM = { 2, { CRGB::Yellow, CRGB::Lime } }; // Triadic combinations const COLOR_PACK colorPack_RED_CYAN PROGMEM = { 2, { CRGB::Red, CRGB::Cyan } }; const COLOR_PACK colorPack_YELLOW_MAGENTA PROGMEM = { 2, { CRGB::Yellow, CRGB::Magenta } }; const COLOR_PACK colorPack_GREEN_MAGENTA PROGMEM = { 2, { CRGB::Green, CRGB::Magenta } }; // 25 Dual Color Packs const COLOR_PACK double_colorPacks[] PROGMEM = { colorPack_RED_WHITE, colorPack_RED_YELLOW, colorPack_BLUE_WHITE, colorPack_PURPLE_WHITE, colorPack_MAGENTA_WHITE, colorPack_GREEN_WHITE, colorPack_ORANGE_WHITE, colorPack_PURPLE_MAGENTA, colorPack_GREEN_YELLOW, // 9 pack colorPack_CYAN_RED, colorPack_PURPLE_MAGENTA, colorPack_PURPLE_YELLOW, colorPack_BLUE_YELLOW, colorPack_BLUE_GREEN, colorPack_BLUE_RED, colorPack_ORANGE_BLUE, // 16 pack colorPack_RED_GREEN, colorPack_MAGENTA_GREEN, colorPack_ORANGE_CYAN, colorPack_VIOLET_LIME, colorPack_RED_ORANGE, colorPack_BLUE_PURPLE, colorPack_YELLOW_LIME, colorPack_RED_CYAN, colorPack_YELLOW_MAGENTA, colorPack_GREEN_MAGENTA }; // Sectors const COLOR_PACK colorPack_RAINBOW PROGMEM = { 7, { CRGB::Red, CRGB::DarkOrange, CRGB::LightYellow, CRGB::Green, CRGB::Blue, CRGB::DarkViolet, CRGB::MediumVioletRed } }; // Triple Color Packs, Common Flags const COLOR_PACK colorPack_RED_WHITE_BLUE PROGMEM = { 3, { CRGB::Red, CRGB::White, CRGB::Blue } }; const COLOR_PACK colorPack_RED_WHITE_GREEN PROGMEM = { 3, { CRGB::Red, CRGB::White, CRGB::Green } }; const COLOR_PACK colorPack_RED_YELLOW_BLUE PROGMEM = { 3, { CRGB::Red, CRGB::Yellow, CRGB::Blue } }; const COLOR_PACK colorPack_RED_ORANGE_YELLOW PROGMEM = { 3, { CRGB::Red, CRGB::DarkOrange, CRGB::Yellow } }; const COLOR_PACK colorPack_RED_YELLOW_GREEN PROGMEM = { 3, { CRGB::Red, CRGB::Yellow, CRGB::Green } }; const COLOR_PACK colorPack_RED_PURPLE_BLUE PROGMEM = { 3, { CRGB::Red, CRGB::Purple, CRGB::Blue } }; const COLOR_PACK colorPack_GREEN_WHITE_RED PROGMEM = { 3, { CRGB::Green, CRGB::White, CRGB::Red } }; const COLOR_PACK colorPack_GREEN_WHITE_ORANGE PROGMEM = { 3, { CRGB::Green, CRGB::White, CRGB::DarkOrange } }; const COLOR_PACK colorPack_GREEN_WHITE_BLUE PROGMEM = { 3, { CRGB::Green, CRGB::White, CRGB::Blue } }; const COLOR_PACK colorPack_BLUE_YELLOW_GREEN PROGMEM = { 3, { CRGB::Blue, CRGB::Yellow, CRGB::Green } }; const COLOR_PACK colorPack_BLUE_YELLOW_RED PROGMEM = { 3, { CRGB::Blue, CRGB::Yellow, CRGB::Red } }; // Additional triple color combinations const COLOR_PACK colorPack_MAGENTA_WHITE_CYAN PROGMEM = { 3, { CRGB::Magenta, CRGB::White, CRGB::Cyan } }; const COLOR_PACK colorPack_ORANGE_YELLOW_LIME PROGMEM = { 3, { CRGB::DarkOrange, CRGB::Yellow, CRGB::Lime } }; const COLOR_PACK colorPack_MAGENTA_YELLOW_CYAN PROGMEM = { 3, { CRGB::Magenta, CRGB::Yellow, CRGB::Cyan } }; const COLOR_PACK colorPack_LIME_CYAN_MAGENTA PROGMEM = { 3, { CRGB::Lime, CRGB::Cyan, CRGB::Magenta } }; // Warm tone combinations const COLOR_PACK colorPack_RED_ORANGE_PINK PROGMEM = { 3, { CRGB::Red, CRGB::DarkOrange, CRGB::Pink } }; const COLOR_PACK colorPack_YELLOW_ORANGE_RED PROGMEM = { 3, { CRGB::Yellow, CRGB::DarkOrange, CRGB::Red } }; const COLOR_PACK colorPack_PINK_PURPLE_MAGENTA PROGMEM = { 3, { CRGB::Pink, CRGB::Purple, CRGB::Magenta } }; // Cool tone combinations const COLOR_PACK colorPack_BLUE_CYAN_LIME PROGMEM = { 3, { CRGB::Blue, CRGB::Cyan, CRGB::Lime } }; const COLOR_PACK colorPack_PURPLE_BLUE_CYAN PROGMEM = { 3, { CRGB::Purple, CRGB::Blue, CRGB::Cyan } }; const COLOR_PACK colorPack_GREEN_CYAN_BLUE PROGMEM = { 3, { CRGB::Green, CRGB::Cyan, CRGB::Blue } }; // High contrast combinations const COLOR_PACK colorPack_RED_GREEN_BLUE PROGMEM = { 3, { CRGB::Red, CRGB::Green, CRGB::Blue } }; const COLOR_PACK colorPack_YELLOW_PURPLE_ORANGE PROGMEM = { 3, { CRGB::Yellow, CRGB::Purple, CRGB::DarkOrange } }; const COLOR_PACK colorPack_PINK_LIME_PURPLE PROGMEM = { 3, { CRGB::Pink, CRGB::Lime, CRGB::Purple } }; // 25 Triple Color Packs const COLOR_PACK tripple_colorPacks[] PROGMEM = { colorPack_RED_WHITE_BLUE, colorPack_RED_WHITE_GREEN, colorPack_GREEN_WHITE_ORANGE, colorPack_BLUE_YELLOW_GREEN, colorPack_RED_GREEN_BLUE, colorPack_MAGENTA_WHITE_CYAN, colorPack_YELLOW_ORANGE_RED, colorPack_BLUE_CYAN_LIME, colorPack_RED_YELLOW_BLUE, // 9 pack colorPack_RED_ORANGE_YELLOW, colorPack_RED_YELLOW_GREEN, colorPack_RED_PURPLE_BLUE, colorPack_GREEN_WHITE_RED, colorPack_GREEN_WHITE_BLUE, colorPack_BLUE_YELLOW_RED, colorPack_GREEN_CYAN_BLUE, // 16 pack colorPack_ORANGE_YELLOW_LIME, colorPack_MAGENTA_YELLOW_CYAN, colorPack_LIME_CYAN_MAGENTA, colorPack_RED_ORANGE_PINK, colorPack_PURPLE_BLUE_CYAN, colorPack_YELLOW_PURPLE_ORANGE, }; const COLOR_PACK colorPack_grad_blueish PROGMEM = { 3, { CRGB::Blue, CRGB::Cyan, CRGB::Green } }; const COLOR_PACK colorPack_grad_greenish PROGMEM = { 3, { CRGB::Green, CRGB::Lime, CRGB::Cyan } }; const COLOR_PACK colorPack_grad_redish PROGMEM = { 3, { CRGB::Red, CRGB::Magenta, CRGB::Pink } }; const COLOR_PACK colorPack_grad_violetish PROGMEM = { 3, { CRGB::Purple, CRGB::Magenta, CRGB::Violet } }; const COLOR_PACK colorPack_grad_yellowish PROGMEM = { 3, { CRGB::OrangeRed, CRGB::DarkOrange, CRGB::Yellow } }; const COLOR_PACK gradient_colorPack[] PROGMEM = { colorPack_grad_blueish, colorPack_grad_greenish, colorPack_grad_redish, colorPack_grad_violetish, colorPack_grad_yellowish }; // Single Colors const COLOR_PACK colorPack_Single_Red PROGMEM = { 1, { CRGB::Red } }; const COLOR_PACK colorPack_Single_Orange PROGMEM = { 1, { CRGB::OrangeRed } }; const COLOR_PACK colorPack_Single_Yellow PROGMEM = { 1, { CRGB::Yellow } }; const COLOR_PACK colorPack_Single_Green PROGMEM = { 1, { CRGB::Green } }; const COLOR_PACK colorPack_Single_Cyan PROGMEM = { 1, { CRGB::Cyan } }; const COLOR_PACK colorPack_Single_Blue PROGMEM = { 1, { CRGB::Blue } }; const COLOR_PACK colorPack_Single_Viloet PROGMEM = { 1, { CRGB::DarkViolet } }; const COLOR_PACK colorPack_Single_Magenta PROGMEM = { 1, { CRGB::Magenta } }; const COLOR_PACK colorPack_Single_White PROGMEM = { 1, { CRGB::White } }; // 8 Single Color Packs const COLOR_PACK single_colorPacks[] PROGMEM = { colorPack_Single_White, colorPack_Single_Red, colorPack_Single_Orange, colorPack_Single_Yellow, colorPack_Single_Green, colorPack_Single_Cyan, colorPack_Single_Blue, colorPack_Single_Magenta, }; // Dashes //const COLOR_PACK colorPack_RAINBOW_Dashes PROGMEM = { 14, { CRGB::Red, CRGB::Black, CRGB::OrangeRed, CRGB::Black, CRGB::Yellow, CRGB::Black, CRGB::Green, CRGB::Black, CRGB::Blue, CRGB::Black, CRGB::BlueViolet, CRGB::Black, CRGB::MediumVioletRed, CRGB::Black } }; const COLOR_PACK colorPack_RedBlack PROGMEM = { 2, { CRGB::Red, CRGB::Black } }; const COLOR_PACK colorPack_OrangeBlack PROGMEM = { 2, { CRGB::DarkOrange, CRGB::Black } }; const COLOR_PACK colorPack_YellowBlack PROGMEM = { 2, { CRGB::Yellow, CRGB::Black } }; const COLOR_PACK colorPack_GreenBlack PROGMEM = { 2, { CRGB::Green, CRGB::Black } }; const COLOR_PACK colorPack_CyanBlack PROGMEM = { 2, { CRGB::Cyan, CRGB::Black } }; const COLOR_PACK colorPack_BlueBlack PROGMEM = { 2, { CRGB::Blue, CRGB::Black } }; const COLOR_PACK colorPack_IndigoBlack PROGMEM = { 2, { CRGB::Indigo, CRGB::Black } }; const COLOR_PACK colorPack_VioletBlack PROGMEM = { 2, { CRGB::MediumVioletRed, CRGB::Black } }; const COLOR_PACK colorPack_WhiteBlack PROGMEM = { 2, { CRGB::White, CRGB::Black } }; const COLOR_PACK dashes_ColorPacks[] PROGMEM = { colorPack_RedBlack, colorPack_OrangeBlack, colorPack_YellowBlack, colorPack_GreenBlack, colorPack_BlueBlack, colorPack_IndigoBlack, colorPack_VioletBlack, colorPack_WhiteBlack }; void Create_Red_Yellow_Violet_Palette(CRGBPalette16& customPalette);