From b185118950466bd1b0e2de3705fcbc3f9e6dbf2f Mon Sep 17 00:00:00 2001 From: malkuthro <166633396+malkuthro@users.noreply.github.com> Date: Fri, 8 May 2026 13:10:35 +0200 Subject: [PATCH] feat(sidebar): refresh action icons (#108) * feat(sidebar): refresh action icons * fix(sidebar): label glyph toolbar buttons --- CHANGELOG.md | 7 + docs/README.md | 1 + docs/designs/README.md | 9 + docs/designs/sidebar-icon-proposals.html | 411 +++++++++++++++++++++++ docs/designs/sidebar-icon-proposals.png | Bin 0 -> 103920 bytes web/sidebar/constants.js | 25 +- web/sidebar/tree.js | 137 ++++++-- 7 files changed, 553 insertions(+), 37 deletions(-) create mode 100644 docs/designs/README.md create mode 100644 docs/designs/sidebar-icon-proposals.html create mode 100644 docs/designs/sidebar-icon-proposals.png diff --git a/CHANGELOG.md b/CHANGELOG.md index a239a34..cc12175 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,6 +61,13 @@ The format is inspired by Keep a Changelog and SemVer. no-context-menu section header). Fresh-install path is unchanged — the Save modal's "+ New directory…" entry still creates the first directory when the workflow store is empty. Closes #104. +- **Kforge Labs sidebar action icons now use a first-pass ForgeFlow-style + icon set.** Snapshot Load / Save, Tools export / install / help, the + missing-pack canvas handoff, repo-mode grouping, and whole-canvas workflow + save now use the approved compact letter / simple-glyph treatment from + `docs/designs/sidebar-icon-proposals.html`, reducing repeated generic + cloud / grid / floppy symbols while leaving all actions and tooltips + unchanged. Tools now also exposes an `H` help shortcut to the user guide. - **Node-list hover previews now stay at the intended 300px mock-node width.** The preview card previously had only a `min-width` plus viewport `max-width`, so long node descriptions could set the card's intrinsic width and stretch the diff --git a/docs/README.md b/docs/README.md index 823d0fb..0cadf49 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,6 +7,7 @@ Three audience buckets — pick where to look based on what you're trying to do. | Use a node in your ComfyUI workflow | [`user_guide/`](user_guide/) | Per-node guides, screenshots, recipes | | Look something up — a term, a node ID, a list | [`reference/`](reference/) | [Glossary](reference/glossary.md), node inventory, spec sheets | | Cut a release / fork a node / debug CI / hit the Comfy Registry API | [`maintainers/`](maintainers/) | [Releasing](maintainers/releasing.md), [Registry API](maintainers/registry-api.md), [Node versioning rules](maintainers/node-versioning.md) | +| Compare UI design proposals before implementation | [`designs/`](designs/) | Focused mockups and screenshots for in-progress UX decisions | ## Files that intentionally stay at the repo root diff --git a/docs/designs/README.md b/docs/designs/README.md new file mode 100644 index 0000000..fcea2af --- /dev/null +++ b/docs/designs/README.md @@ -0,0 +1,9 @@ +# Design Proposals + +Small, reviewable UI mockups for decisions that benefit from visual comparison +before they land in the runtime sidebar. + +| File | Purpose | +|---|---| +| [`sidebar-icon-proposals.html`](sidebar-icon-proposals.html) | Side-by-side icon direction mockup for the Kforge Labs sidebar action rows | +| [`sidebar-icon-proposals.png`](sidebar-icon-proposals.png) | Rendered preview of the current icon proposal state | diff --git a/docs/designs/sidebar-icon-proposals.html b/docs/designs/sidebar-icon-proposals.html new file mode 100644 index 0000000..afc89ad --- /dev/null +++ b/docs/designs/sidebar-icon-proposals.html @@ -0,0 +1,411 @@ + + + + + + + Kforge Labs Sidebar Icon Proposals + + + +
+

Kforge Labs Sidebar Icon Proposals

+

Two visual directions for replacing the generic action icons. Both preserve the current compact ComfyUI sidebar density; only the icon language and semantic color treatment change.

+ +
+
+
+

Proposal A — ForgeFlow Polish

+

Conservative: refined line icons, clearer semantic color, familiar shapes. Lowest implementation risk.

+
+ +
Best when we want an immediate improvement without inventing a branded icon system. The main change is semantic consistency: sky means mode/selection, green means primary add/create, neutral means utility.
+
+ +
+
+

Proposal B — Kforge Glyphs

+

More custom: angular glyphs, paired “state capsule” buttons, and stronger Kforge/Fabrication flavor.

+
+ +
Best if we want a recognizable Kforge look. More distinctive, but it should ship as a small local icon registry so the shapes stay consistent over time.
+
+
+
+ + diff --git a/docs/designs/sidebar-icon-proposals.png b/docs/designs/sidebar-icon-proposals.png new file mode 100644 index 0000000000000000000000000000000000000000..30fd7ae983bdb5d2fc9afc34c1a74631a7359b77 GIT binary patch literal 103920 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

a5APlkBB==OLh_8=E) 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 z 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 literal 0 HcmV?d00001 diff --git a/web/sidebar/constants.js b/web/sidebar/constants.js index 6cc9a0b..85caa33 100644 --- a/web/sidebar/constants.js +++ b/web/sidebar/constants.js @@ -105,7 +105,7 @@ export function ensureStyle() { s.textContent = ` .koolook-sidebar { display: flex; flex-direction: column; height: 100%; font-size: 13px; user-select: none; padding-top: 10px; } .koolook-search-row { margin: 6px; flex-shrink: 0; } -.koolook-actions-row { display: flex; align-items: center; gap: 4px; padding: 2px 6px; flex-shrink: 0; } +.koolook-actions-row { display: flex; align-items: center; gap: 3px; padding: 2px 6px; flex-shrink: 0; } .koolook-actions-label { font-size: 10px; opacity: 0.55; text-transform: uppercase; letter-spacing: 0.08em; flex: 1; font-weight: 600; } /* Snapshot status indicator — replaces the static "Snapshot" label. Shows the currently-tracked preset name + a colored dot indicating whether the @@ -126,8 +126,8 @@ export function ensureStyle() { .koolook-search-icon { position: absolute; left: 8px; top: 50%; transform: translateY(-50%); opacity: 0.55; font-size: 11px; pointer-events: none; } .koolook-search { width: 100%; padding: 5px 8px 5px 26px; box-sizing: border-box; background: var(--comfy-input-bg, rgba(0,0,0,0.25)); border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 4px; color: var(--input-text, inherit); font-size: 12px; outline: none; } .koolook-search:focus { border-color: var(--p-primary-color, rgba(100,150,255,0.5)); } -.koolook-add-btn { padding: 0 10px; background: var(--comfy-input-bg, rgba(0,0,0,0.25)); border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 4px; cursor: pointer; color: var(--input-text, inherit); font-size: 12px; line-height: 1; flex-shrink: 0; } -.koolook-add-btn:hover { background: rgba(255,255,255,0.1); } +.koolook-add-btn { padding: 0; width: 28px; height: 17px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; background: var(--comfy-input-bg, rgba(0,0,0,0.25)); border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 3px; cursor: pointer; color: rgba(218,221,226,0.78); font-size: 12px; line-height: 1; flex-shrink: 0; } +.koolook-add-btn:hover { background: rgba(255,255,255,0.1); color: rgba(248,249,250,0.96); } .koolook-add-btn:active { background: rgba(255,255,255,0.15); } /* Dusty-green accent on the "+" Add-to-favorites button — distinguishes the primary action in the Nodes row from the neutral toolbar buttons it sits @@ -135,8 +135,17 @@ export function ensureStyle() { .koolook-add-btn-green { background: rgba(120, 165, 100, 0.25); border-color: rgba(120, 165, 100, 0.5); } .koolook-add-btn-green:hover { background: rgba(120, 165, 100, 0.45); } .koolook-add-btn-green:active { background: rgba(120, 165, 100, 0.6); } -.koolook-icon-btn { padding: 0 10px; font-size: 12px; } +.koolook-icon-btn { padding: 0; width: 28px; height: 17px; font-size: 12px; } .koolook-icon-btn:disabled { opacity: 0.35; cursor: not-allowed; } +.koolook-icon-btn > .pi { font-size: 11px; } +.koolook-letter-icon { font-size: 11px; font-weight: 800; line-height: 1; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } +.koolook-inline-svg-icon { width: 11px; height: 11px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } +.koolook-filled-square-icon { display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: currentColor; opacity: 0.9; } +.koolook-stair-icon, .koolook-list-icon { display: inline-grid; grid-template-rows: repeat(3, 1.75px); gap: 2px; width: 15px; height: 10px; align-content: center; } +.koolook-stair-icon span, .koolook-list-icon span { display: block; width: 11px; height: 1.75px; background: currentColor; border-radius: 0; } +.koolook-stair-icon span:nth-child(2) { margin-left: 2px; } +.koolook-stair-icon span:nth-child(3) { margin-left: 4px; } +.koolook-add-btn-green > .pi { font-size: 13px; -webkit-text-stroke: 0.5px currentColor; } .koolook-tree { flex: 1; overflow-y: auto; padding: 0 4px 8px; } .koolook-row { display: flex; align-items: center; padding: 3px 6px; cursor: pointer; gap: 6px; border-radius: 3px; line-height: 1.3; } .koolook-row:hover { background: var(--comfy-input-bg, rgba(255,255,255,0.06)); } @@ -262,10 +271,10 @@ export function ensureStyle() { .koolook-snapshot-row-btn:hover { background: rgba(255,255,255,0.08); } .koolook-snapshot-row-btn-danger:hover { background: rgba(220,80,80,0.25); border-color: rgba(220,80,80,0.4); } .koolook-snapshot-empty { padding: 20px; opacity: 0.5; font-size: 12px; text-align: center; } -.koolook-mode-toggle { display: inline-flex; gap: 0; margin-right: 4px; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 4px; overflow: hidden; } -.koolook-mode-toggle-btn { padding: 0 8px; height: 22px; background: transparent; border: none; cursor: pointer; color: inherit; font-size: 11px; opacity: 0.5; line-height: 1; } -.koolook-mode-toggle-btn:hover { background: rgba(255,255,255,0.06); opacity: 0.85; } -.koolook-mode-toggle-btn.koolook-mode-active { background: rgba(80,140,235,0.25); opacity: 1; } +.koolook-mode-toggle { display: inline-flex; gap: 0; margin-right: 3px; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 3px; overflow: hidden; } +.koolook-mode-toggle-btn { padding: 0; width: 28px; height: 17px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; background: transparent; border: none; cursor: pointer; color: rgba(218,221,226,0.78); font-size: 11px; opacity: 1; line-height: 1; } +.koolook-mode-toggle-btn:hover { background: rgba(255,255,255,0.06); color: rgba(248,249,250,0.96); } +.koolook-mode-toggle-btn.koolook-mode-active { background: rgba(80,140,235,0.25); color: rgba(248,249,250,0.96); } .koolook-leaf-unresolved { opacity: 0.55; font-style: italic; } .koolook-leaf-crumb { opacity: 0.5; font-size: 11px; margin-right: 1px; } .koolook-pack-badge { opacity: 0.5; font-size: 11px; margin-left: 6px; flex-shrink: 0; white-space: nowrap; } diff --git a/web/sidebar/tree.js b/web/sidebar/tree.js index b4779ae..b42a108 100644 --- a/web/sidebar/tree.js +++ b/web/sidebar/tree.js @@ -117,6 +117,38 @@ const SECTION_ID_NODES = "nodes"; const SECTION_ID_WORKFLOWS = "workflows"; const SECTION_ID_TAGS = "tags"; +const SVG_NS = "http://www.w3.org/2000/svg"; +const HELP_URL = "https://github.com/malkuthro/ComfyUI-Koolook/tree/main/docs/user_guide"; + +const TOOLBAR_ICONS = { + loadSnapshot: { kind: "letter", text: "L" }, + saveSnapshot: { kind: "letter", text: "S" }, + help: { kind: "letter", text: "H" }, + exportStarter: { kind: "letter", text: "E" }, + installMissing: { kind: "letter", text: "I" }, + dropMissing: { + kind: "svg", + shapes: [ + ["path", { d: "M10 10 5 5" }], + ["path", { d: "M5 5v5" }], + ["path", { d: "M5 5h5" }], + ["path", { d: "m14 10 5-5" }], + ["path", { d: "M19 5v5" }], + ["path", { d: "M19 5h-5" }], + ["path", { d: "m10 14-5 5" }], + ["path", { d: "M5 19v-5" }], + ["path", { d: "M5 19h5" }], + ["path", { d: "m14 14 5 5" }], + ["path", { d: "M19 19v-5" }], + ["path", { d: "M19 19h-5" }], + ["circle", { cx: "12", cy: "12", r: "1.2" }], + ], + }, + repoMode: { kind: "stair" }, + categoryMode: { kind: "list" }, + saveWorkflow: { kind: "square" }, +}; + // ============================================================================= // Folder expansion state — Map; truthy = expanded. // Path keys are auto-prefixed by the engine with the owning section's id, so @@ -1160,26 +1192,66 @@ function gatherTags(query) { // DOM helpers // ============================================================================= -// Toolbar button factory — replaces the four near-identical button-construction -// blocks in `renderPanel` for icon-only buttons (export, new-dir, save-canvas, -// save-selection). The "+" Add-to-favorites button (`addBtn`) is text-content -// only and stays hand-rolled; this factory does not cover that case. Every -// covered button shares the `koolook-add-btn koolook-icon-btn` pair (both -// styling rules; the disabled state on `:disabled` lives on `koolook-icon-btn`). -// `iconClass` is the PrimeIcons class (e.g. `pi pi-download`). -// -// The icon span is built with `createElement` + `className` rather than -// `innerHTML = …${iconClass}…` so a future caller passing a non-static -// `iconClass` (e.g. data sourced from a workflow or registry) can't inject -// markup. All current callers pass static literals — this is helper-boundary -// hardening, not a fix for an active vulnerability. -function makeToolbarButton({ iconClass, title, onClick }) { +function makeIconElement(icon) { + if (icon && icon.kind === "letter") { + const el = document.createElement("span"); + el.className = "koolook-letter-icon"; + el.textContent = icon.text; + el.setAttribute("aria-hidden", "true"); + return el; + } + if (icon && icon.kind === "square") { + const el = document.createElement("span"); + el.className = "koolook-filled-square-icon"; + el.setAttribute("aria-hidden", "true"); + return el; + } + if (icon && icon.kind === "stair") { + const el = document.createElement("span"); + el.className = "koolook-stair-icon"; + el.setAttribute("aria-hidden", "true"); + for (let i = 0; i < 3; i += 1) { + el.appendChild(document.createElement("span")); + } + return el; + } + if (icon && icon.kind === "list") { + const el = document.createElement("span"); + el.className = "koolook-list-icon"; + el.setAttribute("aria-hidden", "true"); + for (let i = 0; i < 3; i += 1) { + el.appendChild(document.createElement("span")); + } + return el; + } + if (icon && icon.kind === "svg") { + const svg = document.createElementNS(SVG_NS, "svg"); + svg.classList.add("koolook-inline-svg-icon"); + svg.setAttribute("viewBox", "0 0 24 24"); + svg.setAttribute("aria-hidden", "true"); + for (const [tag, attrs] of icon.shapes || []) { + const shape = document.createElementNS(SVG_NS, tag); + for (const [key, value] of Object.entries(attrs)) { + shape.setAttribute(key, value); + } + svg.appendChild(shape); + } + return svg; + } + const el = document.createElement("span"); + el.className = typeof icon === "string" ? icon : (icon?.iconClass || ""); + el.setAttribute("aria-hidden", "true"); + return el; +} + +// Toolbar button factory for icon-only action buttons. Icons are passed as +// either PrimeIcon class strings or static local glyph descriptors. +function makeToolbarButton({ iconClass, icon, title, onClick }) { const btn = document.createElement("button"); btn.className = "koolook-add-btn koolook-icon-btn"; - const icon = document.createElement("span"); - icon.className = iconClass; - btn.appendChild(icon); + btn.appendChild(makeIconElement(icon || iconClass)); btn.title = title; + btn.setAttribute("aria-label", title); btn.addEventListener("click", onClick); return btn; } @@ -2255,7 +2327,7 @@ export function renderPanel(container) { window.addEventListener(SNAPSHOT_STATUS_CHANGED_EVENT, refreshSnapshotStatus); snapshotRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-cloud-download", + icon: TOOLBAR_ICONS.loadSnapshot, title: "Load a saved snapshot (replaces current state)", onClick: openLoadDialog, })); @@ -2291,7 +2363,7 @@ export function renderPanel(container) { window.addEventListener(SNAPSHOT_STATUS_CHANGED_EVENT, refreshQuickSaveDisabled); snapshotRow.appendChild(quickSaveBtn); snapshotRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-cloud-upload", + icon: TOOLBAR_ICONS.saveSnapshot, title: "Save current state — overwrites the last-loaded preset, or prompts for a name", onClick: openSaveDialog, })); @@ -2325,7 +2397,7 @@ export function renderPanel(container) { toolsRow.appendChild(toolsLabel); toolsRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-download", + icon: TOOLBAR_ICONS.exportStarter, title: "Export current state as starter_preset.json (copies snapshot JSON to clipboard — paste into web/starter_preset.json to ship as the next release's starter)", onClick: exportStarterPreset, })); @@ -2338,7 +2410,7 @@ export function renderPanel(container) { // confirmation. Click handlers don't read picks here — the modal pulls // a fresh `loadUserPicks()` snapshot at open-time. toolsRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-cloud-download", + icon: TOOLBAR_ICONS.installMissing, title: "Install missing custom nodes for current picks (via ComfyUI-Manager)", onClick: () => showInstallMissingModal({ picks: loadUserPicks() }), })); @@ -2352,7 +2424,7 @@ export function renderPanel(container) { // handoff to Manager's UI-driven install path that doesn't go through // /customnode/install/git_url's security gate. toolsRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-th-large", + icon: TOOLBAR_ICONS.dropMissing, title: "Drop placeholders for missing packs onto canvas — then use Manager's \"Install Missing Custom Nodes\" (works at security_level=normal)", onClick: async () => { const picks = loadUserPicks(); @@ -2378,6 +2450,12 @@ export function renderPanel(container) { }, })); + toolsRow.appendChild(makeToolbarButton({ + icon: TOOLBAR_ICONS.help, + title: "Open Kforge Labs user guide", + onClick: () => window.open(HELP_URL, "_blank", "noopener,noreferrer"), + })); + container.appendChild(toolsRow); const dividerBeforeSearch = document.createElement("div"); @@ -2427,14 +2505,13 @@ export function renderPanel(container) { const modeToggle = document.createElement("div"); modeToggle.className = "koolook-mode-toggle"; - function makeModeBtn(modeId, iconClass, title) { + function makeModeBtn(modeId, icon, title) { const btn = document.createElement("button"); btn.className = "koolook-mode-toggle-btn"; btn.title = title; + btn.setAttribute("aria-label", title); btn.dataset.mode = modeId; - const icon = document.createElement("span"); - icon.className = iconClass; - btn.appendChild(icon); + btn.appendChild(makeIconElement(icon)); btn.addEventListener("click", () => { if (loadGroupMode() === modeId) return; saveGroupMode(modeId); @@ -2446,12 +2523,12 @@ export function renderPanel(container) { const repoModeBtn = makeModeBtn( "repo", - "pi pi-sitemap", + TOOLBAR_ICONS.repoMode, "Group by pack — each repo's nodes under their original category subtree.", ); const categoryModeBtn = makeModeBtn( "category", - "pi pi-bars", + TOOLBAR_ICONS.categoryMode, "Group by theme — picks regrouped by category theme (e.g. all image nodes together) regardless of source pack.", ); @@ -2474,8 +2551,10 @@ export function renderPanel(container) { addBtn.className = "koolook-add-btn koolook-icon-btn koolook-add-btn-green"; const addBtnIcon = document.createElement("i"); addBtnIcon.className = "pi pi-plus"; + addBtnIcon.setAttribute("aria-hidden", "true"); addBtn.appendChild(addBtnIcon); addBtn.title = "Add the selected canvas node(s) to favorites"; + addBtn.setAttribute("aria-label", "Add the selected canvas node(s) to favorites"); addBtn.addEventListener("click", () => { const types = getSelectedNodeTypes(); if (types.length === 0) { @@ -2582,7 +2661,7 @@ export function renderPanel(container) { }; wfRow.appendChild(makeToolbarButton({ - iconClass: "pi pi-save", + icon: TOOLBAR_ICONS.saveWorkflow, title: "Save entire canvas as a workflow", onClick: () => { // Check emptiness first so a serialize() throw doesn't get