With Form
Enough room to edit a value in place.
<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Edit Name</Button>
</Popover.Trigger>
<Popover.Content size="sm">
<Popover.Close />Anchors interactive content to a trigger without blocking the page.
import { Popover } from "@/fragments/ui";Source<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Open Popover</Button>
</Popover.Trigger>
<Popover.Content>
<Popover.Close />npx @usefragments/cli add popoverWrites src/fragments/ui/components/Popover plus what it imports, the globals stylesheet, and .fragments/registry-lock.json, then prints the packages to add. No account, no key.
Your own registry: publish from Fragments Cloud and add --registry org/name. Connect a workspace.
Popover is a compound: import the root and reach its parts through dot notation.
Popover.TriggerPopover.ContentPopover.ClosePopover.TitlePopover.DescriptionPopover.BodyPopover.FooterTitle, body, and a close control.
<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Open Popover</Button>
</Popover.Trigger>
<Popover.Content>
<Popover.Close />
<Popover.Title>Popover Title</Popover.Title>
<Popover.Description>
This is a popover with some content. It can contain text, forms, or other elements.
</Popover.Description>
</Popover.Content>
</Popover>Enough room to edit a value in place.
<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Edit Name</Button>
</Popover.Trigger>
<Popover.Content size="sm">
<Popover.Close />The arrow ties the panel back to its trigger.
<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Info</Button>
</Popover.Trigger>
<Popover.Content arrow>
<Popover.Title>Quick Tip</Popover.Title>Flips to the opposite side when space runs out.
<div style={{ display: 'flex', gap: '16px', padding: '60px' }}>
<Popover>
<Popover.Trigger asChild>
<Button variant="soft">Top</Button>
</Popover.Trigger>
<Popover.Content side="top" size="sm">asChild lets a link open it.
<Popover>
<Popover.Trigger asChild>
<a href="#popover-help">Open help</a>
</Popover.Trigger>
<Popover.Content size="sm">
<Popover.Description>Popover trigger can be an anchor when using asChild.</Popover.Description>Prop | Type | Default | Description |
|---|---|---|---|
childrenRequired | node | Not set | Popover trigger and content |
open | boolean | Not set | Controlled open state |
defaultOpen | boolean | false | Default open state (uncontrolled) |
onOpenChange | function | Not set | Called when open state changes |
modal | boolean | false | Whether to block page interaction |