오버레이(드롭다운, 툴팁, 알림)를 만들 때 가장 성가신 부분은 z-index 전쟁과 "바깥을 클릭하면 닫히게" 로직이었습니다. z-index는 아무리 크게 줘도 부모 중 하나가 `overflow:hidden`이나 `transform`을 쓰면 잘려나갔고, 라이트 디스미스는 매번 document에 클릭 리스너를 달고 떼는 코드를 직접 짜야 했습니다.
`popover` 속성을 요소에 붙이면 그 요소는 top layer(뷰포트 최상단, 다른 모든 stacking context 위)로 렌더링됩니다. 트리거 버튼에는 `popovertarget="id"`만 주면 클릭으로 열고 닫히며, 바깥 클릭과 Esc는 브라우저가 알아서 처리합니다. JS로 열고 닫아야 하면 `el.showPopover()` / `hidePopover()` / `togglePopover()`를 씁니다.
기본 지원은 caniuse/MDN baseline을 확인하세요. 미지원 브라우저에서는 `position:fixed` + 수동 z-index + document 클릭 리스너 조합이 여전히 필요합니다 — 아래 데모의 폴백 경로가 그 최소형입니다.
언제 쓰나
드롭다운·알림·간단한 다이얼로그처럼 "다른 모든 것 위에 뜨고 바깥을 누르면 닫히는" UI를 만들 때.