aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/theme-studio.template.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-24 14:44:28 -0400
committerCraig Jennings <c@cjennings.net>2026-06-24 16:15:24 -0400
commitfa5b28ea69f3bff0941f8a097a9746b7a67fa900 (patch)
tree71571b286b77b9168de3308f50877ad7f6fa4854 /scripts/theme-studio/theme-studio.template.html
parentc11ad211f5d72b6ee2b48d80f25d16e3e85248eb (diff)
downloaddotemacs-fa5b28ea69f3bff0941f8a097a9746b7a67fa900.tar.gz
dotemacs-fa5b28ea69f3bff0941f8a097a9746b7a67fa900.zip
feat(theme-studio): nerd-icons gallery as a hue-ordered icon grid
The nerd-icons pane is now a grid: one row per color face, the rows ordered by hue so families cluster, distinct icons (deduped within a color) drawn in their color with the icon's nerd-font name beneath. A "preview:" dropdown above the grid picks the glyph size in points, with Left/Right arrows to step it. Single-pane apps show it disabled, naming the preview. This replaces the v1 legend in the pane, whose data is still captured for round-trip. build-nerd-icons-legend.el is now a library. A cj/nerd-icons-write-legend entry point requires nerd-icons only at write time, so the capture logic loads and unit-tests without it. It dedupes icons by name within a face, computes each face's native hue, and orders the groups by hue. Writing the test surfaced a latent bug: face-hsl used (cadr (assoc t spec)), which grabs the first keyword instead of the plist. It only worked because the real faces fall through to the face-foreground branch. I fixed it to a correct t-clause parse. Coverage: 7 ERT capture tests (dedupe, hue order, lightness tiebreak, name sort, skip rules), 4 Python validator edges, and browser gates for the grid and the size dropdown. Locate stays color-level: clicking a color flashes its icons, and clicking an icon flashes its color row. Icons aren't individually editable, so there's nothing per-icon to select.
Diffstat (limited to 'scripts/theme-studio/theme-studio.template.html')
-rw-r--r--scripts/theme-studio/theme-studio.template.html2
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/theme-studio/theme-studio.template.html b/scripts/theme-studio/theme-studio.template.html
index a6f50beb7..244e749e5 100644
--- a/scripts/theme-studio/theme-studio.template.html
+++ b/scripts/theme-studio/theme-studio.template.html
@@ -95,7 +95,7 @@ STYLES_CSS</style>
<table class="leg" id="pkgtable"><thead><tr><th title="lock a decided face"></th><th onclick="srtTable('pkgbody',1)">face &#9651;</th><th onclick="srtTable('pkgbody',2)">fg &#9651;</th><th onclick="srtTable('pkgbody',3)">bg &#9651;</th><th>style</th><th title="face :box (border)">box</th><th onclick="srtTable('pkgbody',6)">contrast &#9651;</th></tr></thead><tbody id="pkgbody"></tbody></table>
</section>
<section class="pane grow" style="display:flex;flex-direction:column">
- <div class="langbar"><label id="pkgprevlabel" style="color:#b4b1a2">preview</label></div>
+ <div class="langbar"><label style="color:#b4b1a2">preview: </label><select id="pkgprevsel" style="background:#3a3d44;color:#e8e8ea;border:1px solid #5a5d68;border-radius:3px;padding:1px 4px;font:inherit"></select> <span id="pkgprevinfo" style="color:#b4b1a2"></span></div>
<div id="pkgpreview" class="mock" style="overflow:auto;min-height:60vh"></div>
</section>
</div>