#pragma once #include // The colour themes (issue #10): each a dark and a light set of the same roles, as RGB565. namespace roro::ui { struct Palette { uint16_t background, text; uint16_t muted; // secondary text uint16_t faint; // grid lines, what stays behind uint16_t bar; // the Status Bar's background uint16_t barMuted; // what is idle, on the bar uint16_t accent; // what is chosen, what is live: also the fill behind a selected row uint16_t onAccent; // text on an accent, warning or message fill uint16_t warning; uint16_t message; // someone wrote uint16_t good; // a Fix, the best of a set uint16_t red, yellow, violet; // to tell things apart (the constellations of the Sky view) }; constexpr int kThemeCount = 7; const char* themeName(int theme); // "roro9stack", "Catppuccin", "Dracula", ... const Palette& palette(int theme, bool light); // out of range: the first // What the 8-bit frame buffer shows for a colour, as 0xRRGGBB. uint32_t rgb888(uint16_t rgb565); } // namespace roro::ui