ネイティブ HTML の popover 属性を使ったデモです。
参考: Popover API について (Zenn)
popover="auto" はポップオーバー外をクリックすると自動で閉じます。
外側をクリックするか、もう一度ボタンを押すと閉じます。
popover="manual" は外クリックでは閉じず、ボタン操作でのみ開閉します。
「閉じる」ボタンを押さないと消えません。
::backdrop 疑似要素で背景を暗くできます。
::backdrop でオーバーレイを表現できます。
外をクリックすると閉じます。
showPopover() / hidePopover() / togglePopover() で操作できます。
JavaScript の API (showPopover / hidePopover) で操作しています。