Skip to main content
Vuetify0 is now in alpha!
Vuetify0 Logo
Theme
Mode
Palettes
Accessibility
Vuetify One
Sign in to Vuetify One

Access premium tools across the Vuetify ecosystem — Bin, Play, Studio, and more.

Not a subscriber? See what's included

Popover

A headless component for creating popovers and tooltips using modern CSS anchor positioning.

Browser Support: CSS Anchor Positioning
Chrome 125+ Edge 125+ Firefox 147+ (beta) Safari —
The component works in all browsers, but automatic anchor positioning requires CSS Anchor Positioning support. In unsupported browsers, you'll need to position the popover manually or use [Floating UI](https://floating-ui.com).

Usage

The Popover component leverages the CSS Anchor Positioning API to create popovers, tooltips, and dropdown menus without JavaScript-based positioning. It provides v-model support for open/closed state management.

Features

Positioning

Use position-area on Popover.Content to control where the popover appears relative to its anchor. Accepts any CSS position-area↗︎ value (default: 'bottom'):

vue
<template>
  <Popover.Content position-area="top">
    <!-- Appears above the anchor -->
  </Popover.Content>

  <Popover.Content position-area="end">
    <!-- Appears to the right of the anchor -->
  </Popover.Content>
</template>

Use position-try to specify fallback positions when the preferred position doesn’t fit in the viewport (default: 'most-width bottom'):

vue
<template>
  <!-- Try bottom first; fall back to most available width -->
  <Popover.Content position-area="bottom" position-try="most-width bottom">
    Tooltip content
  </Popover.Content>
</template>

Anatomy

Anatomy
<script setup lang="ts">
  import { Popover } from '@vuetify/v0'
</script>

<template>
  <Popover.Root>
    <Popover.Activator />

    <Popover.Content />
  </Popover.Root>
</template>

API Reference

The following API details are for all variations of the Popover component.

Popover.Root

Props

id

string | undefined

Unique identifier for the popover (auto-generated if not provided)

modelValue

boolean | undefined

Default: false

Slots

default

PopoverRootSlotProps

Popover.Activator

Props

target

string | undefined

Target popover ID (defaults to parent PopoverRoot id)

Slots

default

PopoverActivatorSlotProps

Popover.Content

Props

id

string | undefined

Unique identifier (defaults to parent PopoverRoot id)

positionArea

string | undefined

CSS position-area value for anchor positioning

positionTry

string | undefined

CSS position-try value for fallback positioning

Events

beforetoggle

[e: ToggleEvent]

Slots

default

PopoverContentSlotProps
Was this page helpful?

Ctrl+/