# Masked reveal disclosure

https://fieldbook.lizardi.mx/components/masked-reveal-disclosure

Category: Layout
![Still of the Masked reveal disclosure component, a Fieldbook UI component in Layout.](https://fieldbook.lizardi.mx/thumbs/masked-reveal-disclosure.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/masked-reveal-disclosure-ecb9769a67.mp4 (5 s, silent)

Masked reveal disclosure: A disclosure whose panel grows to its own natural height while a soft gradient edge wipes the content into view from the top, then runs backwards on close.

## 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 |
| --- | --- | --- | --- |
| label | text | Recovery keys | Up to 32 characters |
| defaultOpen | boolean | false | No additional limit in the metadata. |
| durationMs | number | 350 | From 120 to 900; step 10 |
| keepRendered | boolean | false | No additional limit in the metadata. |
| accent | color | #38BDF8 | No additional limit in the metadata. |

## Usage notes

Masked reveal disclosure uses the card preview frame with a light/dark theme setting.

### Which frameworks are available for Masked reveal disclosure?

Masked reveal disclosure 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 Masked reveal disclosure depend on?

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

### What accessibility details are visible in Masked reveal disclosure?

The React source for Masked reveal disclosure includes: native elements (button); attributes and handlers (aria-controls, aria-expanded, aria-hidden, aria-labelledby); explicit roles (region). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Masked reveal disclosure handle reduced motion?

Masked reveal disclosure reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: heightTransition: reduce ? \{ duration: 0 \} : \{ duration: durationMs / 1000, ease: \[0.4, 0, 0.2, 1\] \}; reduce ? 0 : 20; reduce ? \{ duration: 0.12, ease: "easeOut" \} : \{ duration: durationMs / 1000, ease: \[0.4, 0, 0.2, 1\] \}. 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": "masked-reveal-disclosure",
    "framework": "react"
  }
}
```

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

## Related open components

- [Masonry flow](https://fieldbook.lizardi.mx/components/masonry-flow)
- [Overlay scroll panel](https://fieldbook.lizardi.mx/components/overlay-scroll-panel)
- [Progressive edge blur](https://fieldbook.lizardi.mx/components/progressive-edge-blur)
- [Curved Scroll Wall](https://fieldbook.lizardi.mx/components/curved-scroll-wall)
- [Drag split panels](https://fieldbook.lizardi.mx/components/drag-split-panels)
- [Focus scroll list](https://fieldbook.lizardi.mx/components/focus-scroll-list)
