From f3ffdb9d6a0b7edc2dcf64195b2c8dc5b931d3c4 Mon Sep 17 00:00:00 2001 From: dez Date: Wed, 7 Feb 2024 14:17:46 +0100 Subject: [PATCH] apply color theme auto --- src/theme_ctk_auto.py | 146 ++++++++++++------------------------------ 1 file changed, 41 insertions(+), 105 deletions(-) diff --git a/src/theme_ctk_auto.py b/src/theme_ctk_auto.py index e47808d..ecbaf2d 100644 --- a/src/theme_ctk_auto.py +++ b/src/theme_ctk_auto.py @@ -49,18 +49,26 @@ def generate_theme_json(col_theme, is_dark): if is_dark: bg_color = ["gray17", "gray20"] text_color = ["gray10", "#DCE4EE"] - + disabled_text_col = ["gray20", "gray10"] else: bg_color = ["gray86", "gray20"] text_color = ["#111111", "#000000"] + disabled_text_col = ["#222222", "#111111"] + col_theme_luminance = 0.299 * col_theme[0] + 0.587 * col_theme[1] + 0.114 * col_theme[2] + col_theme_is_dark = col_theme_luminance < 128 + if col_theme_is_dark: + txt_col_theme = ["gray10", "#DCE4EE"] + else: + txt_col_theme = ["#111111", "#000000"] fg_color = col_theme - combo_box_col = col_theme bg_col_theme = adjust_brightness_based_on_luminance(col_theme, 20) disabled_col_theme = adjust_brightness_based_on_luminance(col_theme, -30) + border_col_theme = adjust_brightness_based_on_luminance(col_theme, -20) + col_theme = rgb_to_hex(col_theme) # Generate theme dictionary theme_data = { @@ -86,20 +94,11 @@ def generate_theme_json(col_theme, is_dark): "CTkButton": { "corner_radius": 6, "border_width": 0, - "fg_color": [ - "#3B8ED0", - "#1F6AA5" - ], + "fg_color": col_theme, "hover_color": bg_col_theme, - "border_color": [ - "#3E454A", - "#949A9F" - ], - "text_color": text_color, - "text_color_disabled": [ - "gray74", - "gray60" - ] + "border_color": border_col_theme, + "text_color": txt_col_theme, + "text_color_disabled": disabled_text_col }, "CTkLabel": { "corner_radius": 0, @@ -127,22 +126,10 @@ def generate_theme_json(col_theme, is_dark): "CTkCheckBox": { "corner_radius": 6, "border_width": 3, - "fg_color": [ - "#3B8ED0", - "#1F6AA5" - ], - "border_color": [ - "#3E454A", - "#949A9F" - ], - "hover_color": [ - "#3B8ED0", - "#1F6AA5" - ], - "checkmark_color": [ - "#DCE4EE", - "gray90" - ], + "fg_color": col_theme, + "border_color": border_col_theme, + "hover_color": bg_col_theme, + "checkmark_color": txt_col_theme, "text_color": text_color, "text_color_disabled": [ "gray60", @@ -153,22 +140,13 @@ def generate_theme_json(col_theme, is_dark): "corner_radius": 1000, "border_width": 3, "button_length": 0, - "fg_color": [ - "#939BA2", - "#4A4D50" - ], - "progress_color": [ - "#3B8ED0", - "#1F6AA5" - ], + "fg_color": border_col_theme, + "progress_color": col_theme, "button_color": [ "gray36", "#D5D9DE" ], - "button_hover_color": [ - "gray20", - "gray100" - ], + "button_hover_color": bg_col_theme, "text_color": text_color, "text_color_disabled": [ "gray60", @@ -179,14 +157,8 @@ def generate_theme_json(col_theme, is_dark): "corner_radius": 1000, "border_width_checked": 6, "border_width_unchecked": 3, - "fg_color": [ - "#3B8ED0", - "#1F6AA5" - ], - "border_color": [ - "#3E454A", - "#949A9F" - ], + "fg_color": col_theme, + "border_color": border_col_theme, "hover_color": bg_col_theme, "text_color": text_color, "text_color_disabled": [ @@ -201,10 +173,7 @@ def generate_theme_json(col_theme, is_dark): "#939BA2", "#4A4D50" ], - "progress_color": [ - "#3B8ED0", - "#1F6AA5" - ], + "progress_color": col_theme, "border_color": [ "gray", "gray" @@ -215,29 +184,17 @@ def generate_theme_json(col_theme, is_dark): "button_corner_radius": 1000, "border_width": 6, "button_length": 0, - "fg_color": [ - "#939BA2", - "#4A4D50" - ], + "fg_color": disabled_col_theme, "progress_color": [ "gray40", "#AAB0B5" ], - "button_color": [ - "#3B8ED0", - "#1F6AA5" - ], - "button_hover_color": [ - "#36719F", - "#144870" - ] + "button_color": col_theme, + "button_hover_color": bg_col_theme }, "CTkOptionMenu": { "corner_radius": 6, - "fg_color": [ - "#3B8ED0", - "#1F6AA5" - ], + "fg_color": col_theme, "button_color": col_theme, "button_hover_color": [ "#27577D", @@ -247,10 +204,7 @@ def generate_theme_json(col_theme, is_dark): "#DCE4EE", "#DCE4EE" ], - "text_color_disabled": [ - "gray74", - "gray60" - ] + "text_color_disabled": disabled_text_col }, "CTkComboBox": { "corner_radius": 6, @@ -297,14 +251,8 @@ def generate_theme_json(col_theme, is_dark): "#979DA2", "gray29" ], - "selected_color": [ - "#3B8ED0", - "#1F6AA5" - ], - "selected_hover_color": [ - "#36719F", - "#144870" - ], + "selected_color": col_theme, + "selected_hover_color": bg_col_theme, "unselected_color": [ "#979DA2", "gray29" @@ -317,10 +265,7 @@ def generate_theme_json(col_theme, is_dark): "#DCE4EE", "#DCE4EE" ], - "text_color_disabled": [ - "gray74", - "gray60" - ] + "text_color_disabled": disabled_text_col }, "CTkTextbox": { "corner_radius": 6, @@ -350,18 +295,9 @@ def generate_theme_json(col_theme, is_dark): ] }, "DropdownMenu": { - "fg_color": [ - "gray90", - "gray20" - ], - "hover_color": [ - "gray75", - "gray28" - ], - "text_color": [ - "gray10", - "gray90" - ] + "fg_color": bg_color, + "hover_color": bg_col_theme, + "text_color": txt_col_theme }, "CTkFont": { "macOS": { @@ -381,12 +317,12 @@ def generate_theme_json(col_theme, is_dark): } }, "provenance": { - "theme name": "Blue", - "theme author": "Tom Schimansky", - "date created": "Aug 17 2023 10:47:28", - "last modified by": "Clive Bostock", - "last modified": "Aug 17 2023 10:47:28", - "created with": "CTk Theme Builder v2.4.0", + "theme name": col_theme, + "theme author": "generated theme by spitfire launcher", + "date created": None, + "last modified by": None, + "last modified": None, + "created with": "https://spitfirebrowser.com/", "keystone colour": None, "harmony method": None, "harmony differential": None