local lvgl = require("lvgl") local font = require("font") local background_color = "#ffffff" local background_muted = "#fafafa" local text_color = "#000000" local highlight_color = "#ce93d8" local icon_enabled_color = "#2c2c2c" local icon_disabled_color = "#999999" local theme_light = { base = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(0), text_font = font.fusion_12, }}, }, root = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = background_color, -- Root background color text_color = text_color }}, }, header = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = background_muted, }}, }, pop_up = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = background_muted, }}, }, button = { {lvgl.PART.MAIN, lvgl.Style { pad_left = 2, pad_right = 2, pad_top = 1, pad_bottom = 1, bg_color = background_color, image_recolor_opa = 180, image_recolor = highlight_color, radius = 5, }}, {lvgl.PART.MAIN | lvgl.STATE.FOCUSED, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = highlight_color, image_recolor_opa = 0, }}, }, listbutton = { {lvgl.PART.MAIN | lvgl.STATE.FOCUSED, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = highlight_color, }}, }, bar = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff }}, }, slider = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), bg_color = background_muted, radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff }}, {lvgl.PART.INDICATOR, lvgl.Style { radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff bg_color = highlight_color, }}, {lvgl.PART.KNOB, lvgl.Style { radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff pad_all = 2, bg_color = background_muted, shadow_width = 5, shadow_opa = lvgl.OPA(100) }}, {lvgl.PART.MAIN | lvgl.STATE.FOCUSED, lvgl.Style { bg_color = background_muted, }}, {lvgl.PART.KNOB | lvgl.STATE.FOCUSED, lvgl.Style { bg_color = highlight_color, }}, {lvgl.PART.INDICATOR | lvgl.STATE.CHECKED, lvgl.Style { bg_color = highlight_color, }}, }, switch = { {lvgl.PART.MAIN, lvgl.Style { bg_opa = lvgl.OPA(100), width = 28, height = 8, radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff bg_color = background_muted, border_color = highlight_color, }}, {lvgl.PART.INDICATOR, lvgl.Style { radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff bg_color = background_muted, }}, {lvgl.PART.INDICATOR | lvgl.STATE.CHECKED, lvgl.Style { bg_color = highlight_color, }}, {lvgl.PART.KNOB, lvgl.Style { radius = 32767, -- LV_RADIUS_CIRCLE = 0x7fff pad_all = 2, bg_opa = lvgl.OPA(100), bg_color = background_muted, }}, {lvgl.PART.KNOB | lvgl.STATE.FOCUSED, lvgl.Style { bg_color = highlight_color, }}, }, dropdown = { {lvgl.PART.MAIN, lvgl.Style{ radius = 2, pad_all = 2, border_width = 1, border_color = background_muted, border_side = 15, -- LV_BORDER_SIDE_FULL bg_color = background_color, }}, {lvgl.PART.MAIN | lvgl.STATE.FOCUSED, lvgl.Style { border_color = highlight_color, }}, }, dropdownlist = { {lvgl.PART.MAIN, lvgl.Style{ radius = 2, pad_all = 2, border_width = 1, border_color = highlight_color, bg_opa = lvgl.OPA(100), bg_color = background_color }}, {lvgl.PART.SELECTED | lvgl.STATE.CHECKED, lvgl.Style { bg_color = highlight_color, }}, }, database_indicator = { {lvgl.PART.MAIN, lvgl.Style { image_recolor_opa = 180, image_recolor = highlight_color, }}, }, settings_title = { {lvgl.PART.MAIN, lvgl.Style { pad_top = 2, pad_bottom = 4, text_font = font.fusion_10, text_color = highlight_color, }}, }, icon_disabled = { {lvgl.PART.MAIN, lvgl.Style { image_recolor_opa = 180, image_recolor = icon_disabled_color, }}, }, icon_enabled = { {lvgl.PART.MAIN, lvgl.Style { image_recolor_opa = 180, image_recolor = icon_enabled_color, }}, }, } return theme_light