Commit 1aeb457
fix(carousel): eliminate banner "blink" on crossfade switch (#1010)
The hero/banner carousel used a symmetric opacity crossfade: on switch the
outgoing slide faded 1->0 while the incoming faded 0->1 at the same time.
Each slide is an opaque unit (black bg + cover image), so while both are
semi-transparent mid-transition, up to ~25% of #main-carousel's bright
magenta gradient backdrop bleeds through at the midpoint -- a visible
pink/magenta "blink" when banners switch.
Make the crossfade dip-free by splitting the transition: the incoming slide
fades in over a still-opaque outgoing slide, which only snaps to 0 (0s change,
delayed by the fade duration) after it's fully covered. An opaque slide always
covers the backdrop, so there is zero bleed-through, while the 0.6s crossfade
look is preserved. Reduced-motion still gets an instant cut.
This is the residual half of #1010: the original 2022 report predated the
Bootstrap->vanilla rewrite (#1288). The decode-lag trigger (huge undecoded
images) was already fixed by server-side thumbnailing; this addresses the
crossfade backdrop-bleed that the rewrite carried over.
Verified with a headless-browser A/B at the transition midpoint: the old
symmetric fade shows a magenta wash (mean RGB blue channel spikes ~+45);
the new asymmetric fade shows a clean photo-to-photo blend.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 543f950 commit 1aeb457
1 file changed
Lines changed: 15 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
13 | 21 | | |
14 | 22 | | |
15 | 23 | | |
| |||
23 | 31 | | |
24 | 32 | | |
25 | 33 | | |
26 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
27 | 37 | | |
28 | 38 | | |
29 | 39 | | |
30 | 40 | | |
31 | 41 | | |
32 | 42 | | |
| 43 | + | |
| 44 | + | |
33 | 45 | | |
34 | 46 | | |
35 | 47 | | |
36 | 48 | | |
37 | 49 | | |
38 | | - | |
| 50 | + | |
| 51 | + | |
39 | 52 | | |
40 | 53 | | |
41 | 54 | | |
0 commit comments