diff --git a/web/src/components/JobCardStack.vue b/web/src/components/JobCardStack.vue index ffbb9b6..6335fce 100644 --- a/web/src/components/JobCardStack.vue +++ b/web/src/components/JobCardStack.vue @@ -204,8 +204,15 @@ watch(() => props.job.id, () => { isHeld.value = false isExpanded.value = false if (wrapperEl.value) { - wrapperEl.value.style.transform = '' - wrapperEl.value.style.opacity = '' + // Suppress the spring transition for this frame — without this the card + // spring-animates from its exit position back to center before the new + // job renders (the "snap-back on processed cards" glitch). + wrapperEl.value.style.transition = 'none' + wrapperEl.value.style.transform = '' + wrapperEl.value.style.opacity = '' + requestAnimationFrame(() => { + if (wrapperEl.value) wrapperEl.value.style.transition = '' + }) } })