From 7b72db8a24abe980f82687d1fa64901a7f497a38 Mon Sep 17 00:00:00 2001 From: XShine555 Date: Wed, 23 Sep 2026 21:28:07 +0200 Subject: [PATCH 01/26] Add ambient drift animation to app backdrop; adjust inset and handle reduced motion --- web-player/src/routes/layout.css | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/web-player/src/routes/layout.css b/web-player/src/routes/layout.css index 4d2eea9..caba038 100644 --- a/web-player/src/routes/layout.css +++ b/web-player/src/routes/layout.css @@ -169,10 +169,16 @@ @utility app-backdrop { pointer-events: none; position: fixed; - inset: 0; + inset: -10%; z-index: -10; background-color: var(--mf-bg); background-image: var(--mf-ambient); + animation: ambient-drift 48s ease-in-out infinite alternate; + will-change: transform; + + @media (prefers-reduced-motion: reduce) { + animation: none; + } } @utility app-vignette { pointer-events: none; @@ -307,6 +313,18 @@ button:disabled { } } +@keyframes ambient-drift { + 0% { + transform: translate3d(-3%, -2%, 0) scale(1); + } + 50% { + transform: translate3d(2%, 3%, 0) scale(1.06); + } + 100% { + transform: translate3d(3%, -1%, 0) scale(1.02); + } +} + @keyframes sheen { from { background-position: 200% 0; -- 2.54.0 From f8d431a0d74645c4743187c36d6cd29ee6e88dc6 Mon Sep 17 00:00:00 2001 From: XShine555 Date: Wed, 23 Sep 2026 21:28:17 +0200 Subject: [PATCH 02/26] Implement volume control with mute functionality; update PlayerState to manage muted state --- .../lib/components/player/PlayerBar.svelte | 19 +++++++++++++++++-- web-player/src/lib/player/player.svelte.ts | 15 +++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/web-player/src/lib/components/player/PlayerBar.svelte b/web-player/src/lib/components/player/PlayerBar.svelte index 3b14356..27ff684 100644 --- a/web-player/src/lib/components/player/PlayerBar.svelte +++ b/web-player/src/lib/components/player/PlayerBar.svelte @@ -6,7 +6,9 @@ import { player } from '$lib/player/player.svelte'; import { queuePanel } from '$lib/player/queuePanel.svelte'; import { fmtTime } from '$lib/utils/format'; + import Volume1 from '@lucide/svelte/icons/volume-1'; import Volume2 from '@lucide/svelte/icons/volume-2'; + import VolumeX from '@lucide/svelte/icons/volume-x'; import ListMusic from '@lucide/svelte/icons/list-music'; function seek(value: number) { @@ -48,9 +50,22 @@