# Custom shell lightbox

https://fieldbook.lizardi.mx/components/custom-shell-lightbox

Category: Overlays
![Still of the Custom shell lightbox component, a Fieldbook UI component in Overlays.](https://fieldbook.lizardi.mx/thumbs/custom-shell-lightbox.webp)
Preview video: https://ejpqcxcjbiyabxkx.public.blob.vercel-storage.com/previews/custom-shell-lightbox-8318e6346c.mp4 (5 s, silent)

Custom shell lightbox: A gallery grid that opens a borderless full-bleed lightbox, showing how one open, close and focus engine can wear a completely custom shell.

## 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 |
| --- | --- | --- | --- |
| imageCount | number | 5 | From 3 to 10; step 1 |
| backdropOpacity | number | 92 | From 60 to 100; step 2 |
| showCaption | boolean | true | No additional limit in the metadata. |

## Usage notes

Custom shell lightbox uses the wide preview frame with a dark theme setting.

### Which frameworks are available for Custom shell lightbox?

Custom shell lightbox 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 Custom shell lightbox depend on?

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

### What accessibility details are visible in Custom shell lightbox?

The React source for Custom shell lightbox includes: native elements (button); attributes and handlers (aria-hidden, aria-label, aria-modal, onKeyDown, tabIndex); explicit roles (dialog); key comparisons (ArrowLeft, ArrowRight, Escape). These are source observations. Verify accessible names, focus order and keyboard behavior in the composed page.

### How does Custom shell lightbox handle reduced motion?

Custom shell lightbox reads the motion preference in its React source through useReducedMotion(). Preference-dependent expressions in index.tsx: duration: reduceMotion ? 0.001 : 0.28; scale: reduceMotion ? 1 : 0.97. 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": "custom-shell-lightbox",
    "framework": "react"
  }
}
```

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

## Related open components

- [Confirm action modal](https://fieldbook.lizardi.mx/components/confirm-action-modal)
- [Sheet drawer](https://fieldbook.lizardi.mx/components/sheet-drawer)
- [Anchored popover card](https://fieldbook.lizardi.mx/components/anchored-popover-card)
- [App folder expand](https://fieldbook.lizardi.mx/components/app-folder-expand)
- [Bounce warning dialog](https://fieldbook.lizardi.mx/components/bounce-warning-dialog)
- [Centered modal frame](https://fieldbook.lizardi.mx/components/centered-modal-frame)
