# Bouncing Photo Fan

https://fieldbook.lizardi.mx/components/bouncing-photo-fan

Category: Cards
![Still of the Bouncing Photo Fan component, a Fieldbook UI component in Cards.](https://fieldbook.lizardi.mx/thumbs/bouncing-photo-fan.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/bouncing-photo-fan-7e0824b7e9.mp4 (5 s, silent)

Bouncing Photo Fan: A row of overlapping square photo tiles that pop in with an elastic overshoot, then shove each other aside when one is hovered.

## Frameworks

react, vue, svelte, astro, html

## Preview controls

These controls are passed to the demo. Defaults and limits describe the preview; consult the implementation for its full prop API.

| Name | Type | Default | Options or constraints |
| --- | --- | --- | --- |
| count | number | 5 | From 3 to 6; step 1 |
| spread | number | 85 | From 40 to 160; step 5 |
| stagger | number | 0.06 | From 0 to 0.2; step 0.01 |
| pushOnHover | boolean | true | No additional limit in the metadata. |
| accent | color | #FF6A1F | No additional limit in the metadata. |

## Usage notes

Bouncing Photo Fan uses the wide preview frame with a dark theme setting.

### Which frameworks are available for Bouncing Photo Fan?

Bouncing Photo Fan is available for React, Vue, Svelte, Astro, HTML. The live preview uses React; the source observations below apply to index.tsx. Check the selected port before relying on the same interactions.

### What does Bouncing Photo Fan depend on?

The React metadata lists these npm dependencies beyond React: motion, clsx.

### What accessibility details are visible in Bouncing Photo Fan?

The React source for Bouncing Photo Fan includes: attributes and handlers (aria-label). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Bouncing Photo Fan handle reduced motion?

Bouncing Photo Fan reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: duration: reduceMotion ? 0.3 : 0.4; reduceMotion ? \{ opacity: 0, x: restX, y: 0, rotate: restRotate, scale: 1 \} : \{ opacity: 0, x: restX, y: 0, rotate: restRotate, scale: 0 \}; scale: reduceMotion ? \{ duration: 0.01 \} : \{ type: "spring", stiffness: 300, damping: 11, mass: 0.9, delay: entranceDelay \}. Check the full implementation, shared styles and selected port with reduced motion enabled; these observations do not establish that every animation stops.

## Install through MCP

Connect your client, call get_component to retrieve the implementation, then get_install_command for installation instructions. Choose a listed framework, integrate the returned source and verify it in your application.

```json
{
  "tool": "get_component",
  "arguments": {
    "slug": "bouncing-photo-fan",
    "framework": "react"
  }
}
```

[For agents](https://fieldbook.lizardi.mx/docs/agents)
[MCP](https://fieldbook.lizardi.mx/api/mcp)

## Related open components

- [Card Shuffle Stack](https://fieldbook.lizardi.mx/components/card-shuffle-stack)
- [Cursor drift link preview](https://fieldbook.lizardi.mx/components/cursor-drift-link-preview)
- [Deferred post card](https://fieldbook.lizardi.mx/components/deferred-post-card)
- [Invitation review panel](https://fieldbook.lizardi.mx/components/invitation-review-panel)
- [Link thumbnail peek](https://fieldbook.lizardi.mx/components/link-thumbnail-peek)
- [Nested panel frame](https://fieldbook.lizardi.mx/components/nested-panel-frame)
