[object Object]

← back to Wallco Ai

curator: collapse per-card action buttons by default (compact cards) — reveal on hover + 'Actions' header toggle to pin. Moved damasks #41669/#41715 → damask collection (kept published); removed cartoonish #39423 (file kept, recorded bad); un-flagged #41715

9cc30c0058cfd58e3744f6012dacb171733e1bc8 · 2026-05-27 10:31:14 -0700 · Steve Abrams

Files touched

Diff

commit 9cc30c0058cfd58e3744f6012dacb171733e1bc8
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed May 27 10:31:14 2026 -0700

    curator: collapse per-card action buttons by default (compact cards) — reveal on hover + 'Actions' header toggle to pin. Moved damasks #41669/#41715 → damask collection (kept published); removed cartoonish #39423 (file kept, recorded bad); un-flagged #41715
---
 public/admin/cactus-curator.html | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/public/admin/cactus-curator.html b/public/admin/cactus-curator.html
index b27519f..9b225ac 100644
--- a/public/admin/cactus-curator.html
+++ b/public/admin/cactus-curator.html
@@ -81,7 +81,9 @@
   #marquee { position:fixed; z-index:40; border:1.5px solid #4aa3ff; background:rgba(74,163,255,.16); pointer-events:none; display:none; border-radius:3px; }
   body.dragging { user-select:none; cursor:crosshair; }
   body.dragging .card { cursor:crosshair; }
-  .acts { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:6px 8px 9px; }
+  /* Action buttons collapse by default → compact cards; reveal on hover, or pin via the header toggle. */
+  .acts { display:none; grid-template-columns:1fr 1fr; gap:4px; padding:6px 8px 9px; }
+  .card:hover .acts, body.show-acts .acts { display:grid; }
   .acts button { font:600 11px/1.2 inherit; padding:7px 4px; border-radius:7px; border:1px solid var(--line);
                  background:#1d2023; color:var(--ink); cursor:pointer; transition:filter .1s; }
   .acts button:hover { filter:brightness(1.25); }
@@ -154,6 +156,7 @@
       <input type="range" id="density" min="2" max="9" step="1" value="5">
     </label>
     <button id="autoall" class="ctl-btn" title="auto-detect bad areas on every visible card">🔍 Auto-ID all visible</button>
+    <button id="toggleacts" class="ctl-btn" title="show/hide the Bad/Digital/Fix/Publish buttons on every card (they always show on hover)">▸ Actions</button>
     <span class="legend"><b>drag</b> across images to select · <b>shift+drag on an image</b> = ▢ box a bad area (red) · <b>shift+click</b> a card to add one · keys on hover: <code>1</code>bad <code>2</code>digital <code>3</code>fix <code>4</code>publish <code>x</code>select</span>
   </div>
 </header>
@@ -216,6 +219,16 @@ $('autoall').addEventListener('click', async () => {
   await Promise.all(Array.from({ length: 4 }, worker));
   btn.textContent = orig; btn.disabled = false;
 });
+// Collapse/pin the per-card action buttons (collapsed by default; always reveal on hover).
+(function(){
+  const tb = $('toggleacts');
+  const set = on => { document.body.classList.toggle('show-acts', on); tb.textContent = on ? '▾ Actions' : '▸ Actions'; };
+  set(localStorage.getItem('cc_showacts') === '1');
+  tb.addEventListener('click', () => {
+    const on = !document.body.classList.contains('show-acts');
+    localStorage.setItem('cc_showacts', on ? '1' : '0'); set(on);
+  });
+})();
 $('sort').addEventListener('change', e => { LS.s = e.target.value; render(); });
 $('filter').addEventListener('change', e => { LS.f = e.target.value; render(); });
 

← 99be6d6 Validate cactus seamless redo: circular-padding + gate = 4/4  ·  back to Wallco Ai  ·  curator: auto-ID now PERSISTS its dotted error-boxes (auto-f 4a8fa2b →