Installation
Notes
- The section uses shadcn theme tokens (
bg-background/text-foreground) so it adapts to light and dark; themix-blend-exclusiontitle inverts against whatever portrait sits behind it. Override viaclassName. - The default
speakersuse remote CDN portraits so the component renders without local assets. Pass your ownspeakerswith realsrcpaths in production. - Honors
prefers-reduced-motion: when reduced, every portrait renders at full scale with no scroll scrubbing.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
title | ReactNode | "Speakers" | Big sticky title rendered with mix-blend-exclusion. |
date | ReactNode | "Oct 22, 2025" | Small line under the title. |
hint | ReactNode | "scroll down to see effect" | Top-of-section hint with the gradient tail. |
speakers | Speaker[] | built-in demo set | People to scatter across the wall. Speaker = { name, role, src }. |
columns | number | 4 | Grid columns the portraits are scattered across. |
showCaptions | boolean | true | Show the name / role caption under each portrait. |
className | string | undefined | Extra classes merged onto the root <section>. |

