Skip to main content

Popover

Displays rich content in a portal, triggered by a button.

Basic Popover

A popover with a form layout containing labeled inputs.

<Popover>
<PopoverTrigger asChild>
<Button variant="outline">Open Popover</Button>
</PopoverTrigger>
<PopoverContent className="w-80">
<div className="space-y-4">
<div className="space-y-1">
<h4 className="text-sm font-semibold">Title</h4>
<p className="text-sm text-muted-foreground">
Lorem ipsum dolor sit amet consectetur.
</p>
</div>
<div className="grid gap-3">
<div className="grid grid-cols-[1fr_2fr] items-center gap-4">
<label className="text-sm">Label</label>
<Input placeholder="Input" />
</div>
{/* Repeat for additional fields */}
</div>
</div>
</PopoverContent>
</Popover>

Placement

Control the side and alignment of the popover relative to the trigger.

<Popover>
<PopoverTrigger asChild>
<Button variant="outline">Top</Button>
</PopoverTrigger>
<PopoverContent side="top">
<p className="text-sm">This popover appears on top.</p>
</PopoverContent>
</Popover>

Web3: Token Settings

Configure token parameters using a popover form.

<Popover>
<PopoverTrigger asChild>
<Button variant="outline">Slippage Settings</Button>
</PopoverTrigger>
<PopoverContent className="w-80">
<div className="space-y-4">
<div className="space-y-1">
<h4 className="text-sm font-semibold">Transaction Settings</h4>
<p className="text-sm text-muted-foreground">
Configure your swap parameters.
</p>
</div>
<div className="grid gap-3">
<div className="grid grid-cols-[1fr_2fr] items-center gap-4">
<label className="text-sm">Slippage</label>
<Input placeholder="0.5%" />
</div>
<div className="grid grid-cols-[1fr_2fr] items-center gap-4">
<label className="text-sm">Deadline</label>
<Input placeholder="30 min" />
</div>
</div>
</div>
</PopoverContent>
</Popover>

API Reference

PropTypeDefaultDescription
openbooleanControlled open state
defaultOpenbooleanfalseInitial open state for uncontrolled usage
onOpenChange(open: boolean) => voidCallback when open state changes
side"top" | "right" | "bottom" | "left""bottom"Preferred side of the trigger to render
align"start" | "center" | "end""center"Preferred alignment against the trigger
sideOffsetnumber4Distance from the trigger in pixels

Accessibility

The Popover component follows WAI-ARIA popover patterns:

  • Focus is moved into the popover when opened
  • Escape key closes the popover
  • Click outside closes the popover
  • Focus returns to trigger when closed