> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openvisualregression.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Per-story parameters

> Override viewports, diff threshold, and wait before capture, or skip a story entirely.

`ovr.config.ts` sets the viewports every story is captured at and the diff threshold that decides when a change needs review. A story that doesn't fit those defaults overrides them with Storybook's `parameters.ovr`, which OVR reads out of the build you upload.

```tsx theme={null}
// Button.stories.tsx
export const Primary: Story = {
  parameters: {
    ovr: {
      viewports: ["mobile", { width: 1440 }],
      diffThreshold: 0.02,
    },
  },
};
```

| Field | Type | Description |
| - | - | - |
| `viewports` | `(string \| { browser?, width, height? })[]` | Replaces (not merges with) the config's default viewport list for this story. String entries reference a `name` from `ovr.config.ts`; object entries define a one-off viewport inline |
| `diffThreshold` | `number` | Replaces the config's `diffThreshold` for this story, as a fraction of pixels that may differ |
| `waitForTimeout` | `number` | Replaces the config's `waitForTimeout` for this story, in milliseconds. Set `0` to opt a story out of a config-wide wait |
| `skip` | `boolean` | Skips this story; it is listed on the build as skipped, never captured or diffed |

Storybook merges parameters global → component → story, so the same block on a `meta` default export covers every story in the file, and in `.storybook/preview.ts` every story in the project. The most specific level wins.

## Waiting before capture

OVR takes a story's screenshot once it has rendered and its network requests have gone quiet. A story that keeps changing after that, such as one that loads data on a timer or fades in large images, can be captured too early. `waitForTimeout` adds a fixed wait, in milliseconds, before the screenshot:

```tsx theme={null}
export const Dashboard: Story = {
  parameters: { ovr: { waitForTimeout: 2000 } },
};
```

The wait is capped at 30 seconds (a larger value is clamped to 30000) and adds to every capture of the story, so keep it as short as the story needs. Set it in `ovr.config.ts` instead to apply it to every story.

## Skipping stories

`skip: true` takes a story out of the capture pipeline: no screenshot, no diff, and nothing to review. It still appears on the build as `skipped`, so a story that stopped being checked is visible rather than silently missing. Use it for stories that can't produce a stable screenshot.

```tsx theme={null}
export const LiveFeed: Story = {
  parameters: { ovr: { skip: true } },
};
```

A skipped story gets one entry on the build rather than one per viewport, since `skip` applies to the story as a whole.

Skipping doesn't delete baselines the story already has, so unskipping it later diffs against the baseline it had rather than treating it as new. A build where every story is skipped resolves as unchanged.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.