From ef16ecbaa2c57c34286a21b73d3c8a1a2fec7777 Mon Sep 17 00:00:00 2001 From: forbes Date: Sat, 14 Feb 2026 13:03:37 -0600 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20viewport=20background=20gradient=20?= =?UTF-8?q?=E2=80=94=20Overlay0/Mantle=203-color=20gradient=20(#188)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change viewport background from 2-color Base→Crust gradient to 3-color Overlay0→Mantle→Overlay0 gradient for better visual depth. --- CatppuccinMocha/CatppuccinMocha.cfg | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CatppuccinMocha/CatppuccinMocha.cfg b/CatppuccinMocha/CatppuccinMocha.cfg index fc726cc..7144570 100644 --- a/CatppuccinMocha/CatppuccinMocha.cfg +++ b/CatppuccinMocha/CatppuccinMocha.cfg @@ -27,13 +27,13 @@ - - - - + + + + - + From 29ca89e5337428cc4e4a8a5336d3da6f5f78105d Mon Sep 17 00:00:00 2001 From: forbes-0023 Date: Mon, 16 Feb 2026 14:03:27 -0600 Subject: [PATCH 2/3] feat: add element to package.xml Declares min_create_version=0.1.0, load_priority=50, pure_python=true, and documents partdesign.body/feature context injection. --- package.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/package.xml b/package.xml index 4f29cd2..274a5e4 100644 --- a/package.xml +++ b/package.xml @@ -29,4 +29,15 @@ + + + 0.1.0 + 50 + true + + + + + + From 55be41e6972645e64c4fabba12bab5aafb420966 Mon Sep 17 00:00:00 2001 From: forbes-0023 Date: Tue, 17 Feb 2026 08:59:39 -0600 Subject: [PATCH 3/3] refactor: migrate to kindred-addon-sdk for theme tokens (#250) Replace hardcoded MOCHA dict with kindred_sdk.get_theme_tokens(). Add sdk dependency to package.xml element. --- package.xml | 3 ++ .../datum_viewprovider.cpython-313.pyc | Bin 0 -> 21471 bytes ztools/ztools/resources/icons.py | 33 +++--------------- ztools/ztools/resources/theme.py | 4 ++- 4 files changed, 10 insertions(+), 30 deletions(-) create mode 100644 ztools/ztools/commands/__pycache__/datum_viewprovider.cpython-313.pyc diff --git a/package.xml b/package.xml index 274a5e4..725bbe0 100644 --- a/package.xml +++ b/package.xml @@ -34,6 +34,9 @@ 0.1.0 50 true + + sdk + diff --git a/ztools/ztools/commands/__pycache__/datum_viewprovider.cpython-313.pyc b/ztools/ztools/commands/__pycache__/datum_viewprovider.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88de5fc4fa2061211c6acdab6d0921a2ee9343c9 GIT binary patch literal 21471 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 GK>j~59?2d6 literal 0 HcmV?d00001 diff --git a/ztools/ztools/resources/icons.py b/ztools/ztools/resources/icons.py index c62db92..a565330 100644 --- a/ztools/ztools/resources/icons.py +++ b/ztools/ztools/resources/icons.py @@ -1,35 +1,10 @@ # ztools/resources/icons.py # Catppuccin Mocha themed icons for ztools -# Catppuccin Mocha Palette -MOCHA = { - "rosewater": "#f5e0dc", - "flamingo": "#f2cdcd", - "pink": "#f5c2e7", - "mauve": "#cba6f7", - "red": "#f38ba8", - "maroon": "#eba0ac", - "peach": "#fab387", - "yellow": "#f9e2af", - "green": "#a6e3a1", - "teal": "#94e2d5", - "sky": "#89dceb", - "sapphire": "#74c7ec", - "blue": "#89b4fa", - "lavender": "#b4befe", - "text": "#cdd6f4", - "subtext1": "#bac2de", - "subtext0": "#a6adc8", - "overlay2": "#9399b2", - "overlay1": "#7f849c", - "overlay0": "#6c7086", - "surface2": "#585b70", - "surface1": "#45475a", - "surface0": "#313244", - "base": "#1e1e2e", - "mantle": "#181825", - "crust": "#11111b", -} +# Catppuccin Mocha Palette — sourced from kindred-addon-sdk +from kindred_sdk.theme import get_theme_tokens + +MOCHA = get_theme_tokens() def _svg_to_base64(svg_content: str) -> str: diff --git a/ztools/ztools/resources/theme.py b/ztools/ztools/resources/theme.py index 32d2692..f977874 100644 --- a/ztools/ztools/resources/theme.py +++ b/ztools/ztools/resources/theme.py @@ -8,7 +8,9 @@ # by Init.py at startup, making it available in: # Edit > Preferences > General > Stylesheet -from .icons import MOCHA +from kindred_sdk.theme import get_theme_tokens + +MOCHA = get_theme_tokens() # Convenience aliases for commonly used colors _base = MOCHA["base"]