diff --git a/webui/index.html b/webui/index.html
index dce9bfda..7b7c047f 100644
--- a/webui/index.html
+++ b/webui/index.html
@@ -550,7 +550,8 @@
diff --git a/webui/static/style.css b/webui/static/style.css
index 7b34c963..ec9b4fb3 100644
--- a/webui/static/style.css
+++ b/webui/static/style.css
@@ -33902,8 +33902,11 @@ body.helper-mode-active #dashboard-activity-feed:hover {
position: relative;
width: 44px;
height: 44px;
- background: linear-gradient(135deg, rgba(51, 51, 51, 0.2) 0%, rgba(80, 80, 80, 0.25) 100%);
+ background: linear-gradient(135deg,
+ rgba(51, 51, 51, 0.12) 0%,
+ rgba(80, 80, 80, 0.18) 100%);
backdrop-filter: blur(20px) saturate(1.4);
+ -webkit-backdrop-filter: blur(20px) saturate(1.4);
border: 1.5px solid rgba(120, 120, 120, 0.25);
border-radius: 50%;
cursor: pointer;
@@ -33911,53 +33914,113 @@ body.helper-mode-active #dashboard-activity-feed:hover {
align-items: center;
justify-content: center;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- box-shadow: 0 4px 16px rgba(80, 80, 80, 0.15), 0 2px 8px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.08);
+ box-shadow:
+ 0 4px 16px rgba(80, 80, 80, 0.15),
+ 0 2px 8px rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
-.discogs-logo-text {
- font-size: 14px;
- font-weight: 900;
- color: rgba(255, 255, 255, 0.7);
- letter-spacing: -0.5px;
- font-family: -apple-system, sans-serif;
+.discogs-logo {
+ width: 24px;
+ height: 24px;
+ opacity: 0.6;
+ filter: brightness(0) invert(1);
+ transition: all 0.3s ease;
}
.discogs-button:hover {
transform: scale(1.1);
border-color: rgba(180, 180, 180, 0.4);
- box-shadow: 0 6px 24px rgba(120, 120, 120, 0.3), 0 3px 12px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.12);
+ box-shadow:
+ 0 6px 24px rgba(120, 120, 120, 0.3),
+ 0 3px 12px rgba(0, 0, 0, 0.2),
+ inset 0 1px 0 rgba(255, 255, 255, 0.12);
+}
+
+/* Spinner ring */
+.discogs-spinner {
+ position: absolute;
+ width: 44px;
+ height: 44px;
+ border: 3px solid transparent;
+ border-top-color: rgba(180, 180, 180, 0.8);
+ border-right-color: rgba(180, 180, 180, 0.5);
+ border-radius: 50%;
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ pointer-events: none;
+}
+
+@keyframes discogs-spin {
+ from { transform: rotate(0deg); }
+ to { transform: rotate(360deg); }
+}
+
+/* Active State */
+.discogs-button.active .discogs-spinner {
+ opacity: 1;
+ animation: discogs-spin 1.2s linear infinite;
}
.discogs-button.active {
- border-color: rgba(120, 120, 120, 0.5);
- animation: discogs-pulse 2s ease-in-out infinite;
+ background: linear-gradient(135deg,
+ rgba(120, 120, 120, 0.22) 0%,
+ rgba(80, 80, 80, 0.28) 100%);
+ border-color: rgba(180, 180, 180, 0.5);
+ box-shadow:
+ 0 6px 24px rgba(120, 120, 120, 0.35),
+ 0 3px 12px rgba(0, 0, 0, 0.2),
+ inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
-@keyframes discogs-pulse {
- 0%, 100% { box-shadow: 0 4px 16px rgba(120, 120, 120, 0.15), 0 0 0 rgba(120, 120, 120, 0); }
- 50% { box-shadow: 0 4px 16px rgba(120, 120, 120, 0.3), 0 0 12px rgba(120, 120, 120, 0.15); }
+.discogs-button.active .discogs-logo {
+ opacity: 1;
+ filter: brightness(0) invert(1) drop-shadow(0 0 6px rgba(200, 200, 200, 0.4));
}
+/* Complete/Idle State */
+.discogs-button.complete {
+ background: linear-gradient(135deg,
+ rgba(76, 175, 80, 0.15) 0%,
+ rgba(56, 142, 60, 0.20) 100%);
+ border-color: rgba(76, 175, 80, 0.35);
+ box-shadow:
+ 0 4px 16px rgba(76, 175, 80, 0.2),
+ 0 2px 8px rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
+}
+
+.discogs-button.complete .discogs-logo {
+ opacity: 0.8;
+ filter: brightness(0) invert(0.6) sepia(1) saturate(3) hue-rotate(80deg);
+}
+
+.discogs-button.complete .discogs-spinner {
+ opacity: 0;
+}
+
+/* Paused State */
.discogs-button.paused {
+ background: linear-gradient(135deg,
+ rgba(255, 193, 7, 0.12) 0%,
+ rgba(255, 152, 0, 0.18) 100%);
+ border-color: rgba(255, 193, 7, 0.35);
+ box-shadow:
+ 0 4px 16px rgba(255, 193, 7, 0.2),
+ 0 2px 8px rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
+}
+
+.discogs-button.paused .discogs-logo {
opacity: 0.5;
+ filter: brightness(0) invert(0.6) sepia(1) saturate(5) hue-rotate(15deg);
}
-.discogs-button.complete .discogs-logo-text {
- color: rgba(76, 175, 80, 0.8);
+.discogs-button.paused .discogs-spinner {
+ opacity: 0;
}
-.discogs-spinner {
- display: none;
- position: absolute;
- top: -3px; left: -3px; right: -3px; bottom: -3px;
- border: 2px solid transparent;
- border-top-color: rgba(120, 120, 120, 0.6);
- border-radius: 50%;
- animation: spin 1s linear infinite;
-}
-
-.discogs-button.active .discogs-spinner { display: block; }
-
+/* Tooltip */
.discogs-tooltip {
display: none;
position: absolute;
diff --git a/webui/static/worker-orbs.js b/webui/static/worker-orbs.js
index 508b1b54..935579c9 100644
--- a/webui/static/worker-orbs.js
+++ b/webui/static/worker-orbs.js
@@ -20,6 +20,7 @@
{ container: '.genius-enrich-button-container', color: [255, 255, 100] },
{ container: '.tidal-enrich-button-container', color: [180, 180, 255] },
{ container: '.qobuz-enrich-button-container', color: [1, 112, 239] },
+ { container: '.discogs-button-container', color: [180, 180, 180] },
{ container: '.hydrabase-button-container', color: [200, 200, 200] },
{ container: '.soulid-button-container', color: [29, 185, 84], rainbow: true },
{ container: '.repair-button-container', color: [180, 130, 255], rainbow: true },