Founding sponsorYour name here
Popover

Filter projects

Dropdown
Tooltip

Popover vs. Dropdown Menu vs. Tooltip

/ popover · role="tooltip" /

also called popup, menu, hover hint, toggletip

A popover opens on click and can contain rich text, controls, or forms; it stays until explicitly or externally dismissed. A dropdown menu also opens on click, but presents a keyboard-navigable list of actions and normally closes after selection. A tooltip is a brief, non-interactive label that appears on hover or keyboard focus and disappears when that trigger is left or blurred.

If you called it…

the little box attached to a buttonthe list that opens under a menu buttonthe label that appears when you hovera popup with controls inside itthe tiny explanation next to an iconthe menu that appears when you click the three dots

…you meant a popover vs. dropdown menu vs. tooltip.

Anatomy — every part, named

  1. 1
    Overlay triggerpopovertarget

    “The button the little box is attached to” is the overlay trigger.

  2. 2
    Menu selection highlightrole="menuitem"

    “The bar behind the dropdown action the arrows are on” is the menu selection highlight.

  3. 3
    Tooltip arrowTooltip.Arrow

    “The tiny point aiming the hover label at the icon” is the tooltip arrow.

Prompt — paste into your agent

Use the HTML popover attribute for the click-triggered rich overlay, role="menu" for the keyboard-navigable action list, and role="tooltip" only for a brief non-interactive hover or focus hint. Link the tooltip from its trigger with aria-describedby, keep every overlay anchored to its trigger, and implement the correct Escape, outside-click, and focus-dismissal behavior for each pattern.

Debug prompt — when it misbehaves

Paste this, then describe what you’re seeing — it hands your agent the classic failure modes to rule out first.

Debug my popover/dropdown/tooltip (Popover API, Radix, floating-ui). Rule out: the wrong primitive — tooltips are hover+focus, never interactive content; the panel clipped by an overflow ancestor instead of portaled to body or using the top-layer Popover API; flip/shift middleware missing so it overflows at viewport edges; outside-click closing it before the inside click registers. The symptom:

In code

The exact names this thing goes by in code — each row is one framework’s word for it. Use the row that matches your project (or paste it into your prompt).

HTMLpopover
ARIArole="tooltip"
ARIArole="menu"
RadixPopover
RadixDropdownMenu
RadixTooltip

See also

Search

Describe the UI element you're thinking of