Capítulo 33 de 51
A non-modal-by-default anchored popup for supplementary content — same Handle/detached-trigger and Viewport content-transition machinery as Dialog/Menu, positioned relative to its Trigger (or a separate anchor) rather than centered on screen.
Root → Trigger, Portal → Backdrop, Positioner → Popup → Arrow, Viewport → Title, Description, Close.modal=true default), Popover defaults to non-modal — set modal explicitly if the popover should trap focus/block outside interaction.Trigger supports openOnHover/delay/closeDelay directly (the pattern demoed in ch006 Animation and ch002 Getting Started uses click by default; hover is opt-in).Viewport: same content-transition part as Menu/Navigation Menu — animate between different popover "pages" of content in place.side/sideOffset, align/alignOffset, anchor (position relative to an element other than Trigger), collisionBoundary/collisionPadding/collisionAvoidance, sticky, positionMethod.Popup exposes --available-height/--available-width, --anchor-width/--anchor-height, --transform-origin for sizing/animating relative to the anchor and available viewport space.Handle/createHandle() system as Dialog/AlertDialog/Menu.| Part | Notable props | Notable data attributes |
|---|---|---|
Root | open/onOpenChange, modal, handle, actionsRef, triggerId/defaultTriggerId | — |
Trigger | openOnHover, delay, closeDelay, handle, payload | data-popup-open, data-pressed |
Positioner | side/sideOffset, align/alignOffset, anchor, collisionBoundary/collisionPadding/collisionAvoidance, sticky, positionMethod | data-anchor-hidden, data-align, data-side |
Popup | initialFocus, finalFocus | data-instant, animation attrs (CSS vars --available-height/-width, --anchor-width/-height, --transform-origin) |
modal if the design needs focus-trapping/backdrop-blocking behavior; don't assume it matches Dialog's defaults.anchor when the popover should position relative to an element other than its own Trigger (e.g. a popover opened programmatically, anchored to a table row).--available-height/--anchor-width CSS variables for popup sizing instead of hardcoded max-heights — they track the live viewport/anchor geometry.