Surfaced by a role-based review; verified against current code.
Problem: SearchResultsList mounts each result with enterDelay={index * 200} and a 750ms fade; with the default ~15 results the last item finishes appearing ~3.5s after the data has already arrived. ImageResultsList is worse (index * 250 + 1500ms). This is pure artificial latency on the first thing a user sees after searching, directly against the "minimal fast" pitch.
Fix: Cap the cumulative stagger (e.g. Math.min(index, 5) * 40ms) and shorten durations to ~200-300ms, or use a single container fade. Respect prefers-reduced-motion.
Files: client/components/Search/Results/Textual/SearchResultsList.tsx, client/components/Search/Results/Graphical/ImageResultsList.tsx
Surfaced by a role-based review; verified against current code.
Problem:
SearchResultsListmounts each result withenterDelay={index * 200}and a 750ms fade; with the default ~15 results the last item finishes appearing ~3.5s after the data has already arrived.ImageResultsListis worse (index * 250+ 1500ms). This is pure artificial latency on the first thing a user sees after searching, directly against the "minimal fast" pitch.Fix: Cap the cumulative stagger (e.g.
Math.min(index, 5) * 40ms) and shorten durations to ~200-300ms, or use a single container fade. Respectprefers-reduced-motion.Files:
client/components/Search/Results/Textual/SearchResultsList.tsx,client/components/Search/Results/Graphical/ImageResultsList.tsx