Private
Public Access
0
0

feat(theme): finalize semantic color lift and fix light theme UI elements

This commit is contained in:
2026-06-05 00:29:27 -04:00
parent 7735b6cba7
commit 4041782776
15 changed files with 661 additions and 701 deletions
+2 -7
View File
@@ -16,7 +16,7 @@ paths = [
"C:/projects/manual_slop/manual_slop.toml", "C:/projects/manual_slop/manual_slop.toml",
"C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml", "C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml",
] ]
active = "C:/projects/gencpp/.ai/gencpp_sloppy.toml" active = "C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml"
[gui] [gui]
separate_message_panel = true separate_message_panel = true
@@ -62,7 +62,7 @@ Diagnostics = false
"Undo/Redo History" = false "Undo/Redo History" = false
[theme] [theme]
palette = "gruvbox_dark" palette = "solarized_dark"
font_path = "C:/projects/manual_slop/assets/fonts/MapleMono-Regular.ttf" font_path = "C:/projects/manual_slop/assets/fonts/MapleMono-Regular.ttf"
font_size = 20.0 font_size = 20.0
scale = 1.0199999809265137 scale = 1.0199999809265137
@@ -89,11 +89,6 @@ brightness = 0.6899999976158142
contrast = 0.8600000143051147 contrast = 0.8600000143051147
gamma = 0.7699999809265137 gamma = 0.7699999809265137
[theme.tone_mapping."10x Dark"]
brightness = 0.75
contrast = 1.0
gamma = 1.0
[mma] [mma]
max_workers = 4 max_workers = 4
+39 -39
View File
@@ -44,20 +44,20 @@ Collapsed=0
DockId=0x00000010,0 DockId=0x00000010,0
[Window][Message] [Window][Message]
Pos=1216,28 Pos=1448,29
Size=1603,1709 Size=1465,1840
Collapsed=0 Collapsed=0
DockId=0x00000006,0 DockId=0x00000006,1
[Window][Response] [Window][Response]
Pos=0,28 Pos=0,29
Size=1214,1709 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,5 DockId=0x00000010,5
[Window][Tool Calls] [Window][Tool Calls]
Pos=1216,28 Pos=1448,29
Size=1603,1709 Size=1465,1840
Collapsed=0 Collapsed=0
DockId=0x00000006,3 DockId=0x00000006,3
@@ -77,7 +77,7 @@ DockId=0xAFC85805,2
[Window][Theme] [Window][Theme]
Pos=0,29 Pos=0,29
Size=737,1195 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,1 DockId=0x00000010,1
@@ -105,26 +105,26 @@ Collapsed=0
DockId=0x0000000D,0 DockId=0x0000000D,0
[Window][Discussion Hub] [Window][Discussion Hub]
Pos=739,29 Pos=1448,29
Size=974,1195 Size=1465,1840
Collapsed=0 Collapsed=0
DockId=0x00000006,0 DockId=0x00000006,0
[Window][Operations Hub] [Window][Operations Hub]
Pos=0,28 Pos=0,29
Size=1214,1709 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,4 DockId=0x00000010,4
[Window][Files & Media] [Window][Files & Media]
Pos=0,29 Pos=0,29
Size=737,1195 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,2 DockId=0x00000010,2
[Window][AI Settings] [Window][AI Settings]
Pos=0,29 Pos=0,29
Size=737,1195 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,3 DockId=0x00000010,3
@@ -140,8 +140,8 @@ Collapsed=0
DockId=0x00000006,2 DockId=0x00000006,2
[Window][Log Management] [Window][Log Management]
Pos=1216,28 Pos=1448,29
Size=1603,1709 Size=1465,1840
Collapsed=0 Collapsed=0
DockId=0x00000006,2 DockId=0x00000006,2
@@ -337,12 +337,12 @@ Size=517,560
Collapsed=0 Collapsed=0
[Window][Tool Preset Manager] [Window][Tool Preset Manager]
Pos=1331,462 Pos=327,115
Size=1658,1320 Size=1658,1320
Collapsed=0 Collapsed=0
[Window][Persona Editor] [Window][Persona Editor]
Pos=782,139 Pos=437,19
Size=1790,1516 Size=1790,1516
Collapsed=0 Collapsed=0
@@ -410,7 +410,7 @@ DockId=0x00000006,1
[Window][Project Settings] [Window][Project Settings]
Pos=0,29 Pos=0,29
Size=737,1195 Size=1446,1840
Collapsed=0 Collapsed=0
DockId=0x00000010,0 DockId=0x00000010,0
@@ -537,7 +537,7 @@ Collapsed=0
[Window][Project Stale] [Window][Project Stale]
Pos=10,50 Pos=10,50
Size=169,184 Size=186,192
Collapsed=0 Collapsed=0
[Table][0xFB6E3870,4] [Table][0xFB6E3870,4]
@@ -587,11 +587,11 @@ Column 4 Weight=1.0000
Column 5 Width=50 Column 5 Width=50
[Table][0x3751446B,4] [Table][0x3751446B,4]
RefScale=20 RefScale=21
Column 0 Width=60 Column 0 Width=62
Column 1 Width=89 Column 1 Width=93
Column 2 Weight=1.0000 Column 2 Weight=1.0000
Column 3 Width=228 Column 3 Width=239
[Table][0x2C515046,4] [Table][0x2C515046,4]
RefScale=20 RefScale=20
@@ -625,8 +625,8 @@ Column 1 Width=150
Column 2 Weight=1.0000 Column 2 Weight=1.0000
[Table][0xD0277E63,2] [Table][0xD0277E63,2]
RefScale=20 RefScale=21
Column 0 Width=300 Column 0 Width=315
Column 1 Weight=1.0000 Column 1 Weight=1.0000
[Table][0x3AAF84D5,2] [Table][0x3AAF84D5,2]
@@ -635,13 +635,13 @@ Column 0 Width=150
Column 1 Weight=1.0000 Column 1 Weight=1.0000
[Table][0x8D8494AB,2] [Table][0x8D8494AB,2]
RefScale=20 RefScale=21
Column 0 Width=162 Column 0 Width=170
Column 1 Weight=1.0000 Column 1 Weight=1.0000
[Table][0x2C261E6E,2] [Table][0x2C261E6E,2]
RefScale=20 RefScale=21
Column 0 Width=162 Column 0 Width=170
Column 1 Weight=1.0000 Column 1 Weight=1.0000
[Table][0x9CB1E6FD,2] [Table][0x9CB1E6FD,2]
@@ -650,15 +650,15 @@ Column 0 Width=233
Column 1 Weight=1.0000 Column 1 Weight=1.0000
[Table][0x1DA1F4A6,2] [Table][0x1DA1F4A6,2]
RefScale=20 RefScale=21
Column 0 Weight=1.0000 Column 0 Weight=1.0000
Column 1 Width=509 Column 1 Width=534
[Table][0x5B562C13,3] [Table][0x5B562C13,3]
RefScale=20 RefScale=21
Column 0 Weight=1.0000 Column 0 Weight=1.0000
Column 1 Width=100 Column 1 Width=104
Column 2 Width=185 Column 2 Width=194
[Table][0x17AC2E33,4] [Table][0x17AC2E33,4]
RefScale=20 RefScale=20
@@ -829,13 +829,13 @@ Column 4 Weight=1.0000
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02 DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,29 Size=1713,1195 Split=X DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,29 Size=2913,1840 Split=X
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2 DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=737,1681 Split=Y Selected=0x3F1379AF DockNode ID=0x00000005 Parent=0x0000000B SizeRef=1446,1681 Split=Y Selected=0x3F1379AF
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x8CA2375C DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x3F1379AF
DockNode ID=0x00000011 Parent=0x00000005 SizeRef=983,184 Selected=0x432BAE4E DockNode ID=0x00000011 Parent=0x00000005 SizeRef=983,184 Selected=0x432BAE4E
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=974,1681 Selected=0x6F2B5B04 DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1465,1681 Selected=0x2C0206CE
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6 DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=488,1183 Selected=0x3AEC3498 DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=488,1183 Selected=0x3AEC3498
-35
View File
@@ -1,35 +0,0 @@
import os
import tomllib
from pathlib import Path
def compact_toml(path: Path):
with open(path, "rb") as f:
data = tomllib.load(f)
lines = []
# Write top level fields
if "name" in data: lines.append(f'name = "{data["name"]}"')
if "syntax_palette" in data: lines.append(f'syntax_palette = "{data["syntax_palette"]}"')
if "description" in data: lines.append(f'description = "{data["description"]}"')
lines.append("")
# Write colors table
if "colors" in data:
lines.append("[colors]")
colors = data["colors"]
# Find max key length for alignment
max_key = max(len(k) for k in colors.keys()) if colors else 0
# Sort keys to keep it predictable
for k in sorted(colors.keys()):
v = colors[k]
# Format as compact array [R, G, B]
val_str = f"[{v[0]:3}, {v[1]:3}, {v[2]:3}]"
lines.append(f"{k:<{max_key}} = {val_str}")
path.write_text("\n".join(lines) + "\n", encoding="utf-8")
print(f"Compacted {path}")
if __name__ == "__main__":
for f in Path("themes").glob("*.toml"):
compact_toml(f)
-108
View File
@@ -1,108 +0,0 @@
import re
from pathlib import Path
# Mapping regex -> replacement
# Note: we use theme.get_color("semantic", alpha=...)
REPLACEMENTS = [
# status_error
(r'imgui\.ImVec4\(1\.0, 0\.0, 0\.0, 0\.2\)', 'theme.get_color("status_error", alpha=0.2)'),
(r'imgui\.ImVec4\(1, 0, 0, 1\)', 'theme.get_color("status_error")'),
(r'imgui\.ImVec4\(1, 0\.3, 0\.3, ([\d\.]+)\)', r'theme.get_color("status_error", alpha=\1)'),
(r'imgui\.ImVec4\(1, 0\.3, 0\.3, 1\)', 'theme.get_color("status_error")'),
(r'imgui\.ImVec4\(1, 0\.4, 0\.4, 1\)', 'theme.get_color("status_error")'),
(r'vec4\(255, 100, 100\)', 'theme.get_color("status_error")'),
(r'vec4\(255, 72, 64, ([\d\.]+)\)', r'theme.get_color("status_error", alpha=\1)'),
(r'vec4\(255, 72, 64\)', 'theme.get_color("status_error")'),
(r'vec4\(255, 77, 77\)', 'theme.get_color("status_error")'),
(r'vec4\(230, 51, 51\)', 'theme.get_color("status_error")'),
(r'vec4\(240, 80, 80\)', 'theme.get_color("status_error")'),
(r'vec4\(255, 120, 120\)', 'theme.get_color("status_error")'),
(r'vec4\(255, 50, 50, ([\d\.]+)\)', r'theme.get_color("status_error", alpha=\1)'),
(r'vec4\(255, 100, 100, ([\d\.]+)\)', r'theme.get_color("status_error", alpha=\1)'),
# status_warning
(r'imgui\.ImVec4\(1\.0, 0\.85, 0\.2, 0\.15\)', 'theme.get_color("status_warning", alpha=0.15)'),
(r'imgui\.ImVec4\(1\.0, 0\.85, 0\.2, 1\.0\)', 'theme.get_color("status_warning")'),
(r'imgui\.ImVec4\(1, 0\.5, 0, 1\)', 'theme.get_color("status_warning")'),
(r'imgui\.ImVec4\(1, 1, 0, 1\)', 'theme.get_color("status_warning")'),
(r'imgui\.ImVec4\(1\.0, 1\.0, 0\.0, 1\.0\)', 'theme.get_color("status_warning")'),
(r'imgui\.ImVec4\(1\.0, 0\.5, 0\.0, 1\.0\)', 'theme.get_color("status_warning")'),
(r'imgui\.ImVec4\(1\.0, 0\.3, 0\.0, 1\.0\)', 'theme.get_color("status_warning")'),
(r'vec4\(255, 152, 48\)', 'theme.get_color("status_warning")'),
(r'vec4\(255, 200, 100\)', 'theme.get_color("status_warning")'),
(r'vec4\(200, 200, 100\)', 'theme.get_color("status_warning")'),
(r'vec4\(255, 230, 77\)', 'theme.get_color("status_warning")'),
(r'vec4\(255, 255, 100\)', 'theme.get_color("status_warning")'),
(r'vec4\(240, 200, 80\)', 'theme.get_color("status_warning")'),
(r'vec4\(255, 150, 50\)', 'theme.get_color("status_warning")'),
(r'vec4\(200, 180, 100\)', 'theme.get_color("status_warning")'),
# status_success
(r'vec4\(80, 255, 80\)', 'theme.get_color("status_success")'),
(r'vec4\(80, 255, 80, ([\d\.]+)\)', r'theme.get_color("status_success", alpha=\1)'),
(r'imgui\.ImVec4\(0, 1, 0, 1\)', 'theme.get_color("status_success")'),
(r'imgui\.ImVec4\(0\.2, 0\.9, 0\.2, 1\)', 'theme.get_color("status_success")'),
(r'imgui\.ImVec4\(0\.2, 0\.8, 0\.2, 1\.0\)', 'theme.get_color("status_success")'),
(r'imgui\.ImVec4\(0\.39, 1\.0, 0\.39, ([\d\.]+)\)', r'theme.get_color("status_success", alpha=\1)'),
(r'imgui\.ImVec4\(0\.3, 0\.8, 0\.3, 1\)', 'theme.get_color("status_success")'),
(r'vec4\(100, 255, 100\)', 'theme.get_color("status_success")'),
(r'vec4\(120, 220, 120\)', 'theme.get_color("status_success")'),
(r'vec4\(0, 255, 0, ([\d\.]+)\)', r'theme.get_color("status_success", alpha=\1)'),
(r'vec4\(51, 230, 51\)', 'theme.get_color("status_success")'),
# status_info
(r'imgui\.ImVec4\(0, 1, 1, 1\)', 'theme.get_color("status_info")'),
(r'imgui\.ImVec4\(0\.3, 0\.8, 1, 1\)', 'theme.get_color("status_info")'),
(r'imgui\.ImVec4\(0\.4, 0\.6, 0\.7, 1\.0\)', 'theme.get_color("status_info")'),
(r'vec4\(77, 178, 255\)', 'theme.get_color("status_info")'),
(r'vec4\(100, 150, 180\)', 'theme.get_color("status_info")'),
# text_disabled
(r'imgui\.ImVec4\(0\.7, 0\.7, 0\.7, 1\)', 'theme.get_color("text_disabled")'),
(r'vec4\(180, 180, 180\)', 'theme.get_color("text_disabled")'),
(r'vec4\(160, 160, 160\)', 'theme.get_color("text_disabled")'),
(r'vec4\(200, 220, 160\)', 'theme.get_color("text_disabled")'),
# bubble backgrounds
(r'imgui\.ImVec4\(0\.15, 0\.14, 0\.10, 0\.7\)', 'theme.get_color("bubble_vendor", alpha=0.7)'),
(r'vec4\(50, 40, 20\)', 'theme.get_color("bubble_vendor")'),
# Slices
(r'vec4\(255, 165, 0, 0\.2\)', 'theme.get_color("slice_manual", alpha=0.2)'),
(r'vec4\(0, 255, 0, 0\.15\)', 'theme.get_color("slice_auto", alpha=0.15)'),
(r'vec4\(100, 100, 255, 0\.3\)', 'theme.get_color("slice_selection", alpha=0.3)'),
(r'imgui\.ImVec4\(1\.0, 0\.65, 0, 0\.2\)', 'theme.get_color("slice_manual", alpha=0.2)'),
(r'imgui\.ImVec4\(0, 1\.0, 0, 0\.1\)', 'theme.get_color("slice_auto", alpha=0.1)'),
(r'imgui\.ImVec4\(0\.4, 0\.4, 1\.0, 0\.3\)', 'theme.get_color("slice_selection", alpha=0.3)'),
(r'imgui\.ImVec4\(0, 1\.0, 0, 0\.15\)', 'theme.get_color("slice_auto", alpha=0.15)'),
(r'imgui\.ImVec4\(0, 0, 1\.0, 0\.15\)', 'theme.get_color("slice_selection", alpha=0.15)'),
(r'imgui\.ImVec4\(1\.0, 1\.0, 0, 0\.2\)', 'theme.get_color("status_warning", alpha=0.2)'),
]
def apply_lift(path: Path):
content = path.read_text(encoding="utf-8")
original = content
for pattern, replacement in REPLACEMENTS:
content = re.sub(pattern, replacement, content)
# Specialized replacements
# MMA status block
content = re.sub(r'if app\.mma_status == "idle": status_col = imgui\.ImVec4\(0\.7, 0\.7, 0\.7, 1\)',
'if app.mma_status == "idle": status_col = theme.get_color("text_disabled")', content)
content = re.sub(r'elif app\.mma_status == "running": status_col = vec4\(80, 255, 80\) if is_nerv else imgui\.ImVec4\(1, 1, 0, 1\)',
'elif app.mma_status == "running": status_col = theme.get_color("status_warning")', content)
content = re.sub(r'elif app\.mma_status == "done": status_col = imgui\.ImVec4\(0, 1, 0, 1\)',
'elif app.mma_status == "done": status_col = theme.get_color("status_success")', content)
content = re.sub(r'elif app\.mma_status == "error": status_col = vec4\(255, 72, 64\) if is_nerv else imgui\.ImVec4\(1, 0, 0, 1\)',
'elif app.mma_status == "error": status_col = theme.get_color("status_error")', content)
content = re.sub(r'elif app\.mma_status == "paused": status_col = imgui\.ImVec4\(1, 0\.5, 0, 1\)',
'elif app.mma_status == "paused": status_col = theme.get_color("status_warning")', content)
if content != original:
path.write_text(content, encoding="utf-8")
print(f"Lifted colors in {path}")
if __name__ == "__main__":
apply_lift(Path("src/gui_2.py"))
-82
View File
@@ -1,82 +0,0 @@
import os
import tomllib
import tomli_w
from pathlib import Path
# Get all keys from ThemePalette defaults
from src.theme_models import ThemePalette
default_palette = ThemePalette()
ALL_KEYS = list(default_palette.to_dict().keys())
DARK_SEMANTIC = {
"status_success": [80, 255, 80],
"status_warning": [255, 152, 48],
"status_error": [255, 72, 64],
"status_info": [0, 255, 255],
"bubble_user": [30, 45, 75],
"bubble_ai": [35, 65, 45],
"bubble_vendor": [65, 55, 30],
"bubble_system": [25, 25, 25],
"slice_manual": [255, 165, 0],
"slice_auto": [0, 255, 0],
"slice_selection": [100, 100, 255],
"diff_added": [51, 230, 51],
"diff_removed": [230, 51, 51],
"diff_header": [77, 178, 255],
}
LIGHT_SEMANTIC = {
"status_success": [40, 180, 40],
"status_warning": [200, 140, 0],
"status_error": [200, 40, 40],
"status_info": [40, 100, 200],
"bubble_user": [220, 230, 255],
"bubble_ai": [220, 255, 220],
"bubble_vendor": [255, 240, 200],
"bubble_system": [240, 240, 240],
"slice_manual": [255, 200, 0],
"slice_auto": [80, 255, 80],
"slice_selection": [180, 180, 255],
"diff_added": [40, 180, 40],
"diff_removed": [200, 40, 40],
"diff_header": [40, 100, 200],
}
def standardize_theme(path: Path):
with open(path, "rb") as f:
data = tomllib.load(f)
name = data.get("name", path.stem)
syntax = data.get("syntax_palette", "dark")
colors = data.get("colors", {})
is_light = "light" in name.lower() or syntax == "light"
semantic = LIGHT_SEMANTIC if is_light else DARK_SEMANTIC
# Merge semantic
for k, v in semantic.items():
if k not in colors:
colors[k] = v
# Ensure all keys are present (optional, but good for completeness)
# for k in ALL_KEYS:
# if k not in colors:
# # We use defaults from ThemePalette anyway, so no need to bloat
# pass
new_data = {
"name": name,
"syntax_palette": syntax,
"description": data.get("description", ""),
"colors": colors
}
with open(path, "wb") as f:
tomli_w.dump(new_data, f)
print(f"Standardized {path}")
if __name__ == "__main__":
themes_dir = Path("themes")
for f in themes_dir.glob("*.toml"):
standardize_theme(f)
+3 -3
View File
@@ -1510,8 +1510,8 @@ def render_cache_panel(app: App) -> None:
imgui.text(f"Age: {age_str}") imgui.text(f"Age: {age_str}")
imgui.text(f"TTL: {remaining_str} ({ttl_pct:.0f}%)") imgui.text(f"TTL: {remaining_str} ({ttl_pct:.0f}%)")
color = theme.get_color("status_success") color = theme.get_color("status_success")
if ttl_pct < 20: color = imgui.ImVec4(1.0, 0.2, 0.2, 1.0) if ttl_pct < 20: color = theme.get_color("status_error")
elif ttl_pct < 50: color = imgui.ImVec4(1.0, 0.8, 0.0, 1.0) elif ttl_pct < 50: color = theme.get_color("status_warning")
imgui.push_style_color(imgui.Col_.plot_histogram, color) imgui.push_style_color(imgui.Col_.plot_histogram, color)
imgui.progress_bar(ttl_pct / 100.0, imgui.ImVec2(-1, 0), f"{ttl_pct:.0f}%") imgui.progress_bar(ttl_pct / 100.0, imgui.ImVec2(-1, 0), f"{ttl_pct:.0f}%")
imgui.pop_style_color() imgui.pop_style_color()
@@ -1519,7 +1519,7 @@ def render_cache_panel(app: App) -> None:
app.controller.clear_cache() app.controller.clear_cache()
app._cache_cleared_timestamp = time.time() app._cache_cleared_timestamp = time.time()
if hasattr(app, '_cache_cleared_timestamp') and time.time() - app._cache_cleared_timestamp < 5: if hasattr(app, '_cache_cleared_timestamp') and time.time() - app._cache_cleared_timestamp < 5:
imgui.text_colored(imgui.ImVec4(0.2, 1.0, 0.2, 1.0), "Cache cleared - will rebuild on next request") imgui.text_colored(theme.get_color("status_success"), "Cache cleared - will rebuild on next request")
if app.perf_profiling_enabled: app.perf_monitor.end_component("_render_cache_panel") if app.perf_profiling_enabled: app.perf_monitor.end_component("_render_cache_panel")
def render_tool_analytics_panel(app: App) -> None: def render_tool_analytics_panel(app: App) -> None:
+9
View File
@@ -320,6 +320,15 @@ class MarkdownRenderer:
editor = ed.TextEditor() editor = ed.TextEditor()
editor.set_read_only_enabled(True) editor.set_read_only_enabled(True)
editor.set_show_line_numbers_enabled(True) editor.set_show_line_numbers_enabled(True)
# Explicitly set palette on instance to be sure
from src import theme_2
p_name = theme_2.get_syntax_palette_for_theme(theme_2.get_current_palette())
if hasattr(ed.TextEditor, "PaletteId"):
p_id = getattr(ed.TextEditor.PaletteId, p_name, None)
if p_id is not None:
editor.set_palette(p_id)
self._editor_cache[cache_key] = editor self._editor_cache[cache_key] = editor
self._editor_lang_cache[cache_key] = None self._editor_lang_cache[cache_key] = None
+76 -64
View File
@@ -3,67 +3,79 @@ syntax_palette = "dark"
description = "10x Dark Theme" description = "10x Dark Theme"
[colors] [colors]
border = [ 60, 55, 50] border = [ 60, 55, 50]
border_shadow = [ 0, 0, 0] border_shadow = [ 0, 0, 0]
bubble_ai = [ 35, 65, 45] bubble_ai = [ 35, 65, 45]
bubble_system = [ 25, 25, 25] bubble_system = [ 25, 25, 25]
bubble_user = [ 30, 45, 75] bubble_user = [ 30, 45, 75]
bubble_vendor = [ 65, 55, 30] bubble_vendor = [ 65, 55, 30]
button = [ 83, 76, 60] button = [ 83, 76, 60]
button_active = [115, 90, 70] button_active = [115, 90, 70]
button_hovered = [126, 78, 14] button_hovered = [126, 78, 14]
check_mark = [194, 164, 74] check_mark = [194, 164, 74]
child_bg = [ 30, 28, 24] child_bg = [ 30, 28, 24]
diff_added = [ 51, 230, 51] diff_added = [ 51, 230, 51]
diff_header = [ 77, 178, 255] diff_header = [ 77, 178, 255]
diff_removed = [230, 51, 51] diff_removed = [230, 51, 51]
docking_empty_bg = [ 20, 20, 20] docking_empty_bg = [ 20, 20, 20]
docking_preview = [126, 78, 14] docking_preview = [126, 78, 14]
frame_bg = [ 45, 42, 38] drag_drop_target = [200, 200, 0]
frame_bg_active = [ 75, 70, 62] drag_drop_target_bg = [ 0, 0, 0]
frame_bg_hovered = [ 60, 56, 50] frame_bg = [ 45, 42, 38]
header = [ 83, 76, 60] frame_bg_active = [ 75, 70, 62]
header_active = [115, 90, 70] frame_bg_hovered = [ 60, 56, 50]
header_hovered = [126, 78, 14] header = [ 83, 76, 60]
menu_bar_bg = [ 35, 30, 20] header_active = [115, 90, 70]
modal_window_dim_bg = [ 10, 10, 10] header_hovered = [126, 78, 14]
nav_cursor = [126, 78, 14] input_text_cursor = [200, 200, 200]
nav_windowing_dim_bg = [ 20, 20, 20] menu_bar_bg = [ 35, 30, 20]
nav_windowing_highlight = [194, 164, 74] modal_window_dim_bg = [ 10, 10, 10]
popup_bg = [ 35, 30, 20] nav_cursor = [126, 78, 14]
resize_grip = [ 60, 55, 44] nav_windowing_dim_bg = [ 20, 20, 20]
resize_grip_active = [194, 164, 74] nav_windowing_highlight = [194, 164, 74]
resize_grip_hovered = [126, 78, 14] plot_histogram = [100, 100, 100]
scrollbar_bg = [ 30, 28, 24] plot_histogram_hovered = [200, 100, 100]
scrollbar_grab = [ 80, 78, 72] plot_lines = [100, 100, 100]
scrollbar_grab_active = [120, 118, 110] plot_lines_hovered = [200, 100, 100]
scrollbar_grab_hovered = [100, 100, 92] popup_bg = [ 35, 30, 20]
separator = [ 70, 65, 55] resize_grip = [ 60, 55, 44]
separator_active = [194, 164, 74] resize_grip_active = [194, 164, 74]
separator_hovered = [126, 78, 14] resize_grip_hovered = [126, 78, 14]
slice_auto = [ 0, 255, 0] scrollbar_bg = [ 30, 28, 24]
slice_manual = [255, 165, 0] scrollbar_grab = [ 80, 78, 72]
slice_selection = [100, 100, 255] scrollbar_grab_active = [120, 118, 110]
slider_grab = [126, 78, 14] scrollbar_grab_hovered = [100, 100, 92]
slider_grab_active = [194, 140, 30] separator = [ 70, 65, 55]
status_error = [255, 72, 64] separator_active = [194, 164, 74]
status_info = [ 0, 255, 255] separator_hovered = [126, 78, 14]
status_success = [ 80, 255, 80] slice_auto = [ 0, 255, 0]
status_warning = [255, 152, 48] slice_manual = [255, 165, 0]
tab = [ 83, 83, 70] slice_selection = [100, 100, 255]
tab_dimmed = [ 60, 58, 50] slider_grab = [126, 78, 14]
tab_dimmed_selected = [ 90, 80, 55] slider_grab_active = [194, 140, 30]
tab_hovered = [126, 77, 25] status_error = [255, 72, 64]
tab_selected = [126, 77, 25] status_info = [ 0, 255, 255]
table_border_light = [ 50, 47, 42] status_success = [ 80, 255, 80]
table_border_strong = [ 70, 65, 55] status_warning = [255, 152, 48]
table_header_bg = [ 55, 50, 38] tab = [ 83, 83, 70]
table_row_bg = [ 0, 0, 0] tab_dimmed = [ 60, 58, 50]
table_row_bg_alt = [ 40, 38, 34] tab_dimmed_selected = [ 90, 80, 55]
text = [200, 200, 200] tab_dimmed_selected_overline = [100, 100, 100]
text_disabled = [130, 130, 120] tab_hovered = [126, 77, 25]
text_selected_bg = [ 59, 86, 142] tab_selected = [126, 77, 25]
title_bg = [ 40, 35, 25] tab_selected_overline = [100, 100, 100]
title_bg_active = [ 60, 45, 15] table_border_light = [ 50, 47, 42]
title_bg_collapsed = [ 30, 27, 20] table_border_strong = [ 70, 65, 55]
window_bg = [ 34, 32, 28] table_header_bg = [ 55, 50, 38]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 40, 38, 34]
text = [200, 200, 200]
text_disabled = [130, 130, 120]
text_link = [ 60, 100, 150]
text_selected_bg = [ 59, 86, 142]
title_bg = [ 40, 35, 25]
title_bg_active = [ 60, 45, 15]
title_bg_collapsed = [ 30, 27, 20]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 34, 32, 28]
+76 -51
View File
@@ -3,54 +3,79 @@ syntax_palette = "light"
description = "Binks Theme" description = "Binks Theme"
[colors] [colors]
border = [ 0, 0, 0] border = [ 0, 0, 0]
border_shadow = [255, 255, 255] border_shadow = [255, 255, 255]
bubble_ai = [220, 255, 220] bubble_ai = [220, 255, 220]
bubble_system = [240, 240, 240] bubble_system = [240, 240, 240]
bubble_user = [220, 230, 255] bubble_user = [220, 230, 255]
bubble_vendor = [255, 240, 200] bubble_vendor = [255, 240, 200]
button = [ 66, 150, 250] button = [ 66, 150, 250]
button_active = [ 15, 135, 250] button_active = [ 15, 135, 250]
button_hovered = [ 66, 150, 250] button_hovered = [ 66, 150, 250]
check_mark = [ 66, 150, 250] check_mark = [ 66, 150, 250]
child_bg = [ 0, 0, 0] child_bg = [ 0, 0, 0]
diff_added = [ 40, 180, 40] diff_added = [ 40, 180, 40]
diff_header = [ 40, 100, 200] diff_header = [ 40, 100, 200]
diff_removed = [200, 40, 40] diff_removed = [200, 40, 40]
frame_bg = [255, 255, 255] docking_empty_bg = [230, 230, 230]
frame_bg_active = [ 66, 150, 250] docking_preview = [100, 100, 100]
frame_bg_hovered = [ 66, 150, 250] drag_drop_target = [200, 200, 0]
header = [ 66, 150, 250] drag_drop_target_bg = [ 0, 0, 0]
header_active = [ 66, 150, 250] frame_bg = [255, 255, 255]
header_hovered = [ 66, 150, 250] frame_bg_active = [ 66, 150, 250]
menu_bar_bg = [219, 219, 219] frame_bg_hovered = [ 66, 150, 250]
modal_window_dim_bg = [ 51, 51, 51] header = [ 66, 150, 250]
plot_histogram = [230, 178, 0] header_active = [ 66, 150, 250]
plot_histogram_hovered = [255, 153, 0] header_hovered = [ 66, 150, 250]
plot_lines = [ 99, 99, 99] input_text_cursor = [200, 200, 200]
plot_lines_hovered = [255, 110, 89] menu_bar_bg = [219, 219, 219]
popup_bg = [255, 255, 255] modal_window_dim_bg = [ 51, 51, 51]
resize_grip = [255, 255, 255] nav_cursor = [100, 100, 100]
resize_grip_active = [ 66, 150, 250] nav_windowing_dim_bg = [200, 200, 200]
resize_grip_hovered = [ 66, 150, 250] nav_windowing_highlight = [200, 200, 200]
scrollbar_bg = [250, 250, 250] plot_histogram = [230, 178, 0]
scrollbar_grab = [176, 176, 176] plot_histogram_hovered = [255, 153, 0]
scrollbar_grab_active = [125, 125, 125] plot_lines = [ 99, 99, 99]
scrollbar_grab_hovered = [150, 150, 150] plot_lines_hovered = [255, 110, 89]
separator = [100, 100, 100] popup_bg = [255, 255, 255]
slice_auto = [ 80, 255, 80] resize_grip = [255, 255, 255]
slice_manual = [255, 200, 0] resize_grip_active = [ 66, 150, 250]
slice_selection = [180, 180, 255] resize_grip_hovered = [ 66, 150, 250]
slider_grab = [ 61, 133, 224] scrollbar_bg = [250, 250, 250]
slider_grab_active = [ 66, 150, 250] scrollbar_grab = [176, 176, 176]
status_error = [200, 40, 40] scrollbar_grab_active = [125, 125, 125]
status_info = [ 40, 100, 200] scrollbar_grab_hovered = [150, 150, 150]
status_success = [ 40, 180, 40] separator = [100, 100, 100]
status_warning = [200, 140, 0] separator_active = [200, 200, 200]
text = [ 0, 0, 0] separator_hovered = [100, 100, 100]
text_disabled = [153, 153, 153] slice_auto = [ 80, 255, 80]
text_selected_bg = [ 66, 150, 250] slice_manual = [255, 200, 0]
title_bg = [245, 245, 245] slice_selection = [180, 180, 255]
title_bg_active = [209, 209, 209] slider_grab = [ 61, 133, 224]
title_bg_collapsed = [255, 255, 255] slider_grab_active = [ 66, 150, 250]
window_bg = [240, 240, 240] status_error = [200, 40, 40]
status_info = [ 40, 100, 200]
status_success = [ 40, 180, 40]
status_warning = [200, 140, 0]
tab = [ 60, 60, 60]
tab_dimmed = [220, 220, 220]
tab_dimmed_selected = [200, 200, 200]
tab_dimmed_selected_overline = [100, 100, 100]
tab_hovered = [100, 100, 100]
tab_selected = [200, 200, 200]
tab_selected_overline = [100, 100, 100]
table_border_light = [ 40, 40, 40]
table_border_strong = [ 60, 60, 60]
table_header_bg = [ 55, 55, 55]
table_row_bg = [250, 250, 250]
table_row_bg_alt = [235, 235, 235]
text = [ 0, 0, 0]
text_disabled = [153, 153, 153]
text_link = [ 60, 100, 150]
text_selected_bg = [ 66, 150, 250]
title_bg = [245, 245, 245]
title_bg_active = [209, 209, 209]
title_bg_collapsed = [255, 255, 255]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [240, 240, 240]
+76 -47
View File
@@ -3,50 +3,79 @@ syntax_palette = "retro_blue"
description = "Gruvbox Dark by Pavel Pertsev (github.com/morhetz/gruvbox)" description = "Gruvbox Dark by Pavel Pertsev (github.com/morhetz/gruvbox)"
[colors] [colors]
border = [ 60, 56, 54] border = [ 60, 56, 54]
bubble_ai = [ 35, 65, 45] border_shadow = [ 0, 0, 0]
bubble_system = [ 25, 25, 25] bubble_ai = [ 35, 65, 45]
bubble_user = [ 30, 45, 75] bubble_system = [ 25, 25, 25]
bubble_vendor = [ 65, 55, 30] bubble_user = [ 30, 45, 75]
button = [ 60, 56, 54] bubble_vendor = [ 65, 55, 30]
button_active = [200, 140, 0] button = [ 60, 56, 54]
button_hovered = [180, 120, 40] button_active = [200, 140, 0]
check_mark = [184, 187, 38] button_hovered = [180, 120, 40]
child_bg = [ 50, 48, 47] check_mark = [184, 187, 38]
diff_added = [ 51, 230, 51] child_bg = [ 50, 48, 47]
diff_header = [ 77, 178, 255] diff_added = [ 51, 230, 51]
diff_removed = [230, 51, 51] diff_header = [ 77, 178, 255]
frame_bg = [ 50, 48, 47] diff_removed = [230, 51, 51]
frame_bg_active = [ 90, 90, 90] docking_empty_bg = [ 20, 20, 20]
frame_bg_hovered = [ 80, 80, 80] docking_preview = [100, 100, 100]
header = [ 60, 56, 54] drag_drop_target = [200, 200, 0]
header_active = [251, 73, 52] drag_drop_target_bg = [ 0, 0, 0]
header_hovered = [180, 120, 40] frame_bg = [ 50, 48, 47]
menu_bar_bg = [ 40, 40, 40] frame_bg_active = [ 90, 90, 90]
popup_bg = [ 50, 48, 47] frame_bg_hovered = [ 80, 80, 80]
scrollbar_bg = [ 40, 40, 40] header = [ 60, 56, 54]
scrollbar_grab = [ 80, 80, 80] header_active = [251, 73, 52]
scrollbar_grab_active = [251, 241, 199] header_hovered = [180, 120, 40]
scrollbar_grab_hovered = [251, 241, 199] input_text_cursor = [200, 200, 200]
separator = [ 80, 80, 80] menu_bar_bg = [ 40, 40, 40]
separator_active = [251, 241, 199] modal_window_dim_bg = [ 10, 10, 10]
separator_hovered = [180, 120, 40] nav_cursor = [100, 100, 100]
slice_auto = [ 0, 255, 0] nav_windowing_dim_bg = [ 20, 20, 20]
slice_manual = [255, 165, 0] nav_windowing_highlight = [200, 200, 200]
slice_selection = [100, 100, 255] plot_histogram = [100, 100, 100]
slider_grab = [184, 187, 38] plot_histogram_hovered = [200, 100, 100]
slider_grab_active = [184, 187, 38] plot_lines = [100, 100, 100]
status_error = [255, 72, 64] plot_lines_hovered = [200, 100, 100]
status_info = [ 0, 255, 255] popup_bg = [ 50, 48, 47]
status_success = [ 80, 255, 80] resize_grip = [ 60, 60, 60]
status_warning = [255, 152, 48] resize_grip_active = [200, 200, 200]
tab = [ 60, 56, 54] resize_grip_hovered = [100, 100, 100]
tab_hovered = [180, 120, 40] scrollbar_bg = [ 40, 40, 40]
tab_selected = [ 80, 80, 80] scrollbar_grab = [ 80, 80, 80]
table_header_bg = [ 60, 56, 54] scrollbar_grab_active = [251, 241, 199]
text = [251, 241, 199] scrollbar_grab_hovered = [251, 241, 199]
text_disabled = [146, 131, 116] separator = [ 80, 80, 80]
text_selected_bg = [180, 120, 40] separator_active = [251, 241, 199]
title_bg = [ 40, 40, 40] separator_hovered = [180, 120, 40]
title_bg_active = [ 80, 80, 80] slice_auto = [ 0, 255, 0]
window_bg = [ 40, 40, 40] slice_manual = [255, 165, 0]
slice_selection = [100, 100, 255]
slider_grab = [184, 187, 38]
slider_grab_active = [184, 187, 38]
status_error = [255, 72, 64]
status_info = [ 0, 255, 255]
status_success = [ 80, 255, 80]
status_warning = [255, 152, 48]
tab = [ 60, 56, 54]
tab_dimmed = [ 60, 60, 60]
tab_dimmed_selected = [100, 100, 100]
tab_dimmed_selected_overline = [100, 100, 100]
tab_hovered = [180, 120, 40]
tab_selected = [ 80, 80, 80]
tab_selected_overline = [100, 100, 100]
table_border_light = [ 40, 40, 40]
table_border_strong = [ 60, 60, 60]
table_header_bg = [ 60, 56, 54]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 10, 10, 10]
text = [251, 241, 199]
text_disabled = [146, 131, 116]
text_link = [ 60, 100, 150]
text_selected_bg = [180, 120, 40]
title_bg = [ 40, 40, 40]
title_bg_active = [ 80, 80, 80]
title_bg_collapsed = [ 30, 30, 30]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 40, 40, 40]
+76 -62
View File
@@ -3,65 +3,79 @@ syntax_palette = "dark"
description = "Monokai Theme" description = "Monokai Theme"
[colors] [colors]
border = [ 60, 61, 52] border = [ 60, 61, 52]
border_shadow = [ 0, 0, 0] border_shadow = [ 0, 0, 0]
bubble_ai = [ 35, 65, 45] bubble_ai = [ 35, 65, 45]
bubble_system = [ 25, 25, 25] bubble_system = [ 25, 25, 25]
bubble_user = [ 30, 45, 75] bubble_user = [ 30, 45, 75]
bubble_vendor = [ 65, 55, 30] bubble_vendor = [ 65, 55, 30]
button = [ 73, 72, 62] button = [ 73, 72, 62]
button_active = [198, 30, 92] button_active = [198, 30, 92]
button_hovered = [249, 38, 114] button_hovered = [249, 38, 114]
check_mark = [166, 226, 46] check_mark = [166, 226, 46]
child_bg = [ 34, 35, 29] child_bg = [ 34, 35, 29]
diff_added = [ 51, 230, 51] diff_added = [ 51, 230, 51]
diff_header = [ 77, 178, 255] diff_header = [ 77, 178, 255]
diff_removed = [230, 51, 51] diff_removed = [230, 51, 51]
docking_empty_bg = [ 20, 20, 18] docking_empty_bg = [ 20, 20, 18]
docking_preview = [249, 38, 114] docking_preview = [249, 38, 114]
frame_bg = [ 50, 51, 44] drag_drop_target = [200, 200, 0]
frame_bg_active = [ 80, 82, 68] drag_drop_target_bg = [ 0, 0, 0]
frame_bg_hovered = [ 65, 67, 56] frame_bg = [ 50, 51, 44]
header = [ 73, 72, 62] frame_bg_active = [ 80, 82, 68]
header_active = [198, 30, 92] frame_bg_hovered = [ 65, 67, 56]
header_hovered = [249, 38, 114] header = [ 73, 72, 62]
menu_bar_bg = [ 50, 51, 44] header_active = [198, 30, 92]
modal_window_dim_bg = [ 10, 10, 8] header_hovered = [249, 38, 114]
nav_cursor = [166, 226, 46] input_text_cursor = [200, 200, 200]
popup_bg = [ 39, 40, 34] menu_bar_bg = [ 50, 51, 44]
resize_grip = [ 73, 72, 62] modal_window_dim_bg = [ 10, 10, 8]
resize_grip_active = [166, 226, 46] nav_cursor = [166, 226, 46]
resize_grip_hovered = [249, 38, 114] nav_windowing_dim_bg = [ 20, 20, 20]
scrollbar_bg = [ 34, 35, 29] nav_windowing_highlight = [200, 200, 200]
scrollbar_grab = [ 80, 80, 72] plot_histogram = [100, 100, 100]
scrollbar_grab_active = [166, 226, 46] plot_histogram_hovered = [200, 100, 100]
scrollbar_grab_hovered = [102, 217, 39] plot_lines = [100, 100, 100]
separator = [ 60, 61, 52] plot_lines_hovered = [200, 100, 100]
separator_active = [166, 226, 46] popup_bg = [ 39, 40, 34]
separator_hovered = [249, 38, 114] resize_grip = [ 73, 72, 62]
slice_auto = [ 0, 255, 0] resize_grip_active = [166, 226, 46]
slice_manual = [255, 165, 0] resize_grip_hovered = [249, 38, 114]
slice_selection = [100, 100, 255] scrollbar_bg = [ 34, 35, 29]
slider_grab = [102, 217, 39] scrollbar_grab = [ 80, 80, 72]
slider_grab_active = [166, 226, 46] scrollbar_grab_active = [166, 226, 46]
status_error = [255, 72, 64] scrollbar_grab_hovered = [102, 217, 39]
status_info = [ 0, 255, 255] separator = [ 60, 61, 52]
status_success = [ 80, 255, 80] separator_active = [166, 226, 46]
status_warning = [255, 152, 48] separator_hovered = [249, 38, 114]
tab = [ 73, 72, 62] slice_auto = [ 0, 255, 0]
tab_dimmed = [ 50, 51, 44] slice_manual = [255, 165, 0]
tab_dimmed_selected = [ 90, 88, 76] slice_selection = [100, 100, 255]
tab_hovered = [249, 38, 114] slider_grab = [102, 217, 39]
tab_selected = [249, 38, 114] slider_grab_active = [166, 226, 46]
table_border_light = [ 55, 56, 48] status_error = [255, 72, 64]
table_border_strong = [ 73, 72, 62] status_info = [ 0, 255, 255]
table_header_bg = [ 60, 61, 52] status_success = [ 80, 255, 80]
table_row_bg = [ 0, 0, 0] status_warning = [255, 152, 48]
table_row_bg_alt = [ 50, 51, 44] tab = [ 73, 72, 62]
text = [248, 248, 242] tab_dimmed = [ 50, 51, 44]
text_disabled = [117, 113, 94] tab_dimmed_selected = [ 90, 88, 76]
text_selected_bg = [249, 38, 114] tab_dimmed_selected_overline = [100, 100, 100]
title_bg = [ 39, 40, 34] tab_hovered = [249, 38, 114]
title_bg_active = [ 73, 72, 62] tab_selected = [249, 38, 114]
title_bg_collapsed = [ 30, 31, 26] tab_selected_overline = [100, 100, 100]
window_bg = [ 39, 40, 34] table_border_light = [ 55, 56, 48]
table_border_strong = [ 73, 72, 62]
table_header_bg = [ 60, 61, 52]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 50, 51, 44]
text = [248, 248, 242]
text_disabled = [117, 113, 94]
text_link = [ 60, 100, 150]
text_selected_bg = [249, 38, 114]
title_bg = [ 39, 40, 34]
title_bg_active = [ 73, 72, 62]
title_bg_collapsed = [ 30, 31, 26]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 39, 40, 34]
+76 -47
View File
@@ -3,50 +3,79 @@ syntax_palette = "mariana"
description = "Moss — green-tinted dark theme" description = "Moss — green-tinted dark theme"
[colors] [colors]
border = [ 60, 80, 90] border = [ 60, 80, 90]
bubble_ai = [ 35, 65, 45] border_shadow = [ 0, 0, 0]
bubble_system = [ 25, 25, 25] bubble_ai = [ 35, 65, 45]
bubble_user = [ 30, 45, 75] bubble_system = [ 25, 25, 25]
bubble_vendor = [ 65, 55, 30] bubble_user = [ 30, 45, 75]
button = [ 60, 80, 90] bubble_vendor = [ 65, 55, 30]
button_active = [120, 80, 200] button = [ 60, 80, 90]
button_hovered = [105, 101, 255] button_active = [120, 80, 200]
check_mark = [120, 160, 130] button_hovered = [105, 101, 255]
child_bg = [ 24, 32, 30] check_mark = [120, 160, 130]
diff_added = [ 51, 230, 51] child_bg = [ 24, 32, 30]
diff_header = [ 77, 178, 255] diff_added = [ 51, 230, 51]
diff_removed = [230, 51, 51] diff_header = [ 77, 178, 255]
frame_bg = [ 50, 70, 80] diff_removed = [230, 51, 51]
frame_bg_active = [ 70, 100, 110] docking_empty_bg = [ 20, 20, 20]
frame_bg_hovered = [ 60, 90, 100] docking_preview = [100, 100, 100]
header = [ 60, 80, 90] drag_drop_target = [200, 200, 0]
header_active = [ 42, 77, 50] drag_drop_target_bg = [ 0, 0, 0]
header_hovered = [120, 160, 130] frame_bg = [ 50, 70, 80]
menu_bar_bg = [ 40, 47, 49] frame_bg_active = [ 70, 100, 110]
popup_bg = [ 20, 35, 35] frame_bg_hovered = [ 60, 90, 100]
scrollbar_bg = [ 40, 47, 49] header = [ 60, 80, 90]
scrollbar_grab = [ 80, 80, 80] header_active = [ 42, 77, 50]
scrollbar_grab_active = [120, 120, 120] header_hovered = [120, 160, 130]
scrollbar_grab_hovered = [100, 100, 100] input_text_cursor = [200, 200, 200]
separator = [ 60, 80, 90] menu_bar_bg = [ 40, 47, 49]
separator_active = [105, 101, 255] modal_window_dim_bg = [ 10, 10, 10]
separator_hovered = [120, 160, 130] nav_cursor = [100, 100, 100]
slice_auto = [ 0, 255, 0] nav_windowing_dim_bg = [ 20, 20, 20]
slice_manual = [255, 165, 0] nav_windowing_highlight = [200, 200, 200]
slice_selection = [100, 100, 255] plot_histogram = [100, 100, 100]
slider_grab = [120, 160, 130] plot_histogram_hovered = [200, 100, 100]
slider_grab_active = [120, 160, 130] plot_lines = [100, 100, 100]
status_error = [255, 72, 64] plot_lines_hovered = [200, 100, 100]
status_info = [ 0, 255, 255] popup_bg = [ 20, 35, 35]
status_success = [ 80, 255, 80] resize_grip = [ 60, 60, 60]
status_warning = [255, 152, 48] resize_grip_active = [200, 200, 200]
tab = [ 60, 80, 90] resize_grip_hovered = [100, 100, 100]
tab_hovered = [ 80, 100, 110] scrollbar_bg = [ 40, 47, 49]
tab_selected = [ 42, 77, 50] scrollbar_grab = [ 80, 80, 80]
table_header_bg = [ 50, 70, 80] scrollbar_grab_active = [120, 120, 120]
text = [255, 255, 255] scrollbar_grab_hovered = [100, 100, 100]
text_disabled = [208, 208, 208] separator = [ 60, 80, 90]
text_selected_bg = [105, 101, 255] separator_active = [105, 101, 255]
title_bg = [ 40, 47, 49] separator_hovered = [120, 160, 130]
title_bg_active = [ 42, 77, 50] slice_auto = [ 0, 255, 0]
window_bg = [ 40, 47, 49] slice_manual = [255, 165, 0]
slice_selection = [100, 100, 255]
slider_grab = [120, 160, 130]
slider_grab_active = [120, 160, 130]
status_error = [255, 72, 64]
status_info = [ 0, 255, 255]
status_success = [ 80, 255, 80]
status_warning = [255, 152, 48]
tab = [ 60, 80, 90]
tab_dimmed = [ 60, 60, 60]
tab_dimmed_selected = [100, 100, 100]
tab_dimmed_selected_overline = [100, 100, 100]
tab_hovered = [ 80, 100, 110]
tab_selected = [ 42, 77, 50]
tab_selected_overline = [100, 100, 100]
table_border_light = [ 40, 40, 40]
table_border_strong = [ 60, 60, 60]
table_header_bg = [ 50, 70, 80]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 10, 10, 10]
text = [255, 255, 255]
text_disabled = [208, 208, 208]
text_link = [ 60, 100, 150]
text_selected_bg = [105, 101, 255]
title_bg = [ 40, 47, 49]
title_bg_active = [ 42, 77, 50]
title_bg_collapsed = [ 30, 30, 30]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 40, 47, 49]
+76 -62
View File
@@ -3,65 +3,79 @@ syntax_palette = "dark"
description = "Nord Dark Theme" description = "Nord Dark Theme"
[colors] [colors]
border = [ 59, 66, 82] border = [ 59, 66, 82]
border_shadow = [ 0, 0, 0] border_shadow = [ 0, 0, 0]
bubble_ai = [ 35, 65, 45] bubble_ai = [ 35, 65, 45]
bubble_system = [ 25, 25, 25] bubble_system = [ 25, 25, 25]
bubble_user = [ 30, 45, 75] bubble_user = [ 30, 45, 75]
bubble_vendor = [ 65, 55, 30] bubble_vendor = [ 65, 55, 30]
button = [ 59, 66, 82] button = [ 59, 66, 82]
button_active = [129, 161, 193] button_active = [129, 161, 193]
button_hovered = [ 94, 129, 172] button_hovered = [ 94, 129, 172]
check_mark = [136, 192, 208] check_mark = [136, 192, 208]
child_bg = [ 30, 34, 42] child_bg = [ 30, 34, 42]
diff_added = [ 51, 230, 51] diff_added = [ 51, 230, 51]
diff_header = [ 77, 178, 255] diff_header = [ 77, 178, 255]
diff_removed = [230, 51, 51] diff_removed = [230, 51, 51]
docking_empty_bg = [ 20, 22, 28] docking_empty_bg = [ 20, 22, 28]
docking_preview = [ 94, 129, 172] docking_preview = [ 94, 129, 172]
frame_bg = [ 46, 52, 64] drag_drop_target = [200, 200, 0]
frame_bg_active = [ 67, 76, 94] drag_drop_target_bg = [ 0, 0, 0]
frame_bg_hovered = [ 59, 66, 82] frame_bg = [ 46, 52, 64]
header = [ 59, 66, 82] frame_bg_active = [ 67, 76, 94]
header_active = [129, 161, 193] frame_bg_hovered = [ 59, 66, 82]
header_hovered = [ 94, 129, 172] header = [ 59, 66, 82]
menu_bar_bg = [ 46, 52, 64] header_active = [129, 161, 193]
modal_window_dim_bg = [ 10, 12, 16] header_hovered = [ 94, 129, 172]
nav_cursor = [136, 192, 208] input_text_cursor = [200, 200, 200]
popup_bg = [ 36, 41, 49] menu_bar_bg = [ 46, 52, 64]
resize_grip = [ 59, 66, 82] modal_window_dim_bg = [ 10, 12, 16]
resize_grip_active = [136, 192, 208] nav_cursor = [136, 192, 208]
resize_grip_hovered = [ 94, 129, 172] nav_windowing_dim_bg = [ 20, 20, 20]
scrollbar_bg = [ 30, 34, 42] nav_windowing_highlight = [200, 200, 200]
scrollbar_grab = [ 76, 86, 106] plot_histogram = [100, 100, 100]
scrollbar_grab_active = [129, 161, 193] plot_histogram_hovered = [200, 100, 100]
scrollbar_grab_hovered = [ 94, 129, 172] plot_lines = [100, 100, 100]
separator = [ 59, 66, 82] plot_lines_hovered = [200, 100, 100]
separator_active = [136, 192, 208] popup_bg = [ 36, 41, 49]
separator_hovered = [ 94, 129, 172] resize_grip = [ 59, 66, 82]
slice_auto = [ 0, 255, 0] resize_grip_active = [136, 192, 208]
slice_manual = [255, 165, 0] resize_grip_hovered = [ 94, 129, 172]
slice_selection = [100, 100, 255] scrollbar_bg = [ 30, 34, 42]
slider_grab = [ 94, 129, 172] scrollbar_grab = [ 76, 86, 106]
slider_grab_active = [129, 161, 193] scrollbar_grab_active = [129, 161, 193]
status_error = [255, 72, 64] scrollbar_grab_hovered = [ 94, 129, 172]
status_info = [ 0, 255, 255] separator = [ 59, 66, 82]
status_success = [ 80, 255, 80] separator_active = [136, 192, 208]
status_warning = [255, 152, 48] separator_hovered = [ 94, 129, 172]
tab = [ 46, 52, 64] slice_auto = [ 0, 255, 0]
tab_dimmed = [ 36, 41, 49] slice_manual = [255, 165, 0]
tab_dimmed_selected = [ 59, 66, 82] slice_selection = [100, 100, 255]
tab_hovered = [ 94, 129, 172] slider_grab = [ 94, 129, 172]
tab_selected = [ 76, 86, 106] slider_grab_active = [129, 161, 193]
table_border_light = [ 59, 66, 82] status_error = [255, 72, 64]
table_border_strong = [ 76, 86, 106] status_info = [ 0, 255, 255]
table_header_bg = [ 59, 66, 82] status_success = [ 80, 255, 80]
table_row_bg = [ 0, 0, 0] status_warning = [255, 152, 48]
table_row_bg_alt = [ 46, 52, 64] tab = [ 46, 52, 64]
text = [216, 222, 233] tab_dimmed = [ 36, 41, 49]
text_disabled = [116, 128, 150] tab_dimmed_selected = [ 59, 66, 82]
text_selected_bg = [ 94, 129, 172] tab_dimmed_selected_overline = [100, 100, 100]
title_bg = [ 36, 41, 49] tab_hovered = [ 94, 129, 172]
title_bg_active = [ 59, 66, 82] tab_selected = [ 76, 86, 106]
title_bg_collapsed = [ 30, 34, 42] tab_selected_overline = [100, 100, 100]
window_bg = [ 36, 41, 49] table_border_light = [ 59, 66, 82]
table_border_strong = [ 76, 86, 106]
table_header_bg = [ 59, 66, 82]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 46, 52, 64]
text = [216, 222, 233]
text_disabled = [116, 128, 150]
text_link = [ 60, 100, 150]
text_selected_bg = [ 94, 129, 172]
title_bg = [ 36, 41, 49]
title_bg_active = [ 59, 66, 82]
title_bg_collapsed = [ 30, 34, 42]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 36, 41, 49]
+76 -47
View File
@@ -3,50 +3,79 @@ syntax_palette = "dark"
description = "Solarized Dark by Ethan Schoonover" description = "Solarized Dark by Ethan Schoonover"
[colors] [colors]
border = [ 88, 110, 117] border = [ 88, 110, 117]
bubble_ai = [ 35, 65, 45] border_shadow = [ 0, 0, 0]
bubble_system = [ 25, 25, 25] bubble_ai = [ 35, 65, 45]
bubble_user = [ 30, 45, 75] bubble_system = [ 25, 25, 25]
bubble_vendor = [ 65, 55, 30] bubble_user = [ 30, 45, 75]
button = [ 7, 54, 66] bubble_vendor = [ 65, 55, 30]
button_active = [ 38, 139, 210] button = [ 7, 54, 66]
button_hovered = [ 38, 139, 210] button_active = [ 38, 139, 210]
check_mark = [ 38, 139, 210] button_hovered = [ 38, 139, 210]
child_bg = [ 7, 54, 66] check_mark = [ 38, 139, 210]
diff_added = [ 51, 230, 51] child_bg = [ 7, 54, 66]
diff_header = [ 77, 178, 255] diff_added = [ 51, 230, 51]
diff_removed = [230, 51, 51] diff_header = [ 77, 178, 255]
frame_bg = [ 7, 54, 66] diff_removed = [230, 51, 51]
frame_bg_active = [101, 123, 131] docking_empty_bg = [ 20, 20, 20]
frame_bg_hovered = [ 88, 110, 117] docking_preview = [100, 100, 100]
header = [ 7, 54, 66] drag_drop_target = [200, 200, 0]
header_active = [ 38, 139, 210] drag_drop_target_bg = [ 0, 0, 0]
header_hovered = [ 38, 139, 210] frame_bg = [ 7, 54, 66]
menu_bar_bg = [ 0, 43, 54] frame_bg_active = [101, 123, 131]
popup_bg = [ 0, 43, 54] frame_bg_hovered = [ 88, 110, 117]
scrollbar_bg = [ 7, 54, 66] header = [ 7, 54, 66]
scrollbar_grab = [ 88, 110, 117] header_active = [ 38, 139, 210]
scrollbar_grab_active = [253, 246, 227] header_hovered = [ 38, 139, 210]
scrollbar_grab_hovered = [131, 148, 150] input_text_cursor = [200, 200, 200]
separator = [ 88, 110, 117] menu_bar_bg = [ 0, 43, 54]
separator_active = [203, 75, 22] modal_window_dim_bg = [ 10, 10, 10]
separator_hovered = [ 38, 139, 210] nav_cursor = [100, 100, 100]
slice_auto = [ 0, 255, 0] nav_windowing_dim_bg = [ 20, 20, 20]
slice_manual = [255, 165, 0] nav_windowing_highlight = [200, 200, 200]
slice_selection = [100, 100, 255] plot_histogram = [100, 100, 100]
slider_grab = [ 38, 139, 210] plot_histogram_hovered = [200, 100, 100]
slider_grab_active = [ 38, 139, 210] plot_lines = [100, 100, 100]
status_error = [255, 72, 64] plot_lines_hovered = [200, 100, 100]
status_info = [ 0, 255, 255] popup_bg = [ 0, 43, 54]
status_success = [ 80, 255, 80] resize_grip = [ 60, 60, 60]
status_warning = [255, 152, 48] resize_grip_active = [200, 200, 200]
tab = [ 7, 54, 66] resize_grip_hovered = [100, 100, 100]
tab_hovered = [ 38, 139, 210] scrollbar_bg = [ 7, 54, 66]
tab_selected = [ 88, 110, 117] scrollbar_grab = [ 88, 110, 117]
table_header_bg = [ 7, 54, 66] scrollbar_grab_active = [253, 246, 227]
text = [147, 161, 161] scrollbar_grab_hovered = [131, 148, 150]
text_disabled = [ 88, 110, 117] separator = [ 88, 110, 117]
text_selected_bg = [ 38, 139, 210] separator_active = [203, 75, 22]
title_bg = [ 7, 54, 66] separator_hovered = [ 38, 139, 210]
title_bg_active = [ 88, 110, 117] slice_auto = [ 0, 255, 0]
window_bg = [ 0, 43, 54] slice_manual = [255, 165, 0]
slice_selection = [100, 100, 255]
slider_grab = [ 38, 139, 210]
slider_grab_active = [ 38, 139, 210]
status_error = [255, 72, 64]
status_info = [ 0, 255, 255]
status_success = [ 80, 255, 80]
status_warning = [255, 152, 48]
tab = [ 7, 54, 66]
tab_dimmed = [ 60, 60, 60]
tab_dimmed_selected = [100, 100, 100]
tab_dimmed_selected_overline = [100, 100, 100]
tab_hovered = [ 38, 139, 210]
tab_selected = [ 88, 110, 117]
tab_selected_overline = [100, 100, 100]
table_border_light = [ 40, 40, 40]
table_border_strong = [ 60, 60, 60]
table_header_bg = [ 7, 54, 66]
table_row_bg = [ 0, 0, 0]
table_row_bg_alt = [ 10, 10, 10]
text = [147, 161, 161]
text_disabled = [ 88, 110, 117]
text_link = [ 60, 100, 150]
text_selected_bg = [ 38, 139, 210]
title_bg = [ 7, 54, 66]
title_bg_active = [ 88, 110, 117]
title_bg_collapsed = [ 30, 30, 30]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [ 0, 43, 54]
+76 -47
View File
@@ -3,50 +3,79 @@ syntax_palette = "light"
description = "Solarized Light by Ethan Schoonover" description = "Solarized Light by Ethan Schoonover"
[colors] [colors]
border = [147, 161, 161] border = [147, 161, 161]
bubble_ai = [220, 255, 220] border_shadow = [255, 255, 255]
bubble_system = [240, 240, 240] bubble_ai = [220, 255, 220]
bubble_user = [220, 230, 255] bubble_system = [240, 240, 240]
bubble_vendor = [255, 240, 200] bubble_user = [220, 230, 255]
button = [253, 246, 227] bubble_vendor = [255, 240, 200]
button_active = [ 38, 139, 210] button = [253, 246, 227]
button_hovered = [ 38, 139, 210] button_active = [ 38, 139, 210]
check_mark = [ 38, 139, 210] button_hovered = [ 38, 139, 210]
child_bg = [253, 246, 227] check_mark = [ 38, 139, 210]
diff_added = [ 40, 180, 40] child_bg = [253, 246, 227]
diff_header = [ 40, 100, 200] diff_added = [ 40, 180, 40]
diff_removed = [200, 40, 40] diff_header = [ 40, 100, 200]
frame_bg = [253, 246, 227] diff_removed = [200, 40, 40]
frame_bg_active = [238, 232, 213] docking_empty_bg = [230, 230, 230]
frame_bg_hovered = [238, 232, 213] docking_preview = [100, 100, 100]
header = [253, 246, 227] drag_drop_target = [200, 200, 0]
header_active = [ 38, 139, 210] drag_drop_target_bg = [ 0, 0, 0]
header_hovered = [ 38, 139, 210] frame_bg = [253, 246, 227]
menu_bar_bg = [238, 232, 213] frame_bg_active = [238, 232, 213]
popup_bg = [253, 246, 227] frame_bg_hovered = [238, 232, 213]
scrollbar_bg = [238, 232, 213] header = [253, 246, 227]
scrollbar_grab = [147, 161, 161] header_active = [ 38, 139, 210]
scrollbar_grab_active = [ 7, 54, 66] header_hovered = [ 38, 139, 210]
scrollbar_grab_hovered = [131, 148, 150] input_text_cursor = [200, 200, 200]
separator = [147, 161, 161] menu_bar_bg = [238, 232, 213]
separator_active = [203, 75, 22] modal_window_dim_bg = [150, 150, 150]
separator_hovered = [181, 137, 0] nav_cursor = [100, 100, 100]
slice_auto = [ 80, 255, 80] nav_windowing_dim_bg = [200, 200, 200]
slice_manual = [255, 200, 0] nav_windowing_highlight = [200, 200, 200]
slice_selection = [180, 180, 255] plot_histogram = [100, 100, 100]
slider_grab = [ 38, 139, 210] plot_histogram_hovered = [200, 100, 100]
slider_grab_active = [ 38, 139, 210] plot_lines = [100, 100, 100]
status_error = [200, 40, 40] plot_lines_hovered = [200, 100, 100]
status_info = [ 40, 100, 200] popup_bg = [253, 246, 227]
status_success = [ 40, 180, 40] resize_grip = [ 60, 60, 60]
status_warning = [200, 140, 0] resize_grip_active = [200, 200, 200]
tab = [238, 232, 213] resize_grip_hovered = [100, 100, 100]
tab_hovered = [ 38, 139, 210] scrollbar_bg = [238, 232, 213]
tab_selected = [147, 161, 161] scrollbar_grab = [147, 161, 161]
table_header_bg = [238, 232, 213] scrollbar_grab_active = [ 7, 54, 66]
text = [ 7, 54, 66] scrollbar_grab_hovered = [131, 148, 150]
text_disabled = [147, 161, 161] separator = [147, 161, 161]
text_selected_bg = [ 38, 139, 210] separator_active = [203, 75, 22]
title_bg = [238, 232, 213] separator_hovered = [181, 137, 0]
title_bg_active = [147, 161, 161] slice_auto = [ 80, 255, 80]
window_bg = [238, 232, 213] slice_manual = [255, 200, 0]
slice_selection = [180, 180, 255]
slider_grab = [ 38, 139, 210]
slider_grab_active = [ 38, 139, 210]
status_error = [200, 40, 40]
status_info = [ 40, 100, 200]
status_success = [ 40, 180, 40]
status_warning = [200, 140, 0]
tab = [238, 232, 213]
tab_dimmed = [220, 220, 220]
tab_dimmed_selected = [200, 200, 200]
tab_dimmed_selected_overline = [100, 100, 100]
tab_hovered = [ 38, 139, 210]
tab_selected = [147, 161, 161]
tab_selected_overline = [100, 100, 100]
table_border_light = [ 40, 40, 40]
table_border_strong = [ 60, 60, 60]
table_header_bg = [238, 232, 213]
table_row_bg = [250, 250, 250]
table_row_bg_alt = [235, 235, 235]
text = [ 7, 54, 66]
text_disabled = [147, 161, 161]
text_link = [ 60, 100, 150]
text_selected_bg = [ 38, 139, 210]
title_bg = [238, 232, 213]
title_bg_active = [147, 161, 161]
title_bg_collapsed = [240, 240, 240]
tree_lines = [ 60, 60, 60]
unsaved_marker = [200, 200, 200]
window_bg = [238, 232, 213]