From be483182127620de578d132f7c09d7dacef62e91 Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Thu, 19 Mar 2026 01:07:46 +0300 Subject: [PATCH] Add dynamic WebGL background with audio reactivity - WebGL shader background with flowing waves, radial pulse, and frequency ring arcs - Reacts to captured audio data (frequency bands + bass) when visualizer is active - Uses page accent color; adapts to dark/light theme via bg-primary blending - Toggle button in header toolbar, state persisted in localStorage - Cached uniform locations and color values to avoid per-frame getComputedStyle calls - i18n support for EN/RU locales Co-Authored-By: Claude Opus 4.6 (1M context) --- media_server/static/css/styles.css | 26 ++- media_server/static/index.html | 7 + media_server/static/js/background.js | 314 +++++++++++++++++++++++++++ media_server/static/js/main.js | 3 + media_server/static/js/player.js | 3 + media_server/static/locales/en.json | 1 + media_server/static/locales/ru.json | 1 + 7 files changed, 354 insertions(+), 1 deletion(-) create mode 100644 media_server/static/js/background.js diff --git a/media_server/static/css/styles.css b/media_server/static/css/styles.css index 1ddeb78..d8f3fd4 100644 --- a/media_server/static/css/styles.css +++ b/media_server/static/css/styles.css @@ -63,6 +63,27 @@ box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08); } +/* Dynamic Background Canvas */ +.bg-shader-canvas { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + z-index: -1; + pointer-events: none; + opacity: 0; + transition: opacity 0.6s ease; +} + +.bg-shader-canvas.visible { + opacity: 1; +} + +body.dynamic-bg-active { + background: transparent; +} + * { margin: 0; padding: 0; @@ -218,6 +239,10 @@ h1 { background: var(--bg-tertiary); } +.header-btn.active { + color: var(--accent); +} + .header-btn svg { width: 16px; height: 16px; @@ -3165,7 +3190,6 @@ footer .separator { font-weight: 500; text-align: center; transition: transform 0.3s ease; - animation: bannerSlideIn 0.4s ease-out; } .connection-banner:not(.hidden) { diff --git a/media_server/static/index.html b/media_server/static/index.html index e45941f..d99734a 100644 --- a/media_server/static/index.html +++ b/media_server/static/index.html @@ -57,6 +57,9 @@ + + +