Popover
Popover composes Base UI’s popover primitives for compact floating panels tied to a trigger.
import { Popover } from "density-base-ui";
export default function PopoverExample() {
return (
<Popover
trigger="Show metrics"
title="Sprint health"
description="Velocity is steady and review time is down 18% this week."
closeLabel="Close"
/>
);
}Props
| Prop | Attribute | Values | Default |
|---|---|---|---|
trigger |
None | React node | Required |
title, description |
None | React node | None |
children |
None | React node | None |
closeLabel |
None | React node | None |
presentation |
data-dn-presentation |
button |
button |
emphasis |
data-dn-emphasis |
primary, secondary, outline, ghost |
secondary |
size |
data-dn-size |
2xs, xs, sm, md, lg, xl, 2xl, 3xl |
md |
padding |
data-dn-padding |
none, 2xs, xs, sm, md, lg, xl, 2xl, 3xl |
md |
popupPresentation |
data-dn-presentation |
overlay |
overlay |
depth |
data-dn-depth |
1, 2, 3, 4, 5, 6, 7 |
1 |
Emphasis
import { Popover } from "density-base-ui";
export default function PopoverEmphasisExample() {
return (
<div style={styles.row}>
<Popover emphasis="primary" trigger="Primary">
Content
</Popover>
<Popover emphasis="secondary" trigger="Secondary">
Content
</Popover>
<Popover emphasis="outline" trigger="Outline">
Content
</Popover>
<Popover emphasis="ghost" trigger="Ghost">
Content
</Popover>
</div>
);
}
const styles = {
row: { display: "flex", flexWrap: "wrap", gap: "0.5rem" },
} as const;Size
import { Popover } from "density-base-ui";
export default function PopoverSizeExample() {
return (
<div style={styles.row}>
<Popover size="2xs" trigger="2xs">
Content
</Popover>
<Popover size="xs" trigger="xs">
Content
</Popover>
<Popover size="sm" trigger="sm">
Content
</Popover>
<Popover size="md" trigger="md">
Content
</Popover>
<Popover size="lg" trigger="lg">
Content
</Popover>
<Popover size="xl" trigger="xl">
Content
</Popover>
<Popover size="2xl" trigger="2xl">
Content
</Popover>
<Popover size="3xl" trigger="3xl">
Content
</Popover>
</div>
);
}
const styles = {
row: { display: "flex", flexWrap: "wrap", gap: "0.5rem" },
} as const;Padding
import { Popover } from "density-base-ui";
export default function PopoverPaddingExample() {
return (
<div style={styles.row}>
<Popover padding="none" trigger="None">
None
</Popover>
<Popover padding="2xs" trigger="2xs">
2xs
</Popover>
<Popover padding="xs" trigger="xs">
xs
</Popover>
<Popover padding="sm" trigger="sm">
sm
</Popover>
<Popover padding="md" trigger="md">
md
</Popover>
<Popover padding="lg" trigger="lg">
lg
</Popover>
<Popover padding="xl" trigger="xl">
xl
</Popover>
<Popover padding="2xl" trigger="2xl">
2xl
</Popover>
<Popover padding="3xl" trigger="3xl">
3xl
</Popover>
</div>
);
}
const styles = {
row: { display: "flex", flexWrap: "wrap", gap: "0.5rem" },
} as const;Depth
import { Popover } from "density-base-ui";
export default function PopoverDepthExample() {
return (
<div style={styles.row}>
<Popover depth="1" trigger="Depth 1">
Content
</Popover>
<Popover depth="2" trigger="Depth 2">
Content
</Popover>
<Popover depth="3" trigger="Depth 3">
Content
</Popover>
<Popover depth="4" trigger="Depth 4">
Content
</Popover>
<Popover depth="5" trigger="Depth 5">
Content
</Popover>
<Popover depth="6" trigger="Depth 6">
Content
</Popover>
<Popover depth="7" trigger="Depth 7">
Content
</Popover>
</div>
);
}
const styles = {
row: { display: "flex", flexWrap: "wrap", gap: "0.5rem" },
} as const;