Popover
Displays rich content in a portal, triggered by a button.
Default
Popover with form content.
html
Dimensions
Set the dimensions for the layer.
<div class="popover-wrapper uc-relative uc-inline-block">
<button data-popover-trigger="pop1">Open popover</button>
<div id="pop1" class="uc-popover-content uc-popover-bottom-start uc-w-80 uc-p-4">
<h4>Title</h4>
<p>Popover content...</p>
</div>
</div>
User Card
Popover showing user information.
html
JD
John Doe
@johndoe
Full-stack developer. Building uicraft. Open source enthusiast.
256 following
1.2k followers
<div class="popover-wrapper uc-relative uc-inline-block">
<button data-popover-trigger="pop2" class="uc-inline-flex uc-items-center uc-gap-2">
<div class="uc-w-6 uc-h-6 uc-rounded-full uc-bg-neutrals-muted">JD</div>
@johndoe
</button>
<div id="pop2" class="uc-popover-content uc-popover-bottom-start uc-w-72 uc-p-4">
<div class="uc-flex uc-items-center uc-gap-3 uc-mb-3">
<div class="uc-w-10 uc-h-10 uc-rounded-full uc-bg-neutrals-muted">JD</div>
<div>
<p class="uc-text-sm uc-font-semibold">John Doe</p>
<p class="uc-text-xs uc-text-fg-disabled">@johndoe</p>
</div>
</div>
<p class="uc-text-sm uc-text-fg-disabled uc-mb-3">Full-stack developer...</p>
<div class="uc-flex uc-gap-4 uc-text-xs">
<span><strong>256</strong> following</span>
<span><strong>1.2k</strong> followers</span>
</div>
</div>
</div>
Placements
Popover can open from all sides: top, right, bottom, and left.
html
Top Popover
Opens above the trigger.
Right Popover
Opens to the right side.
Bottom Popover
Default bottom placement.
Left Popover
Opens to the left side.
<!-- Top -->
<div class="popover-wrapper uc-relative uc-inline-block">
<button data-popover-trigger="pop-top">Top</button>
<div id="pop-top" class="uc-popover-content uc-popover-top uc-w-56 uc-p-3">...</div>
</div>
Static Preview
Popover content inline for reference.
Dimensions
Set the dimensions for the layer.
API Reference
All data attributes and utility classes available for the Popover component.
| Class | Type | Description |
|---|---|---|
[data-popover-trigger] |
Attribute | Trigger button — value matches popover ID |
.uc-popover-content |
Content | Popover content container — hidden by default |
.uc-open |
State | Applied when popover is visible |
.uc-popover-top |
Placement | Positions popover above trigger |
.uc-popover-bottom |
Placement | Positions popover below trigger |
.uc-popover-left |
Placement | Positions popover to the left of trigger |
.uc-popover-right |
Placement | Positions popover to the right of trigger |
.uc-popover-bottom-start |
Placement | Bottom placement aligned to start edge |
Accessibility
Keyboard and screen reader support.
| Feature | Details |
|---|---|
| Trigger | Use <button> element for trigger, not div or span |
| ARIA | Add aria-expanded on trigger, aria-labelledby on popover content |
| Focus Trap | Trap focus within popover when open, restore to trigger on close |
| Keyboard | Escape closes popover, Tab cycles through focusable elements inside |
| Click Outside | Clicking outside popover closes it automatically |