feat(l2): light theme

Settings > Display > Theme: Dark / Light (NVS mc_ui/light). The colour
tokens are set once before anything is built, so a change restarts the
device. Text on an accent fill is the new ON_ACCENT (it was BG, white
in the light theme); each accent has a deeper hand-picked light variant
that reads on white and takes white text. The map's empty-tile fill and
grid and the areas' outlines follow the theme too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-10-14 22:55:47 +02:00
co-authored by Claude Opus 5.5
parent e5a55c3b1f
commit 76e96f7eaa
15 changed files with 82 additions and 50 deletions
@@ -39,8 +39,8 @@ static void styleCell(int i, bool sel) {
const bool hl = i == s_hl;
lv_obj_set_style_bg_color(s_cells[i], lv_color_hex(hl ? theme::ACCENT : theme::SURFACE), 0);
lv_obj_set_style_border_width(s_cells[i], sel ? 2 : 0, 0);
setTextColor(lv_obj_get_child(s_cells[i], 0), hl ? theme::BG : theme::TEXT);
setTextColor(lv_obj_get_child(s_cells[i], 1), hl ? theme::BG : theme::TEXT_MUTED);
setTextColor(lv_obj_get_child(s_cells[i], 0), hl ? theme::ON_ACCENT : theme::TEXT);
setTextColor(lv_obj_get_child(s_cells[i], 1), hl ? theme::ON_ACCENT : theme::TEXT_MUTED);
}
// Moves the "sounding" light to note `idx` (-1: none).