Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Runtime fan-out of a shared keyframe template across N DOM elements with phase-shifted local time. Resolves matching elements at bind time via `selector` and runs all N slot evaluations inside one node — replaces the legacy expansion-time fan-out (`carouselEffectAnimation` → N × `slideSlotAnimation` × 4 primitives) with a single runtime node. Preferred runtime shape; `carouselEffectAnimation` is the author-facing compound that emits one of these. Channels accept the simple `{cssUnit?, template?, keyframes}` shape and the composed `{template, channels: { sub: { keyframes } }}` shape that drives multi-input CSS strings (`filter: blur({blur}px) brightness({bright})`) without going through CSS variables.
Inputs
| Port | Type | Description |
|---|---|---|
playhead | float | Playhead |
Outputs
| Port | Type | Description |
|---|---|---|
| - | - | No ports declared. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
selector | elementSelector | "" | CSS selector matching every slot element. Document order = slot order. |
slotStride | float | 0.1 | Slot Stride (playhead) step 0.01 |
slotWindow | float | 1 | Slot Window step 0.05 |
slotOffsetBase | float | 0 | Slot 0 Offset step 0.05 |
channels | propertyAnimationChannels | {"opacity":{"cssUnit":"none","keyframes":[{"time":0,"value":0},{"time":1,"value":1}]}} | Shared keyframe template. Optional per-channel `template: "blur({value}px)"` for single-input string writes; composed `{template, channels: { sub: { keyframes } }}` for multi-input CSS string writes (`filter`, `clip-path`). |
Related nodes
Envelope
Use carouselFanout as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-animation/