---
url: "https://vueda.dev/v3/reference/api/vue/PopoverContent.md"
title: "PopoverContent"
---

# PopoverContent

## Overview

The floating content panel of a popover, rendered inside a portal.
Positioned relative to the trigger or anchor element.

Theme entry: [PopoverContent](/v3/reference/theming/keys/PopoverContent.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-class">class</span> | `import('vue').HTMLAttributes['class']` |  | `undefined` | Additional CSS classes to apply to the root element. |
| <span id="prop-side">side</span> | `string` |  | `undefined` | The preferred side of the trigger to render against. |
| <span id="prop-sideOffset">sideOffset</span> | `number` |  | `4` | The distance in pixels from the trigger. |
| <span id="prop-align">align</span> | `string` |  | `"center"` | The preferred alignment against the trigger. |
| <span id="prop-alignOffset">alignOffset</span> | `number` |  | `undefined` | An offset in pixels from the alignment edge. |
| <span id="prop-avoidCollisions">avoidCollisions</span> | `boolean` |  | `undefined` | When true, overrides side and align to avoid collisions with boundary edges. |
| <span id="prop-collisionPadding">collisionPadding</span> | `number\|object` |  | `undefined` | The padding between the content and the boundary edge. |
| <span id="prop-forceMount">forceMount</span> | `boolean` |  | `undefined` | Whether to force mount the content. |
| <span id="prop-sticky">sticky</span> | `string` |  | `undefined` | When true, keeps the content in place relative to the trigger even when it overflows. |
| <span id="prop-hideWhenDetached">hideWhenDetached</span> | `boolean` |  | `undefined` | When true, hides the content when the trigger is fully occluded. |
| <span id="prop-as">as</span> | `string\|object` |  | `undefined` | Forces content to render as a specific element. |
| <span id="prop-asChild">asChild</span> | `boolean` |  | `false` | When true, merges props onto the child element instead of rendering a wrapper. |
| <span id="prop-trapFocus">trapFocus</span> | `boolean` |  | `undefined` | When true, prevents auto-focusing the first focusable element. |

## Slots

### `default` {#slot-default}

Slot.

## Events

| Name | Description |
| --- | --- |
| `openAutoFocus` | Emitted when focus moves inside the content after it opens. |
| `closeAutoFocus` | Emitted when focus returns to the trigger after the content closes. |
| `escapeKeyDown` | Emitted when the Escape key is pressed. |
| `pointerDownOutside` | Emitted when a pointer-down event occurs outside the content. |
| `focusOutside` | Emitted when focus moves outside the content. |
| `interactOutside` | Emitted when any interaction occurs outside the content. |

[Full event reference](/v3/reference/api/vue/PopoverContent/events.md)

## Source

`client/lib/shell/popover/PopoverContent.vue`
