Component

Popover

Displays rich content in a portal, triggered by a button. Built on Radix UI Popover primitive.

Preview

Installation

pnpm dlx brutx@latest add popover

Usage

import {
  Popover,
  PopoverTrigger,
  PopoverContent,
  PopoverAnchor,
} from "@/components/ui/popover"
import { Button } from "@/components/ui/button"

<Popover>
  <PopoverTrigger asChild>
    <Button>Open</Button>
  </PopoverTrigger>
  <PopoverContent>
    Popover content here
  </PopoverContent>
</Popover>

Examples

Different Alignments

Use align prop to control horizontal alignment.

Different Sides

Use side prop to control which side the popover appears on.

Controlled Popover

Control popover state with open and onOpenChange.

With Form

Popover containing a form for inline editing.

API Reference

Popover

Root component that manages state.

PropTypeDefaultDescription
openboolean-Controlled open state
onOpenChange(open: boolean) => void-Callback when open state changes
defaultOpenbooleanfalseInitial open state (uncontrolled)

PopoverContent

The floating content container.

PropTypeDefaultDescription
align"start" | "center" | "end""center"Horizontal alignment relative to trigger
side"top" | "bottom" | "left" | "right""bottom"Which side to position on
sideOffsetnumber8Distance from trigger in pixels
alignOffsetnumber0Offset from alignment edge

All Exports

ComponentDescription
PopoverRoot component
PopoverTriggerElement that triggers popover
PopoverContentFloating content container
PopoverAnchorCustom anchor element for positioning

Accessibility

  • Enter / Space opens/closes popover
  • Escape closes the popover
  • Focus is managed automatically
  • Click outside closes the popover