# Screen Zoom

Zooms and pans across whatever you wrap so a rectangle of the content (a button, a chart, a card) fills the frame, eased between keyframes.

```bash
npx shadcn add https://www.reelcn.dev/r/screen-zoom.json
```

Usage:

```tsx
<BrowserWindow url="app.dev">
  <ScreenZoom
    focus={[
      { frame: 0, x: 0, y: 0, width: 100, height: 100 },
      { frame: 40, x: 55, y: 30, width: 30, height: 24 },
    ]}
  >
    <Dashboard />
  </ScreenZoom>
</BrowserWindow>
```

Use for:

- Pushing in on a detail inside a `browser-window`, `app-window` or dashboard mockup
- A guided tour that visits several parts of the same screen in turn

Avoid:

- Panning and zooming over a photo or footage with pixel offsets. Use `camera`

Dependencies:

- `remotion`


## Props

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| delay? | `number` | — | Frames to wait before entering. |
| duration? | `number` | — | Enter duration in frames. Defaults to 0.6s. Some items reuse `duration` for an unrelated local timing. See that item's own prop docs. |
| exit? | `number \| boolean` | `false` | Exit at the end of the parent `<Sequence>`. `false` keeps it on screen, a number sets the exit length in frames. |
| motion? | `MotionPersonality` | — | Override the theme's motion personality. |
| poster? | `boolean` | — | Renders fully entered, with no exit: for a still frame or thumbnail. Defaults to `false`. |
| holdFrames? | `number` | — | Delays the start of the exit window by this many frames, for a minimum on-screen hold. Defaults to `0`. |
| focus | `ScreenZoomFocus[]` | — |  |
| children? | `ReactNode` | — |  |
| style? | `CSSProperties` | — |  |
| className? | `string` | — |  |