• CMSnpm version

    • Overview
    • ContentBuilder
    • InviteUserForm
    • LoginForm
    • RenewPasswordForm
  • UInpm version

    • Overview
    • Accordion
    • AlertBubble
    • AnnouncementBar
    • Avatar
    • AvatarFileInput
    • Badge
    • Button
    • ButtonGroup
    • ButtonList
    • Calendar
    • Checkbox
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • Chip
    • ColorRadio
    • ColorRadioGroup
    • Combobox
    • DatePicker
    • DatePickerInput
    • DateRangePicker
    • DateRangePickerInput
    • DatetimePicker
    • DatetimePickerInput
    • Dialog
    • Dropdown
    • Dropzone
    • ErrorMessage
    • FileInput
    • FlashMessages
    • FormComponent
    • Icon
    • IconButton
    • ImageGallery
    • InfoBox
    • Input
    • Label
    • Layout
    • Lightbox
    • ListItem
    • Loader
    • Lozenge
    • Menu
    • Message
    • Modal
    • ✅ ModalDialog
    • ✅ ModalHeader
    • MultiCombobox
    • MultiSelect
    • Pagination
    • Paper
    • Popover
    • Radio
    • RadioGroup
    • RasterImage
    • Select
    • ✅ Tabs
    • TextInput
    • TextLink
    • Textarea
    • TimePicker
    • TimePickerInput
    • Toggle
    • Tooltip
    • Typography
  • Formnpm version

    • Overview
    • AvatarFileInput
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • ColorRadioGroup
    • Combobox
    • DatePickerInput
    • DateRangePickerInput
    • DatetimePickerInput
    • Dropzone
    • FileInput
    • Form
    • FormRenderer
    • GpsInput
    • MoneyInput
    • MultiCombobox
    • MultiSelect
    • NumberInput
    • PasswordInput
    • RadioGroup
    • Select
    • TextInput
    • Textarea
    • TimePickerInput
    • Toggle
  • DataGridnpm version

    • Overview
    • DataGrid
    • DataGridCustomExample
    • ExportButton
    • FilterList
    • Filters
    • FiltersButton
    • FulltextInput
    • HiddenColumns
    • HiddenColumnsButton
    • Pagination
    • RowCounts
    • RowsPerPageSelect
    • SelectedRowsToolbar
    • TableV2
    • ToolbarControl
    • ToolbarCustoms
    • ToolbarTabs
  • Wysiwygnpm version

    • Overview
  • Resizernpm version

    • Overview
  • Routernpm version

    • Overview
  • Corenpm version

    • Overview
  • Core-Reactnpm version

    • Overview
  • Stylesnpm version

    • Overview
  • Localizenpm version

    • Overview
  • Analyticsnpm version

    • Overview
  • Datepickernpm version

    • Overview
  • Icons-generatornpm version

    • Overview
  • Smart-addressnpm version

    • Overview
  • E2Enpm version

    • Overview
  • E2E-Playwrightnpm version

    • Overview
View source on GitLab

Popover

A click- or hover-triggered floating panel, positioned with @floating-ui/react and rendered in a portal with focus management. Composed from Popover, Popover.Trigger, and Popover.Content.

When to use

Use Popover when the overlay holds interactive or richer content and should open on click (or hover). For a short, non-interactive hint that opens on hover/focus, use Tooltip instead.

Unlike most @uxf/ui components, this directory has no index.ts — import from the file directly:

import { Popover } from "@uxf/ui/popover/popover";

The content is unstyled (no stylesheet ships with this component); style Popover.Content yourself.

There is no @uxf/form twin.

Usage

import { Popover } from "@uxf/ui/popover/popover";

<Popover placement="right-start" trigger="click">
    <Popover.Trigger>Trigger</Popover.Trigger>
    <Popover.Content>Popover content</Popover.Content>
</Popover>;

Set trigger — without it, the popover has no built-in open interaction. Popover.Content renders null while closed.

Props

Popover (root)

PropTypeDefaultDescription
childrenReactNode—Required. Expects Popover.Trigger and Popover.Content.
trigger"hover" | "click"—Interaction that opens the popover. If omitted, neither click nor hover opens it.
placementPlacement"bottom"Preferred side; flip/shift adjust when there is no room.

Popover.Trigger

Extends HTMLAttributes<HTMLElement>.

PropTypeDefaultDescription
childrenReactNode—Required. Trigger content.
asChildbooleanfalseRender the child element as the anchor (clones it) instead of wrapping it in a <button>. The child must accept a ref and DOM props.

Popover.Content

Extends HTMLAttributes<HTMLDivElement> — standard <div> attributes (children, className, style, …). It is portaled and wrapped in a non-modal FloatingFocusManager, and carries aria-labelledby / aria-describedby wiring from context.

Variants & states

  • Open triggers: trigger="click" toggles on click; trigger="hover" opens on hover with a safePolygon bridge into the content.
  • Dismiss: closes on Escape and outside interaction.
  • Focus: focus is managed within the content while open (non-modal).

Advanced: usePopoverContext

usePopoverContext is exported for reading the popover state from a descendant of Popover. It throws if called outside a <Popover>.

Requirements

No stylesheet — the panel ships unstyled. It relies only on being rendered inside a React tree (uses a portal to document.body).

Default
Open in new tab