diff --git a/webui/static/script.js b/webui/static/script.js index 00657030..5e9d7b23 100644 --- a/webui/static/script.js +++ b/webui/static/script.js @@ -43430,6 +43430,7 @@ function updateAutomationProgressFromData(data) { if (state.status === 'running') { if (statusDot) statusDot.className = 'automation-status running'; + card.classList.add('running'); panel.classList.add('visible'); panel.classList.remove('finished', 'error'); if (_autoProgressHideTimers[aid]) { @@ -43444,6 +43445,7 @@ function updateAutomationProgressFromData(data) { } } else if (state.status === 'finished' || state.status === 'error') { if (statusDot) statusDot.className = 'automation-status ' + (card.querySelector('input[type=checkbox]')?.checked ? 'enabled' : 'disabled'); + card.classList.remove('running'); bar.style.width = '100%'; panel.classList.add('finished'); if (state.status === 'error') panel.classList.add('error'); diff --git a/webui/static/style.css b/webui/static/style.css index 42c2bb80..32347c60 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -28864,6 +28864,15 @@ body { background: rgba(28, 28, 28, 0.98); border-color: rgba(var(--accent-rgb), 0.2); } +.automation-card.running { + border-color: rgba(var(--accent-rgb), 0.35); + box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.15), inset 0 0 12px rgba(var(--accent-rgb), 0.03); + animation: card-glow 2s ease-in-out infinite; +} +@keyframes card-glow { + 0%, 100% { box-shadow: 0 0 12px rgba(var(--accent-rgb), 0.15), inset 0 0 12px rgba(var(--accent-rgb), 0.03); } + 50% { box-shadow: 0 0 18px rgba(var(--accent-rgb), 0.25), inset 0 0 18px rgba(var(--accent-rgb), 0.05); } +} .automation-card.disabled { opacity: 0.55; } .automation-card.disabled:hover { opacity: 0.75; } .automation-card.disabled .automation-name { color: rgba(255,255,255,0.5); }