# Zoom to the Action — effect skill for UI walkthroughs

> **For AI agents:** find the right skill in one call — `curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>"` returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the how-to page.

The full app establishes, then the camera pushes 1.5–2× into the part being used and eases back out.

- **Type:** [Effect](https://varg.ai/how-to/effects.md) · [UI walkthroughs](https://varg.ai/how-to/browse/skills/ui.md)
- **Slug:** `zoom-to-the-action`
- **Status:** live
- **Publisher:** HeyGen (community)
- **License:** Apache-2.0
- **Source:** https://github.com/heygen-com/hyperframes/tree/main/registry/components/ui-focus-zoom
- **Works in:** Claude Code, Claude.ai, Codex, Cursor, OpenClaw, Gemini CLI, Any MCP client, varg Studio
- **Requires:** ffmpeg, HyperFrames (npx hyperframes), Remotion, CapCut (by hand)
- **Cost:** Free — the take renders locally; generated footage, if any, bills by the model

## What it does

Built on [UI Focus Zoom](https://github.com/heygen-com/hyperframes/tree/main/registry/components/ui-focus-zoom) by HeyGen (HyperFrames), Apache-2.0. The write-up and recipes below are varg's.

One settle on the full screen, a smooth decelerating push to the button or field, a short hold, and a pull back before the next action.

**When:** Every screen recording where text would be unreadable at full frame — which is almost all of them at 1080p.

**Watch out:** Do not zoom on every small move; zoom on the interaction, then stay still while it happens.

**Timing:** Push 0.6–0.9 s (power3.inOut), hold ≥ 1.2 s, release 0.5–0.7 s. Scale 1.5–2.0×.

**Also called:** punch-in on UI, focus zoom, screen recording zoom

### In FFmpeg

```bash
-vf "zoompan=z='if(between(it,4,6.4),min(zoom+0.03,1.8),max(zoom-0.04,1))':x='iw*0.72-iw/zoom/2':y='ih*0.30-ih/zoom/2':d=1:s=1920x1080:fps=60"
```

### In HyperFrames

```bash
npx hyperframes add ui-focus-zoom
```
```js
// animate the wrapper, never the <video> itself
tl.to("#cam",{scale:1.8,xPercent:-18,yPercent:-10,duration:0.8,ease:"power3.inOut"},4)
  .to("#cam",{scale:1,xPercent:0,yPercent:0,duration:0.6,ease:"power3.inOut"},6.4);
```

### In Remotion

```tsx
// npx shadcn@latest add @remocn/stage
const z = interpolate(frame,[120,144,192,210],[1,1.8,1.8,1],{extrapolateLeft:'clamp',extrapolateRight:'clamp',easing:Easing.inOut(Easing.cubic)});
<AbsoluteFill style={{transform:`scale(${z})`, transformOrigin:'72% 30%'}}><OffthreadVideo src={rec}/></AbsoluteFill>
```

### In CapCut

Select the clip → Video → Basic → Scale/Position keyframes: 100% → 180% over 0.8 s at the click, back to 100% after; or use the "Auto zoom"/"Zoom" effect on desktop.

### Ready-made components

- [UI Focus Zoom](https://skills.varg.ai/component/hf.ui-focus-zoom/) (hyperframes): npx hyperframes add ui-focus-zoom
- [Stage](https://skills.varg.ai/component/remocn.stage/) (remocn): npx shadcn@latest add @remocn/stage
- [Camera Punch-In](https://skills.varg.ai/component/hf.yt-camera-move/) (hyperframes): npx hyperframes add yt-camera-move
- [Parallax Zoom](https://skills.varg.ai/component/hf.parallax-zoom/) (hyperframes): npx hyperframes add parallax-zoom

### Where this comes from

- [Screen Studio: auto zoom, cursor smoothing, click effects](https://screen.studio/)
- [Trainn: how to add zoom effects to product demo videos](https://trainn.co/answers/how-to-add-zoom-effects-to-product-demo-videos/)
- [OpenScreen docs: creating demos (zoom regions from cursor dwell)](https://www.mintlify.com/siddharthvaddem/openscreen/guides/creating-demos)

## Use when

- Every screen recording where text would be unreadable at full frame — which is almost all of them at 1080p.

## Not for

- Do not zoom on every small move; zoom on the interaction, then stay still while it happens.

## Install

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg`
- Codex: `npx skills add vargHQ/skills --skill varg-video-edit-library -a codex -y`
- Cursor: `npx skills add vargHQ/skills --skill varg-video-edit-library -a cursor -y`

## More UI walkthroughs skills

- [3D Tilted Dashboard Reveal](https://varg.ai/how-to/skills/tilted-dashboard-reveal.md): The dashboard rises from a steep 3D tilt to flat, like a screen lifting toward the viewer.
- [Floating UI Panels in Depth](https://varg.ai/how-to/skills/floating-ui-panels.md): The interface splits into its panels, which float apart in depth with parallax, then snap back.
- [UI Builds Itself Piece by Piece](https://varg.ai/how-to/skills/ui-builds-itself.md): Grey skeleton blocks pulse once, then real cards, charts and text fill in with a stagger.
- [Before/After UI Wipe](https://varg.ai/how-to/skills/before-after-ui-wipe.md): A divider sweeps across one screen, turning the old version into the new one underneath.
- [Card Expands Into Detail](https://varg.ai/how-to/skills/card-expands-to-detail.md): A small card grows into a full detail panel in one continuous shape change.
- [Filmed Off a Monitor](https://varg.ai/how-to/skills/filmed-off-a-monitor.md): The UI looks filmed on a real display: slight perspective, focus falloff and glare.

## Run the generation on varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

- Claude Code: `claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg` (skill + hosted MCP)
- Codex, Cursor, Gemini CLI, OpenClaw: `npx skills add vargHQ/skills --skill varg-ai -a <agent> -y`
- Grok and any agent that reads SKILL.md: `npx skills add vargHQ/skills --skill varg-ai`, or point it at the skill's SKILL.md
- Claude.ai, ChatGPT, any MCP client: connect `https://mcp.varg.ai/mcp`
- API key: https://varg.ai/dashboard/api · Model specs: https://varg.ai/models/llms.txt
