From 08dcd00217f2f2f30bd17d190f17f257e4cce822 Mon Sep 17 00:00:00 2001 From: BoulderBadgeDad Date: Wed, 3 Jun 2026 16:47:22 -0700 Subject: [PATCH] Enrichment manager modal: orb-style entrance (springy rise + cascading worker rail) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The modal opened with a plain pop — out of place next to the worker orbs. Now it springs up from the bottom (toward the Manage Workers button) with the SAME easing the orbs reveal with, then the worker rail assembles one-by-one: each chip springs in staggered (scale 0.4→1) with a brief pulse of its own brand colour. Mirrors the orb motion language AND walks your eye across every worker + its live state dot / coverage bar as they land — cool + informative. Respects prefers-reduced-motion. --- webui/static/enrichment-manager.js | 4 +++- webui/static/style.css | 31 ++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/webui/static/enrichment-manager.js b/webui/static/enrichment-manager.js index 94b35299..b1ccfe60 100644 --- a/webui/static/enrichment-manager.js +++ b/webui/static/enrichment-manager.js @@ -349,14 +349,16 @@ function _emRailSubText(status) { function renderEnrichmentRail() { const rail = document.getElementById('em-rail'); if (!rail) return; - rail.innerHTML = ENRICHMENT_WORKERS.map(w => { + rail.innerHTML = ENRICHMENT_WORKERS.map((w, i) => { const status = enrichmentManagerState.statuses[w.id]; const info = _emStatusInfo(status); const pct = _emOverallPct(status); const cov = pct == null ? '' : ` `; + const accent = _emHexToRgb(w.color); return `