Skip to main content
PopoverPanel
@coinbase/cds-web@8.64.0
PopoverPanel anchors an elevated floating panel to a trigger element.
import { PopoverPanel } from '@coinbase/cds-web/popover'
Peer dependencies
  • framer-motion: ^10.18.0,
  • react-dom: ^18.3.1
Related components

Basics

Pass content for the panel body and children as the trigger. The trigger toggles open and closed on press; the panel applies focus management and escape-to-close behavior.

Loading...

Selectable list

Use ListCell with local state for the selected row and closePopover from the content render callback. You do not need SelectProvider or SelectContext.

After a value is chosen, the trigger often shows only the title. Set accessibilityLabel on the trigger to include the same details a sighted user gets from the list (for example title and description). Optionally set the panel accessibilityLabel so the dialog name matches the task (first choice vs. changing the value).

Loading...

Overlay and placement

Use showOverlay to dim content behind the panel. Adjust floating placement with contentPosition (see Floating UI placement).

Loading...

Panel sizing

By default, the panel content uses the same width as the trigger. Set panelWidth, minPanelWidth, maxPanelWidth, and maxPanelHeight when you need different constraints. The default max height is exported as POPOVER_PANEL_MAX_HEIGHT.

Loading...

Mobile modal

On small viewports, pass enableMobileModal to render the panel in a modal shell instead of a floating popover.

Loading...

Imperative open and close

Use a ref to call openPopover and closePopover when you need to drive visibility from elsewhere (for example, a separate control or analytics callback).

Loading...

Is this page useful?

Coinbase Design is an open-source, adaptable system of guidelines, components, and tools that aid the best practices of user interface design for crypto products.