From b0393b8e851f3f4e8355f0e513e9129bfc115611 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Jun 2026 16:45:31 -0500 Subject: feat(theme-selector): add browser-based theme design tool A self-contained tool for building Emacs color themes by eye. generate.py emits one HTML page with six languages of tree-sitter-tokenized code, a category-to-color assignment table, a UI-faces table, and an editable palette. Reassign colors from the palette, toggle weight and slant per category, set foreground and background per UI face, then export a theme.json a later build step turns into theme files. The export carries the name, palette, syntax assignments, bold and italic sets, and a ui object of per-face foreground and background. The theme name is both the json name field and the download filename. samples.py holds the language samples and the default color map. theme-selector.html is the generated output. The json-to-theme converter is the next piece, and the part worth TDD. --- scripts/theme-selector/theme-selector.html | 160 +++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 scripts/theme-selector/theme-selector.html (limited to 'scripts/theme-selector/theme-selector.html') diff --git a/scripts/theme-selector/theme-selector.html b/scripts/theme-selector/theme-selector.html new file mode 100644 index 00000000..827529c5 --- /dev/null +++ b/scripts/theme-selector/theme-selector.html @@ -0,0 +1,160 @@ +theme-selector + +

Untitled: color palette

+

code samples

+

Elisp

Go

Python

TypeScript

Shell

C/C++

+

color → category — chip reassigns · N/B/I sets weight & slant · click a header to sort

+
color △stylecategory △example
+

UI / interface faces — foreground & background per face

+
faceforegroundbackgroundpreview
+

palette — add / remove / rename / drag to reorder

+
+
+ + + + +
+

save / load theme

+
+ +
+
+ + + +
+ + \ No newline at end of file -- cgit v1.2.3