Popover
Displays floating content anchored to the trigger using Anchor Positioning and the Popover API.
In HTML, set popovertarget, popover, and id manually.
In React, also set popoverTarget and id manually.
Usage
The content of the Popover.
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-example-content">Open popover</button>
</div>
<div
id="popover-example-content"
data-unitone-layout="popover-content"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>Props
Popover
HTML -gap:{variation} / JSX gap={variation}
Controls the distance between the trigger and the content.
Can be set from -3 to 7. For variations 2 and above, clamp is used to adjust the margins so that they do not become too large on small screens.
If it is 1 or more, adding s will shrink it to size -1 on mobile. (e.g. 1s)
If it is 2 or more, adding m will shrink it to size 1 on mobile. (e.g. 2m)
<div data-unitone-layout="popover -gap:1">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-gap-content">Open popover</button>
</div>
<div
id="popover-gap-content"
data-unitone-layout="popover-content"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>PopoverContent
HTML -placement:{value} / JSX placement={value}
Popover placement.
top / right / bottom / left
top
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-top-content">Open popover</button>
</div>
<div
id="popover-top-content"
data-unitone-layout="popover-content -placement:top"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>right
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-right-content">Open popover</button>
</div>
<div
id="popover-right-content"
data-unitone-layout="popover-content -placement:right"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>bottom
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-bottom-content">Open popover</button>
</div>
<div
id="popover-bottom-content"
data-unitone-layout="popover-content -placement:bottom"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>left
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-left-content">Open popover</button>
</div>
<div
id="popover-left-content"
data-unitone-layout="popover-content -placement:left"
popover
>
<div data-unitone-layout="popover-dialog">
The content of the Popover.
</div>
</div>
</div>PopoverDialog
HTML -shadow / JSX shadow
Add the box shadow.
<div data-unitone-layout="popover">
<div data-unitone-layout="popover-trigger">
<button popovertarget="popover-shadow-content">Open popover</button>
</div>
<div
id="popover-shadow-content"
data-unitone-layout="popover-content"
popover
>
<div data-unitone-layout="popover-dialog -shadow">
The content of the Popover.
</div>
</div>
</div>Notes
- In HTML, set
id,popovertarget, andpopovermanually. - In React, use a direct child element such as
<button>insidePopoverTrigger. - This primitive depends on browser support for both the Popover API and Anchor Positioning.
Last updated on