Add a colour wash animation

The frame parks in the middle and the colour changes instead: a gradient
creeps round the colour wheel behind the poster, and the frame's glow
travels with it. Every other animation moves the frame, so the still one
reads as a rest between them rather than as a dead spot.

The wash layer blends with mix-blend-mode: color, which keeps the
poster's luminance and replaces only its hue. soft-light was the first
try and barely shifted the colour at all against a poster already knocked
back to 45% brightness.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tg15tLAuT6NrCE1ZxKVgDB
This commit is contained in:
simon
2026-08-09 23:11:42 +02:00
co-authored by Claude Opus 5
parent 6d306d1b98
commit 223292708f
5 changed files with 120 additions and 2 deletions
+6
View File
@@ -23,6 +23,9 @@ import {
TRAIL_SPACING,
TRAIL_LENGTH,
TRAIL_FADE_SECONDS,
WASH_CYCLE_SECONDS,
WASH_SPREAD,
WASH_STRENGTH,
BACKGROUNDS,
ANIMATIONS,
AUTO_ANIMATION,
@@ -61,6 +64,9 @@ app.get('/config.js', (_req, res) => {
`export const TRAIL_SPACING = ${TRAIL_SPACING};\n` +
`export const TRAIL_LENGTH = ${TRAIL_LENGTH};\n` +
`export const TRAIL_FADE_SECONDS = ${TRAIL_FADE_SECONDS};\n` +
`export const WASH_CYCLE_SECONDS = ${WASH_CYCLE_SECONDS};\n` +
`export const WASH_SPREAD = ${WASH_SPREAD};\n` +
`export const WASH_STRENGTH = ${WASH_STRENGTH};\n` +
`export const BACKGROUNDS = ${JSON.stringify(BACKGROUNDS)};\n` +
`export const ANIMATIONS = ${JSON.stringify(ANIMATIONS)};\n` +
`export const AUTO_ANIMATION = ${JSON.stringify(AUTO_ANIMATION)};\n`,