From 1f740d15b16244b518cc02ac2608fdebae992c46 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Tue, 24 Mar 2026 12:04:44 +0100 Subject: [PATCH 01/10] Add missing syntax scopes to match VS Code material theme highlighting Add 16 new syntax scopes (type, variable, property, boolean, operator, constant, enum, and more) across all 12 theme variants to bring Zed's syntax highlighting in line with the VS Code material theme. Also fix string.escape to use foreground color instead of green. Co-Authored-By: Claude Opus 4.6 --- themes/material-theme.json | 1218 +++++++++++++++++++++++++++++++++++- 1 file changed, 1185 insertions(+), 33 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index f696ac3..8d5686f 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -152,6 +152,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#546E7A", "background_color": null, @@ -164,12 +170,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -182,6 +206,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -194,12 +224,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -237,7 +303,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -271,6 +337,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -424,6 +520,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#546E7A", "background_color": null, @@ -436,12 +538,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -454,6 +574,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -466,12 +592,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -509,7 +671,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -543,6 +705,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -696,6 +888,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#545454", "background_color": null, @@ -708,12 +906,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -726,6 +942,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -738,12 +960,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -781,7 +1039,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -815,6 +1073,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -968,6 +1256,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#4A4A4A", "background_color": null, @@ -980,12 +1274,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -998,6 +1310,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -1010,50 +1328,86 @@ "font_style": "italic", "font_weight": null }, - "number": { - "color": "#F78C6C", + "label": { + "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, - "punctuation": { + "link_text": { "color": "#89DDFF", "background_color": null, "font_style": null, "font_weight": null }, - "punctuation.bracket": { - "color": "#89DDFF", + "link_uri": { + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null }, - "punctuation.delimiter": { - "color": "#89DDFF", + "number": { + "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, - "punctuation.list_marker": { + "operator": { "color": "#89DDFF", "background_color": null, "font_style": null, "font_weight": null }, - "punctuation.special": { - "color": "#89DDFF", + "preproc": { + "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, - "string": { - "color": "#C3E88D", + "property": { + "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, - "string.escape": { - "color": "#C3E88D", + "punctuation": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.bracket": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.delimiter": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.list_marker": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "punctuation.special": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string": { + "color": "#C3E88D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "string.escape": { + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -1087,6 +1441,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#EEFFFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -1240,6 +1624,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#D3959B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#476352", "background_color": null, @@ -1252,12 +1642,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#D3959B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -1270,6 +1678,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#6FA0DE", "background_color": null, @@ -1282,12 +1696,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#74C9DE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#CC8868", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#74C9DE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#CC8868", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#74C9DE", "background_color": null, @@ -1325,7 +1775,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#C2EDD3", "background_color": null, "font_style": null, "font_weight": null @@ -1359,6 +1809,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -1512,6 +1992,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#D3959B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#476352", "background_color": null, @@ -1524,12 +2010,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#D3959B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -1542,6 +2046,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#6FA0DE", "background_color": null, @@ -1554,12 +2064,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#74C9DE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#CC8868", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#74C9DE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#CC8868", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#74C9DE", "background_color": null, @@ -1597,7 +2143,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#C2EDD3", "background_color": null, "font_style": null, "font_weight": null @@ -1631,6 +2177,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#C2EDD3", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -1784,6 +2360,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#FF5370", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#90A4AE", "background_color": null, @@ -1796,12 +2378,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#FF5370", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#E53935", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#E53935", "background_color": null, @@ -1814,6 +2414,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#6182B8", "background_color": null, @@ -1826,12 +2432,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#39ADB5", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F76D47", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#39ADB5", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F76D47", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#39ADB5", "background_color": null, @@ -1869,7 +2511,7 @@ "font_weight": null }, "string.escape": { - "color": "#91B859", + "color": "#90A4AE", "background_color": null, "font_style": null, "font_weight": null @@ -1903,6 +2545,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#E53935", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -2056,6 +2728,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#FF5370", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#90A4AE", "background_color": null, @@ -2068,12 +2746,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#FF5370", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#E53935", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#E53935", "background_color": null, @@ -2086,6 +2782,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#6182B8", "background_color": null, @@ -2098,12 +2800,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#39ADB5", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F76D47", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#39ADB5", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F76D47", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#E53935", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#39ADB5", "background_color": null, @@ -2141,7 +2879,7 @@ "font_weight": null }, "string.escape": { - "color": "#91B859", + "color": "#90A4AE", "background_color": null, "font_style": null, "font_weight": null @@ -2175,6 +2913,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#E2931D", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#90A4AE", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#E53935", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -2328,6 +3096,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#464B5D", "background_color": null, @@ -2340,42 +3114,102 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, "font_style": "italic", "font_weight": null }, - "emphasis.strong": { - "color": "#f07178", + "emphasis.strong": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": 700 + }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "function": { + "color": "#82AAFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "keyword": { + "color": "#89DDFF", + "background_color": null, + "font_style": "italic", + "font_weight": null + }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#babed8", "background_color": null, "font_style": null, - "font_weight": 700 + "font_weight": null }, - "function": { - "color": "#82AAFF", + "number": { + "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, - "keyword": { + "operator": { "color": "#89DDFF", "background_color": null, - "font_style": "italic", + "font_style": null, "font_weight": null }, - "number": { + "preproc": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -2413,7 +3247,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -2447,6 +3281,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -2600,6 +3464,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#464B5D", "background_color": null, @@ -2612,12 +3482,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -2630,6 +3518,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -2642,12 +3536,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -2685,7 +3615,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -2719,6 +3649,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -2872,6 +3832,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#676E95", "background_color": null, @@ -2884,12 +3850,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -2902,6 +3886,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -2914,12 +3904,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -2957,7 +3983,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -2991,6 +4017,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } @@ -3144,6 +4200,12 @@ "font_style": null, "font_weight": null }, + "boolean": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "comment": { "color": "#676E95", "background_color": null, @@ -3156,12 +4218,30 @@ "font_style": "italic", "font_weight": null }, + "constant": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "constant.builtin": { + "color": "#ff9cac", + "background_color": null, + "font_style": null, + "font_weight": null + }, "constructor": { "color": "#f07178", "background_color": null, "font_style": null, "font_weight": null }, + "embedded": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "emphasis": { "color": "#f07178", "background_color": null, @@ -3174,6 +4254,12 @@ "font_style": null, "font_weight": 700 }, + "enum": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, "function": { "color": "#82AAFF", "background_color": null, @@ -3186,12 +4272,48 @@ "font_style": "italic", "font_weight": null }, + "label": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_text": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "link_uri": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, "number": { "color": "#F78C6C", "background_color": null, "font_style": null, "font_weight": null }, + "operator": { + "color": "#89DDFF", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "preproc": { + "color": "#F78C6C", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "property": { + "color": "#f07178", + "background_color": null, + "font_style": null, + "font_weight": null + }, "punctuation": { "color": "#89DDFF", "background_color": null, @@ -3229,7 +4351,7 @@ "font_weight": null }, "string.escape": { - "color": "#C3E88D", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -3263,6 +4385,36 @@ "background_color": null, "font_style": null, "font_weight": null + }, + "title": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "type.builtin": { + "color": "#FFCB6B", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable": { + "color": "#babed8", + "background_color": null, + "font_style": null, + "font_weight": null + }, + "variable.special": { + "color": "#f07178", + "background_color": null, + "font_style": "italic", + "font_weight": null } } } From 311ce17922b7f8c18935825e1ed434c428e1404d Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Tue, 24 Mar 2026 12:08:57 +0100 Subject: [PATCH 02/10] Fix property scope to use foreground color In VS Code, property access (e.g. client.value, response.attributes) uses the foreground color, while only property declarations use red. Zed's property scope covers both, so foreground is the better match. Co-Authored-By: Claude Opus 4.6 --- themes/material-theme.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 8d5686f..14f4020 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -261,7 +261,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -629,7 +629,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -997,7 +997,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -1365,7 +1365,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#EEFFFF", "background_color": null, "font_style": null, "font_weight": null @@ -1733,7 +1733,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#C2EDD3", "background_color": null, "font_style": null, "font_weight": null @@ -2101,7 +2101,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#C2EDD3", "background_color": null, "font_style": null, "font_weight": null @@ -2469,7 +2469,7 @@ "font_weight": null }, "property": { - "color": "#E53935", + "color": "#90A4AE", "background_color": null, "font_style": null, "font_weight": null @@ -2837,7 +2837,7 @@ "font_weight": null }, "property": { - "color": "#E53935", + "color": "#90A4AE", "background_color": null, "font_style": null, "font_weight": null @@ -3205,7 +3205,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -3573,7 +3573,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -3941,7 +3941,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null @@ -4309,7 +4309,7 @@ "font_weight": null }, "property": { - "color": "#f07178", + "color": "#babed8", "background_color": null, "font_style": null, "font_weight": null From ac7ebb52aa56ccca05c08e65aa5411556932ce07 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Tue, 24 Mar 2026 12:12:45 +0100 Subject: [PATCH 03/10] Add bracket pair colorization colors matching VS Code defaults Populate the players array with gold, orchid, and blue colors to match VS Code's default bracket pair colorization (editorBracketHighlight). Co-Authored-By: Claude Opus 4.6 --- themes/material-theme.json | 216 ++++++++++++++++++++++++++++++++++--- 1 file changed, 204 insertions(+), 12 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 14f4020..62f502b 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -144,7 +144,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -512,7 +528,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -880,7 +912,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -1248,7 +1296,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -1616,7 +1680,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#A68DCD", @@ -1984,7 +2064,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#A68DCD", @@ -2352,7 +2448,23 @@ "warning": "#E2931D70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#9C3EDA", @@ -2720,7 +2832,23 @@ "warning": "#E2931D70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#9C3EDA", @@ -3088,7 +3216,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -3456,7 +3600,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -3824,7 +3984,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -4192,7 +4368,23 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#FFD70020", + "selection": "#FFD70030" + }, + { + "cursor": "#DA70D6", + "background": "#DA70D620", + "selection": "#DA70D630" + }, + { + "cursor": "#179FFF", + "background": "#179FFF20", + "selection": "#179FFF30" + } + ], "syntax": { "attribute": { "color": "#C792EA", From 83be44b821c30e952c0e3316d0be5012cc47a602 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Tue, 24 Mar 2026 12:15:21 +0100 Subject: [PATCH 04/10] Fix bracket pair colorization to use accents array Bracket colors in Zed are controlled by the accents array, not players. Set accents to gold, orchid, and blue to match VS Code defaults. Revert players back to empty. Co-Authored-By: Claude Opus 4.6 --- themes/material-theme.json | 288 ++++++++++--------------------------- 1 file changed, 72 insertions(+), 216 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 62f502b..cb05deb 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -8,7 +8,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#26323860", "border.variant": "#26323860", "border.focused": "#FFFFFF00", @@ -144,23 +148,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -392,7 +380,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#3B4A5160", "border.variant": "#3B4A5160", "border.focused": "#FFFFFF00", @@ -528,23 +520,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -776,7 +752,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#21212160", "border.variant": "#21212160", "border.focused": "#FFFFFF00", @@ -912,23 +892,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -1160,7 +1124,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#44444460", "border.variant": "#44444460", "border.focused": "#FFFFFF00", @@ -1296,23 +1264,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -1544,7 +1496,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#141F1D60", "border.variant": "#141F1D60", "border.focused": "#FFFFFF00", @@ -1680,23 +1636,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#A68DCD", @@ -1928,7 +1868,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#2C423A60", "border.variant": "#2C423A60", "border.focused": "#FFFFFF00", @@ -2064,23 +2008,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#A68DCD", @@ -2312,7 +2240,11 @@ "appearance": "light", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#FAFAFA60", "border.variant": "#FAFAFA60", "border.focused": "#FFFFFF00", @@ -2448,23 +2380,7 @@ "warning": "#E2931D70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#9C3EDA", @@ -2696,7 +2612,11 @@ "appearance": "light", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#C1C1C160", "border.variant": "#C1C1C160", "border.focused": "#FFFFFF00", @@ -2832,23 +2752,7 @@ "warning": "#E2931D70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#9C3EDA", @@ -3080,7 +2984,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#0F111A60", "border.variant": "#0F111A60", "border.focused": "#FFFFFF00", @@ -3216,23 +3124,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -3464,7 +3356,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#3E445D60", "border.variant": "#3E445D60", "border.focused": "#FFFFFF00", @@ -3600,23 +3496,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -3848,7 +3728,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#292D3E60", "border.variant": "#292D3E60", "border.focused": "#FFFFFF00", @@ -3984,23 +3868,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", @@ -4232,7 +4100,11 @@ "appearance": "dark", "style": { "background.appearance": "opaque", - "accents": [], + "accents": [ + "#FFD700", + "#DA70D6", + "#179FFF" + ], "border": "#424A6C60", "border.variant": "#424A6C60", "border.focused": "#FFFFFF00", @@ -4368,23 +4240,7 @@ "warning": "#FFCB6B70", "warning.background": null, "warning.border": null, - "players": [ - { - "cursor": "#FFD700", - "background": "#FFD70020", - "selection": "#FFD70030" - }, - { - "cursor": "#DA70D6", - "background": "#DA70D620", - "selection": "#DA70D630" - }, - { - "cursor": "#179FFF", - "background": "#179FFF20", - "selection": "#179FFF30" - } - ], + "players": [], "syntax": { "attribute": { "color": "#C792EA", From 3756828ae4bbfe20b2891698301cbbdb171535d7 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Tue, 24 Mar 2026 13:12:35 +0100 Subject: [PATCH 05/10] Add keyword.declaration scope for storage keywords (const, let, etc.) Zed's TypeScript grammar uses @keyword.declaration for const, let, var, function, class, etc. Map this to purple to match VS Code's storage scope, while regular keywords (if, return, try) stay cyan + italic. Co-Authored-By: Claude Opus 4.6 --- themes/material-theme.json | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/themes/material-theme.json b/themes/material-theme.json index cb05deb..14d7fa2 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -228,6 +228,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -600,6 +606,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -972,6 +984,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -1344,6 +1362,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -1716,6 +1740,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#A68DCD", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -2088,6 +2118,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#A68DCD", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -2460,6 +2496,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#9C3EDA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#E53935", "background_color": null, @@ -2832,6 +2874,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#9C3EDA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#E53935", "background_color": null, @@ -3204,6 +3252,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -3576,6 +3630,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -3948,6 +4008,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, @@ -4320,6 +4386,12 @@ "font_style": "italic", "font_weight": null }, + "keyword.declaration": { + "color": "#C792EA", + "background_color": null, + "font_style": null, + "font_weight": null + }, "label": { "color": "#f07178", "background_color": null, From 0c1f24b0626b0606ee4f335608a17aff86f3e518 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Wed, 20 May 2026 19:16:55 +0200 Subject: [PATCH 06/10] Fix unreadable warning diagnostics in dark themes Warning diagnostic blocks/popovers showed white message text on a translucent yellow background, since "warning.background" was null and Zed fell back to the translucent "warning" color as the fill. Give warnings an explicit faint background tint, a defined border, and a fully opaque foreground color so message text stays readable while the warning still reads as yellow. Applied to all 12 variants. Co-Authored-By: Claude Opus 4.7 (1M context) --- themes/material-theme.json | 72 +++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 14d7fa2..cfa279e 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -145,9 +145,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -523,9 +523,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -901,9 +901,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -1279,9 +1279,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -1657,9 +1657,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -2035,9 +2035,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -2413,9 +2413,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#E2931D70", - "warning.background": null, - "warning.border": null, + "warning": "#E2931D", + "warning.background": "#E2931D1A", + "warning.border": "#E2931D", "players": [], "syntax": { "attribute": { @@ -2791,9 +2791,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#E2931D70", - "warning.background": null, - "warning.border": null, + "warning": "#E2931D", + "warning.background": "#E2931D1A", + "warning.border": "#E2931D", "players": [], "syntax": { "attribute": { @@ -3169,9 +3169,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -3547,9 +3547,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -3925,9 +3925,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { @@ -4303,9 +4303,9 @@ "unreachable": null, "unreachable.background": null, "unreachable.border": null, - "warning": "#FFCB6B70", - "warning.background": null, - "warning.border": null, + "warning": "#FFCB6B", + "warning.background": "#FFCB6B1A", + "warning.border": "#FFCB6B", "players": [], "syntax": { "attribute": { From f61ab28f2d486ba4369c051ef5c499f25c0446cf Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Thu, 21 May 2026 08:08:32 +0200 Subject: [PATCH 07/10] Improve selection and search match visibility The "players" array was empty and "search.match_background" was null in every variant, so text selection and search matches fell back to barely visible Zed defaults. Define players[0] with an on-brand selection color per variant (teal, green, blue, or gray to match each theme) plus a bright gold cursor, and give search matches a distinct gold highlight so they stand out from a normal selection. Applied to all 12 variants. Co-Authored-By: Claude Opus 4.7 (1M context) --- themes/material-theme.json | 120 +++++++++++++++++++++++++++++-------- 1 file changed, 96 insertions(+), 24 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index cfa279e..d77f791 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -50,7 +50,7 @@ "tab_bar.background": "#263238", "tab.inactive_background": "#263238", "tab.active_background": "#263238", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#263238", "panel.focused_border": null, "pane.focused_border": null, @@ -148,7 +148,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#80CBC4", + "selection": "#80CBC466" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -428,7 +434,7 @@ "tab_bar.background": "#263238", "tab.inactive_background": "#263238", "tab.active_background": "#263238", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#192227", "panel.focused_border": null, "pane.focused_border": null, @@ -526,7 +532,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#80CBC4", + "selection": "#80CBC466" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -806,7 +818,7 @@ "tab_bar.background": "#212121", "tab.inactive_background": "#212121", "tab.active_background": "#212121", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#212121", "panel.focused_border": null, "pane.focused_border": null, @@ -904,7 +916,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#616161", + "selection": "#61616199" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -1184,7 +1202,7 @@ "tab_bar.background": "#212121", "tab.inactive_background": "#212121", "tab.active_background": "#212121", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#1a1a1a", "panel.focused_border": null, "pane.focused_border": null, @@ -1282,7 +1300,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#616161", + "selection": "#61616199" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -1562,7 +1586,7 @@ "tab_bar.background": "#141F1D", "tab.inactive_background": "#141F1D", "tab.active_background": "#141F1D", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#141F1D", "panel.focused_border": null, "pane.focused_border": null, @@ -1660,7 +1684,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#71B480", + "selection": "#71B48066" + } + ], "syntax": { "attribute": { "color": "#A68DCD", @@ -1940,7 +1970,7 @@ "tab_bar.background": "#141F1D", "tab.inactive_background": "#141F1D", "tab.active_background": "#141F1D", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#101917", "panel.focused_border": null, "pane.focused_border": null, @@ -2038,7 +2068,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#71B480", + "selection": "#71B48066" + } + ], "syntax": { "attribute": { "color": "#A68DCD", @@ -2318,7 +2354,7 @@ "tab_bar.background": "#FAFAFA", "tab.inactive_background": "#FAFAFA", "tab.active_background": "#FAFAFA", - "search.match_background": null, + "search.match_background": "#FFD70080", "panel.background": "#FAFAFA", "panel.focused_border": null, "pane.focused_border": null, @@ -2416,7 +2452,13 @@ "warning": "#E2931D", "warning.background": "#E2931D1A", "warning.border": "#E2931D", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#80CBC4", + "selection": "#80CBC480" + } + ], "syntax": { "attribute": { "color": "#9C3EDA", @@ -2696,7 +2738,7 @@ "tab_bar.background": "#FFFFFF", "tab.inactive_background": "#FFFFFF", "tab.active_background": "#FFFFFF", - "search.match_background": null, + "search.match_background": "#FFD70080", "panel.background": "#FAFAFA", "panel.focused_border": null, "pane.focused_border": null, @@ -2794,7 +2836,13 @@ "warning": "#E2931D", "warning.background": "#E2931D1A", "warning.border": "#E2931D", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#80CBC4", + "selection": "#80CBC480" + } + ], "syntax": { "attribute": { "color": "#9C3EDA", @@ -3074,7 +3122,7 @@ "tab_bar.background": "#0F111A", "tab.inactive_background": "#0F111A", "tab.active_background": "#0F111A", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#0F111A", "panel.focused_border": null, "pane.focused_border": null, @@ -3172,7 +3220,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#717CB4", + "selection": "#717CB466" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -3452,7 +3506,7 @@ "tab_bar.background": "#0F111A", "tab.inactive_background": "#0F111A", "tab.active_background": "#0F111A", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#090B10", "panel.focused_border": null, "pane.focused_border": null, @@ -3550,7 +3604,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#717CB4", + "selection": "#717CB466" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -3830,7 +3890,7 @@ "tab_bar.background": "#292D3E", "tab.inactive_background": "#292D3E", "tab.active_background": "#292D3E", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#292D3E", "panel.focused_border": null, "pane.focused_border": null, @@ -3928,7 +3988,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#717CB4", + "selection": "#717CB466" + } + ], "syntax": { "attribute": { "color": "#C792EA", @@ -4208,7 +4274,7 @@ "tab_bar.background": "#292D3E", "tab.inactive_background": "#292D3E", "tab.active_background": "#292D3E", - "search.match_background": null, + "search.match_background": "#FFD70066", "panel.background": "#1B1E2B", "panel.focused_border": null, "pane.focused_border": null, @@ -4306,7 +4372,13 @@ "warning": "#FFCB6B", "warning.background": "#FFCB6B1A", "warning.border": "#FFCB6B", - "players": [], + "players": [ + { + "cursor": "#FFD700", + "background": "#717CB4", + "selection": "#717CB466" + } + ], "syntax": { "attribute": { "color": "#C792EA", From 3af249ffe29faa54bc48aacf5b1518128aab009d Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Fri, 22 May 2026 08:29:35 +0200 Subject: [PATCH 08/10] Darken selected-element fill for readable label text Zed uses players[0] for "self" UI accents such as selected toggle buttons and the active-branch chip in the git picker. The fill was the theme's light accent color, leaving the light label text (#EEFFFF) unreadable on top. Set players[0].background to a medium-dark shade of each theme's accent (teal/green/blue/gray) so label text keeps ~4.8:1+ contrast. Selection and cursor colors are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- themes/material-theme.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index d77f791..80a3f9d 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -151,7 +151,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#80CBC4", + "background": "#3A7D76", "selection": "#80CBC466" } ], @@ -535,7 +535,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#80CBC4", + "background": "#3A7D76", "selection": "#80CBC466" } ], @@ -919,7 +919,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#616161", + "background": "#5C5C5C", "selection": "#61616199" } ], @@ -1303,7 +1303,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#616161", + "background": "#5C5C5C", "selection": "#61616199" } ], @@ -1687,7 +1687,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#71B480", + "background": "#3E7A55", "selection": "#71B48066" } ], @@ -2071,7 +2071,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#71B480", + "background": "#3E7A55", "selection": "#71B48066" } ], @@ -2455,7 +2455,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#80CBC4", + "background": "#3A7D76", "selection": "#80CBC480" } ], @@ -2839,7 +2839,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#80CBC4", + "background": "#3A7D76", "selection": "#80CBC480" } ], @@ -3223,7 +3223,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#717CB4", + "background": "#525C9C", "selection": "#717CB466" } ], @@ -3607,7 +3607,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#717CB4", + "background": "#525C9C", "selection": "#717CB466" } ], @@ -3991,7 +3991,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#717CB4", + "background": "#525C9C", "selection": "#717CB466" } ], @@ -4375,7 +4375,7 @@ "players": [ { "cursor": "#FFD700", - "background": "#717CB4", + "background": "#525C9C", "selection": "#717CB466" } ], From dc30c139e0e792d9c6442bb0f3c29bf8ee214936 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Fri, 22 May 2026 08:36:53 +0200 Subject: [PATCH 09/10] Fix unreadable selected toggle buttons (git branch picker) Zed renders a selected ToggleButton with ButtonStyle::Tinted, which resolves its background to info.background, its border to info.border, and its label to colors().text. Both info.background and info.border were null, so Zed fell back to its default vivid blue and the light text label sat on it unreadably (e.g. the "Branches"/"Stash" toggle and the active-branch chip in the git branch picker). Give info an opaque foreground, a faint tinted background, and a defined border across all 12 variants, mirroring the earlier warning fix. Selected toggle buttons now show a subtle tint with a visible border and readable label text. Co-Authored-By: Claude Opus 4.7 (1M context) --- themes/material-theme.json | 72 +++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 80a3f9d..7d713d3 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -127,9 +127,9 @@ "ignored": "#6c869290", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -511,9 +511,9 @@ "ignored": "#5f7a8790", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -895,9 +895,9 @@ "ignored": "#67676790", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -1279,9 +1279,9 @@ "ignored": "#84848490", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -1663,9 +1663,9 @@ "ignored": "#4d645790", "ignored.background": null, "ignored.border": null, - "info": "#6FA0DE70", - "info.background": null, - "info.border": null, + "info": "#6FA0DE", + "info.background": "#6FA0DE1A", + "info.border": "#6FA0DE", "modified": "#6FA0DE60", "modified.background": null, "modified.border": null, @@ -2047,9 +2047,9 @@ "ignored": "#485E5190", "ignored.background": null, "ignored.border": null, - "info": "#6FA0DE70", - "info.background": null, - "info.border": null, + "info": "#6FA0DE", + "info.background": "#6FA0DE1A", + "info.border": "#6FA0DE", "modified": "#6FA0DE60", "modified.background": null, "modified.border": null, @@ -2431,9 +2431,9 @@ "ignored": "#758a9590", "ignored.background": null, "ignored.border": null, - "info": "#6182B870", - "info.background": null, - "info.border": null, + "info": "#6182B8", + "info.background": "#6182B81A", + "info.border": "#6182B8", "modified": "#6182B860", "modified.background": null, "modified.border": null, @@ -2815,9 +2815,9 @@ "ignored": "#62788390", "ignored.background": null, "ignored.border": null, - "info": "#6182B870", - "info.background": null, - "info.border": null, + "info": "#6182B8", + "info.background": "#6182B81A", + "info.border": "#6182B8", "modified": "#6182B860", "modified.background": null, "modified.border": null, @@ -3199,9 +3199,9 @@ "ignored": "#52597590", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -3583,9 +3583,9 @@ "ignored": "#4B526D90", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -3967,9 +3967,9 @@ "ignored": "#676E9590", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, @@ -4351,9 +4351,9 @@ "ignored": "#757CA190", "ignored.background": null, "ignored.border": null, - "info": "#82AAFF70", - "info.background": null, - "info.border": null, + "info": "#82AAFF", + "info.background": "#82AAFF1A", + "info.border": "#82AAFF", "modified": "#82AAFF60", "modified.background": null, "modified.border": null, From a0ff71a0f1c1efb0dd8a488cfd6d3dadbd5a1cf2 Mon Sep 17 00:00:00 2001 From: Niklas Lausch Date: Fri, 22 May 2026 08:40:04 +0200 Subject: [PATCH 10/10] Fix error and success tinted buttons and diagnostics Mirror the warning/info fix for the remaining TintColor variants. Zed's ButtonStyle::Tinted resolves error/success buttons to error.background and success.background, both of which were null (success was undefined entirely), so those tinted buttons fell back to Zed defaults. Give error an opaque foreground, a faint tinted background, and a defined border, and seed success with each theme's green (the darker #91B859 for the light Lighter variants). Applied to all 12 variants. Co-Authored-By: Claude Opus 4.7 (1M context) --- themes/material-theme.json | 144 ++++++++++++++++++------------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/themes/material-theme.json b/themes/material-theme.json index 7d713d3..7a6d6d9 100644 --- a/themes/material-theme.json +++ b/themes/material-theme.json @@ -115,9 +115,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#6c8692", "hidden.background": null, "hidden.border": null, @@ -139,9 +139,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -499,9 +499,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#5f7a87", "hidden.background": null, "hidden.border": null, @@ -523,9 +523,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -883,9 +883,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#676767", "hidden.background": null, "hidden.border": null, @@ -907,9 +907,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -1267,9 +1267,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#848484", "hidden.background": null, "hidden.border": null, @@ -1291,9 +1291,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -1651,9 +1651,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#4d6457", "hidden.background": null, "hidden.border": null, @@ -1675,9 +1675,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -2035,9 +2035,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#485E51", "hidden.background": null, "hidden.border": null, @@ -2059,9 +2059,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -2419,9 +2419,9 @@ "deleted": "#E5393560", "deleted.background": null, "deleted.border": null, - "error": "#E5393570", - "error.background": null, - "error.border": null, + "error": "#E53935", + "error.background": "#E539351A", + "error.border": "#E53935", "hidden": "#758a95", "hidden.background": null, "hidden.border": null, @@ -2443,9 +2443,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#91B859", + "success.background": "#91B8591A", + "success.border": "#91B859", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -2803,9 +2803,9 @@ "deleted": "#E5393560", "deleted.background": null, "deleted.border": null, - "error": "#E5393570", - "error.background": null, - "error.border": null, + "error": "#E53935", + "error.background": "#E539351A", + "error.border": "#E53935", "hidden": "#627883", "hidden.background": null, "hidden.border": null, @@ -2827,9 +2827,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#91B859", + "success.background": "#91B8591A", + "success.border": "#91B859", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -3187,9 +3187,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#525975", "hidden.background": null, "hidden.border": null, @@ -3211,9 +3211,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -3571,9 +3571,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#4B526D", "hidden.background": null, "hidden.border": null, @@ -3595,9 +3595,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -3955,9 +3955,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#676E95", "hidden.background": null, "hidden.border": null, @@ -3979,9 +3979,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null, @@ -4339,9 +4339,9 @@ "deleted": "#f0717860", "deleted.background": null, "deleted.border": null, - "error": "#f0717870", - "error.background": null, - "error.border": null, + "error": "#f07178", + "error.background": "#f071781A", + "error.border": "#f07178", "hidden": "#757CA1", "hidden.background": null, "hidden.border": null, @@ -4363,9 +4363,9 @@ "renamed": null, "renamed.background": null, "renamed.border": null, - "success": null, - "success.background": null, - "success.border": null, + "success": "#C3E88D", + "success.background": "#C3E88D1A", + "success.border": "#C3E88D", "unreachable": null, "unreachable.background": null, "unreachable.border": null,