Skip to main content

Starwind UI v1.16 is now available! With new popover and more components With new input-group, native-select, and popover components

Popover

Installation

Usage

General Notes

Popovers are ideal for showing contextual content, settings, and quick actions without leaving the current page.

The essential components are Popover, PopoverTrigger, and PopoverContent. Use PopoverHeader, PopoverTitle, and PopoverDescription to create a consistent content structure.

Hover Open

Enable hover behavior with openOnHover. Use closeDelay to control how long the popover stays open after the pointer leaves.

Nested Popovers

Nested popovers work without immediately closing the parent popover while you interact with child content.

Align: start, center, end

Use the align prop on PopoverContent to control horizontal alignment relative to the trigger.

Side, sideOffset, and animationDuration

Position content with side, add spacing with sideOffset, and tune animation timing with animationDuration.

API Reference

Popover

The root component that manages popover state and interaction behavior.

PropTypeDefault
openOnHoverbooleanfalse
closeDelaynumber200
defaultOpenbooleanfalse
classstring-
<Popover openOnHover closeDelay={300} defaultOpen={false}>
<PopoverTrigger>Open</PopoverTrigger>
<PopoverContent>Popover content</PopoverContent>
</Popover>

Additional Notes:

  • openOnHover: Opens the popover on pointer hover (mouse) in addition to click and keyboard interactions
  • closeDelay: Delay in milliseconds before hover-open popovers close after pointer leave
  • defaultOpen: Sets the initial rendered state to open

PopoverTrigger

The interactive trigger element that toggles the popover.

PropTypeDefault
asChildbooleanfalse
classstring-
<PopoverTrigger asChild>
<Button variant="outline">Open popover</Button>
</PopoverTrigger>

Additional Notes:

  • asChild: Renders the child element as the trigger while preserving popover behavior

PopoverContent

The positioned floating panel rendered when the popover is open.

PropTypeDefault
side"top" | "bottom" | "left" | "right""bottom"
align"start" | "center" | "end""center"
sideOffsetnumber4
animationDurationnumber150
aria-labelstring-
classstring-
<PopoverContent side="bottom" align="start" sideOffset={8} animationDuration={180}>
Popover content
</PopoverContent>

Additional Notes:

  • side: Preferred side for content placement relative to the trigger
  • align: Alignment along the chosen side
  • sideOffset: Gap in pixels between trigger and content
  • animationDuration: Open and close animation duration in milliseconds
  • aria-label: Accessible name used when no PopoverTitle is present

PopoverHeader

A layout wrapper for popover heading content.

PropTypeDefault
classstring-
<PopoverHeader>
<PopoverTitle>Title</PopoverTitle>
<PopoverDescription>Description</PopoverDescription>
</PopoverHeader>

PopoverTitle

The title element for popover content.

PropTypeDefault
classstring-
<PopoverTitle>Popover title</PopoverTitle>

PopoverDescription

Supporting descriptive text displayed under the title.

PropTypeDefault
classstring-
<PopoverDescription>
Additional context for the popover.
</PopoverDescription>

Changelog

v1.0.0

  • Initial component release with starwind v1.16.0