# Curtain scroll reveal

https://fieldbook.lizardi.mx/components/curtain-scroll-reveal

Category: Scroll
![Still of the Curtain scroll reveal component, a Fieldbook UI component in Scroll.](https://fieldbook.lizardi.mx/thumbs/curtain-scroll-reveal.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/curtain-scroll-reveal-923b48dc75.mp4 (5 s, silent)

Curtain scroll reveal: A row of images that each uncover from behind a sliding curtain mask as scroll progress carries them into view, and re-cover when they scroll back out.

## 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 |
| --- | --- | --- | --- |
| revealDirection | select | bottom | Options: bottom, top, left, right |
| imageCount | number | 3 | From 2 to 5; step 1 |
| settleScale | number | 1.1 | From 1 to 1.3; step 0.05 |

## Usage notes

Curtain scroll reveal uses the wide preview frame with a dark theme setting.

### Which frameworks are available for Curtain scroll reveal?

Curtain scroll reveal 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 Curtain scroll reveal depend on?

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

### What accessibility details are visible in Curtain scroll reveal?

The React source for Curtain scroll reveal includes: attributes and handlers (aria-hidden). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Curtain scroll reveal handle reduced motion?

Curtain scroll reveal reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: coverStyle: reduce ? \{ display: "none" \} : horizontal ? \{ x: shift \} : \{ y: shift \}; reduce ? undefined : \{ opacity: captionOpacity, y: captionY \}; reduce ? undefined : \{ scale \}. 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": "curtain-scroll-reveal",
    "framework": "react"
  }
}
```

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

## Related open components

- [Parallax plate gallery](https://fieldbook.lizardi.mx/components/parallax-plate-gallery)
- [Blur fade reveal](https://fieldbook.lizardi.mx/components/blur-fade-reveal)
- [Scroll snap word list](https://fieldbook.lizardi.mx/components/scroll-snap-word-list)
- [Sticky zoom hero](https://fieldbook.lizardi.mx/components/sticky-zoom-hero)
- [Bouncing Photo Fan](https://fieldbook.lizardi.mx/components/bouncing-photo-fan)
- [Curtain line loader](https://fieldbook.lizardi.mx/components/curtain-line-loader)
