Base UI popover in a Sheet

Place Velvet's Base UI boundary inside Popover.Portal and slot the real Positioner, leaving Base UI in charge of layout.

Local preview
Play in StackBlitz

Review settings

Base UI owns anchoring; the adapter enrolls its Positioner in Velvet.

What stays true

  • Adapter lives inside Portal
  • Positioner is DOM-bearing
  • Dismissal stays frontmost-only

Try it deliberately

  • This is what a Base UI adapter means here: scope, dismissal, and focus coordination—not restyling.
  • The separate @velvetui/react/base-ui entry has no runtime peer import.