Cast Reel
A 3D reel of team cards, as a tonal card wave or a contact-sheet filmstrip, coloured by your theme.
Team cards fan out in 3D around a focused card on a dotted ground. By default they form a wave of cards tinted in a tonal ramp of the theme primary, with serif names, mono roles and a pill that fills with the primary colour on the focused card; the filmstrip variant lays them out as a ruled contact sheet whose portraits warm from greyscale as they come into focus. Move the pointer to scrub, scroll or use the arrow keys to step, and click a card to bring it forward; after a few idle seconds the deck drifts on its own. The wave can also flip between horizontal and vertical (double-click or Space). Everything follows light and dark mode and the palette picker. It pauses off screen and snaps instead of easing when the user prefers reduced motion.
Installation
CLI
npx @modus-ui/cli add cast-reelManual
- Copy the code from the component tab.
- Create a file at
components/ui/cast-reel.tsx. - Paste the code.
Usage
Props
| Prop | Type | Default | Description |
|---|---|---|---|
variant | "filmstrip" | "wave" | "wave" | A tonal card wave or a contact-sheet filmstrip. |
items | CastReelItem[] | nine sample profiles with Unsplash portraits | Cards to show (name, role, image, optional color). |
speed | number | 1 | Animation speed multiplier (0 to 2.5). |
scale | number | 1 | Deck scale (0.7 to 1.3). |
opacity | number | 1 | Opacity of the scene (0.05 to 1). |
hue | number | 0 | Hue rotation in degrees. |
saturation | number | 1 | Saturation multiplier. |
brightness | number | 1 | Brightness multiplier. |
followLabel | string | "Say hello" | Label on the wave variant's pill. |
className | string | none | Extra classes for the root. |
Comments