diff --git a/webui/static/style.css b/webui/static/style.css index 6c49ae81..f5f85ebc 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -142,18 +142,21 @@ body.reduce-effects .sidebar::after { display: none !important; } +/* translate + opacity only — NO scale(). The orbs are blur(28px); scaling a blurred + element re-rasterizes the blur every frame, but translating it just moves the cached + layer on the compositor (free). Same drifting glow, no per-frame re-blur (#935). */ @keyframes sidebar-orb-1 { - 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; } - 25% { transform: translate(30px, 80px) scale(1.2); opacity: 1; } - 50% { transform: translate(-10px, 180px) scale(0.9); opacity: 0.6; } - 75% { transform: translate(20px, 50px) scale(1.15); opacity: 0.9; } + 0%, 100% { transform: translate(0, 0); opacity: 0.5; } + 25% { transform: translate(30px, 80px); opacity: 1; } + 50% { transform: translate(-10px, 180px); opacity: 0.6; } + 75% { transform: translate(20px, 50px); opacity: 0.9; } } @keyframes sidebar-orb-2 { - 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; } - 30% { transform: translate(-20px, -100px) scale(1.25); opacity: 0.4; } - 60% { transform: translate(30px, -50px) scale(0.85); opacity: 1; } - 80% { transform: translate(-10px, 40px) scale(1.1); opacity: 0.5; } + 0%, 100% { transform: translate(0, 0); opacity: 0.6; } + 30% { transform: translate(-20px, -100px); opacity: 0.4; } + 60% { transform: translate(30px, -50px); opacity: 1; } + 80% { transform: translate(-10px, 40px); opacity: 0.5; } } .sidebar > * {