Files
MeshCore-Solo/examples/companion_radio/ui-lvgl/Theme.h
T
JakubandClaude Opus 5.5 bf1e6fcaa0 feat(ui-lvgl): European fonts and phone-style keyboard
Fonts: Noto Sans generated with lv_font_conv (ui-lvgl/fonts/generate.sh,
OFL) replaces ASCII-only Montserrat: European Latin (Latin-1, Extended-A/B),
Greek, Cyrillic + supplement, typographic punctuation, currency, LVGL
symbols + globe; 12/14/16/20 px, clock 40 px digits only (RLE, so
LV_USE_FONT_COMPRESSED is on).

Keyboard (ui-lvgl/Keyboard.h): one layout per script (Latin QWERTY,
Cyrillic, Greek) picked by the same keyboard_main/alt_alphabet prefs as
ui-new, globe key to switch, hold a key for its variants in a popup above
it, one-shot shift, symbols page; compose limit counted in UTF-8 bytes.
First Settings screen (Keyboard: Main / Additional).

Long-press variants and UTF-8 case mapping move to ui-core/KeyboardData.h
and are shared with ui-new, whose Hold-Enter accents gain Romanian,
Turkish, Hungarian, Baltic and Icelandic letters (and ș/ț, Ukrainian /
Serbian letters now capitalise).

Verified on L2 hardware.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 00:08:15 +02:00

32 lines
1.4 KiB
C++

#pragma once
// Design tokens for ui-lvgl — the one place colours, spacing and type live.
// First colour take on the "Amber Trace" direction: amber on near-black.
namespace theme {
// Colours (0xRRGGBB)
static const uint32_t BG = 0x0B0B0D; // screen background
static const uint32_t SURFACE = 0x17171B; // cards, rows, bubbles (incoming)
static const uint32_t SURFACE_2 = 0x222228; // pressed / raised
static const uint32_t ACCENT = 0xFFB000; // amber: focus, badges, own bubbles
static const uint32_t ACCENT_DIM= 0x6B4A00; // own bubble fill
static const uint32_t TEXT = 0xF2EEE6;
static const uint32_t TEXT_MUTED= 0x9A958C;
static const uint32_t OK = 0x6FCF6F; // delivered / relayed
static const uint32_t FAIL = 0xE5534B; // not delivered
// Spacing (px)
static const int PAD = 8;
static const int GAP = 6;
static const int RADIUS = 10;
static const int STATUS_H = 22; // top status bar
static const int ROW_H = 44; // list row (touch target)
// Type -- Noto Sans, generated by fonts/generate.sh (declared in lv_conf.h).
// ui_font_40 holds digits / ':' / '-' only (clock).
#define THEME_FONT_SMALL (&ui_font_12)
#define THEME_FONT_BODY (&ui_font_14)
#define THEME_FONT_TITLE (&ui_font_16)
#define THEME_FONT_LARGE (&ui_font_20)
#define THEME_FONT_CLOCK (&ui_font_40)
}