메인 콘텐츠로 건너뛰기

Popover 팝오버

Tooltip과 비슷하지만, 제목과 더 풍부한 콘텐츠(HTML 구조, 목록 등)를 담을 수 있으며 클릭이나 마우스 오버로 트리거합니다.

기본 사용법​

위치, 트리거 방식, 화살표
import { LhButton, LhPopover } from '@lh-ui/react'

export default function Demo() {
return (
<LhPopover title="제목" content="팝오버 콘텐츠입니다." placement="top">
<LhButton>위쪽</LhButton>
</LhPopover>
)
}

Popover Props​

프로퍼티설명타입옵션기본값
children트리거 노드ReactNode——
title제목(__title 영역에 렌더링)ReactNode——
content콘텐츠(__content 영역에 렌더링)ReactNode——
placement표시 위치LhPopoverPlacementtop / bottom / left / right (-start / -end 포함)'top'
trigger트리거 방식LhPopoverTrigger'hover' | 'click' | 'focus' | 'manual''click'
disabled팝오버 비활성화boolean—false
arrow화살표 표시 여부boolean—true
width오버레이 너비string | number——
visible제어형 표시boolean——
defaultVisible비제어 기본 표시boolean—false
showAfter표시 지연(ms, 기본 200, 잘못된 트리거 방지)number—200
hideAfter숨김 지연(ms, 기본 100, 포인터가 오버레이로 들어갈 시간 확보)number—100
popperClass오버레이 커스텀 클래스명string——
themeVars컴포넌트 수준 테마 변수Record<string, string>——
bgPattern컴포넌트 수준 배경 문양string——
sx간편 레이아웃 프로퍼티(트리거에 적용)SxProps——

Popover 이벤트​

이벤트설명콜백 시그니처Vue 대응
onVisibleChange표시 변경(제어 및 비제어 모드에서 모두 발생)(visible: boolean) => voidupdate:visible

ref​

forwardRef<HTMLDivElement> — 트리거 루트 요소. LhPopoverInstance는 show() / hide() / toggle() / isVisible를 노출합니다.

포커스 트랩

trigger="click"이면 오버레이가 dialog 의미론에 따라 포커스를 가두고(Tab이 내부에서 순환), 닫힐 때 포커스를 반환합니다. hover / focus 트리거는 포커스를 빼앗지 않으며, plus의 isModal 동작과 일치합니다.

접근성

오버레이는 role="dialog"입니다. 제목이 있으면 aria-labelledby로 연결하고, 트리거는 aria-describedby로 오버레이와 연결됩니다.

스타일​

import '@lh-ui/react/style/popover'