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.
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.