mirror of
https://github.com/meshtastic/firmware.git
synced 2026-04-16 05:07:13 -04:00
Theme: Creamsicle
This commit is contained in:
@@ -215,6 +215,34 @@ static const TFTThemeDef kThemes[] = {
|
||||
TFTPalette::White, // bodyFg
|
||||
false, // fullFrameInvert
|
||||
},
|
||||
|
||||
// ── Creamsicle (ThemeID::Creamsicle = 5) — light variant ─────────
|
||||
{
|
||||
ThemeID::Creamsicle, // id
|
||||
"Creamsicle", // name
|
||||
{
|
||||
{TFTPalette::CreamOrange, TFTPalette::Black}, // HeaderBackground
|
||||
{TFTPalette::CreamOrange, TFTPalette::White}, // HeaderTitle
|
||||
{TFTPalette::CreamOrange, TFTPalette::White}, // HeaderStatus
|
||||
{TFTPalette::DeepOrange, TFTPalette::Cream}, // SignalBars
|
||||
{TFTPalette::DeepOrange, TFTPalette::Cream}, // BatteryFill
|
||||
{TFTPalette::CreamOrange, TFTPalette::Cream}, // ConnectionIcon
|
||||
{TFTPalette::DeepOrange, TFTPalette::Cream}, // UtilizationFill
|
||||
{TFTPalette::Black, TFTPalette::CreamOrange}, // FavoriteNode
|
||||
{TFTPalette::CreamOrange, TFTPalette::Cream}, // ActionMenuBorder
|
||||
{TFTPalette::Black, TFTPalette::Cream}, // ActionMenuBody
|
||||
{TFTPalette::CreamOrange, TFTPalette::White}, // ActionMenuTitle
|
||||
{TFTPalette::Black, TFTPalette::White}, // FrameMono
|
||||
{TFTPalette::White, TFTPalette::CreamOrange}, // BootSplash
|
||||
{TFTPalette::Black, TFTPalette::CreamOrange}, // BodyYellow
|
||||
},
|
||||
TFTPalette::CreamOrange, // headerBg
|
||||
TFTPalette::White, // headerText
|
||||
TFTPalette::White, // headerStatus
|
||||
TFTPalette::Cream, // bodyBg
|
||||
TFTPalette::Black, // bodyFg
|
||||
true, // fullFrameInvert
|
||||
},
|
||||
};
|
||||
|
||||
static constexpr size_t kInternalThemeCount = sizeof(kThemes) / sizeof(kThemes[0]);
|
||||
@@ -388,6 +416,11 @@ void setTFTColorRole(TFTColorRole role, uint16_t onColor, uint16_t offColor)
|
||||
if (offColor == TFTPalette::Black)
|
||||
offColor = TFTPalette::Navy;
|
||||
break;
|
||||
case ThemeID::Creamsicle:
|
||||
// Orange-on-cream: high-contrast dark on orange.
|
||||
onColor = TFTPalette::Black;
|
||||
offColor = TFTPalette::CreamOrange;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -429,6 +462,18 @@ void setTFTColorRole(TFTColorRole role, uint16_t onColor, uint16_t offColor)
|
||||
if (offColor == TFTPalette::Black)
|
||||
offColor = TFTPalette::Navy;
|
||||
break;
|
||||
case ThemeID::Creamsicle:
|
||||
// Invert body colours for readability on cream frames.
|
||||
if (offColor == TFTPalette::Black) {
|
||||
offColor = TFTPalette::Cream;
|
||||
}
|
||||
if (onColor == TFTPalette::White) {
|
||||
onColor = TFTPalette::Black;
|
||||
}
|
||||
if (onColor == TFTPalette::Yellow) {
|
||||
onColor = TFTPalette::DeepOrange;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ constexpr uint32_t DefaultLight = 1;
|
||||
constexpr uint32_t Christmas = 2;
|
||||
constexpr uint32_t Pink = 3;
|
||||
constexpr uint32_t Blue = 4;
|
||||
constexpr uint32_t Creamsicle = 5;
|
||||
} // namespace ThemeID
|
||||
|
||||
// Per-role color pair stored in native (little-endian) RGB565 format.
|
||||
|
||||
@@ -46,5 +46,10 @@ constexpr uint16_t SkyBlue = rgb565(100, 180, 255);
|
||||
constexpr uint16_t Navy = rgb565(15, 15, 50);
|
||||
constexpr uint16_t DeepBlue = rgb565(30, 60, 120);
|
||||
|
||||
// Creamsicle theme colors (light variant)
|
||||
constexpr uint16_t CreamOrange = rgb565(255, 140, 50);
|
||||
constexpr uint16_t DeepOrange = rgb565(220, 100, 20);
|
||||
constexpr uint16_t Cream = rgb565(255, 248, 235);
|
||||
|
||||
} // namespace TFTPalette
|
||||
} // namespace graphics
|
||||
|
||||
Reference in New Issue
Block a user