From 2f275375f755697041ced7d5b48c48bc10193144 Mon Sep 17 00:00:00 2001 From: Gigi Date: Mon, 20 Oct 2025 12:45:12 +0200 Subject: [PATCH] ui(animation): restore archive success burst on manual archive (animating state) --- src/styles/utils/animations.css | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/styles/utils/animations.css b/src/styles/utils/animations.css index c88e4818..bd289f39 100644 --- a/src/styles/utils/animations.css +++ b/src/styles/utils/animations.css @@ -14,6 +14,31 @@ 50% { opacity: 1; transform: scale(1.1); } } +/* Subtle success burst used for archive action */ +@keyframes success-burst { + 0% { + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.45), 0 0 0 0 rgba(16, 185, 129, 0.25); + transform: scale(1); + } + 60% { + box-shadow: 0 0 0 10px rgba(16, 185, 129, 0), 0 0 0 0 rgba(16, 185, 129, 0); + transform: scale(1.05); + } + 100% { + box-shadow: 0 0 0 0 rgba(16, 185, 129, 0), 0 0 0 0 rgba(16, 185, 129, 0); + transform: scale(1); + } +} + +/* Apply archive animation when button enters animating state */ +.mark-as-read-btn.animating { + animation: success-burst 600ms ease-out 1; +} + +.mark-as-read-btn.animating svg { + animation: pulse 600ms ease-in-out 1; +} + @keyframes highlight-pulse-animation { 0%, 100% { box-shadow: 0 0 8px rgba(var(--highlight-rgb, 255, 255, 0), 0.2); transform: scale(1); } 25% { box-shadow: 0 0 20px rgba(var(--highlight-rgb, 255, 255, 0), 0.6); transform: scale(1.02); }