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) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 01:07:46 +03:00
parent 0eca8292cb
commit be48318212
7 changed files with 354 additions and 1 deletions

View File

@@ -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) {