HelpBubble
현재 흐름을 유지한 채 짧은 도움말과 보조 설명을 보여주는 컴포넌트예요.
HelpBubble은 사용자가 보고 있던 화면을 벗어나지 않고, Trigger 근처에서 짧은 도움말을 확인할 때 사용해요. 반드시 선택해야 하는 내용이나 다음 행동을 막아야 하는 상황이라면 Dialog나 AlertDialog를 사용해요.
overlay 사이 선택이 헷갈린다면 Overlay Patterns에서 Dialog, AlertDialog, HelpBubble를 먼저 비교해보세요.
Anatomy
HelpBubble은 Root, Trigger, Positioner, Content, Title, Description을 중심으로 사용해요. Positioner가 Trigger 근처 배치를 맡고, Content가 실제 도움말 표면을 보여줘요. 별도의 닫기 버튼이 필요하면 선택적으로 Close를 함께 둘 수 있어요.
기본 구성
기본 사용에서는 HelpBubble.Trigger로 열고 HelpBubble.Positioner 안에 HelpBubble.Content를 둬요. 외부 상태와 맞춰야 할 때만 open과 onOpenChange를 함께 사용해요.
Properties
State
HelpBubble은 열린 상태와 닫힌 상태를 가져요. 열린 동안에는 role="dialog"와 접근 가능한 이름이 적용돼요. 사용자는 바깥을 누르거나 Escape로 HelpBubble을 닫을 수 있어요. 기본 예제의 trigger를 눌러 실제 열림과 닫힘 흐름을 확인할 수 있어요.
Guidelines
짧은 도움말에 사용하기
폼 설명, 단축키 안내, 가벼운 보조 정보처럼 지금 흐름을 유지한 채 짧게 읽고 닫아도 되는 내용에 사용해요. 결과가 크거나 사용자가 확인과 취소 중 하나를 골라야 하는 액션에는 AlertDialog를 사용해요.
다른 overlay와 구분하기
Trigger 근처에서 짧게 읽고 지나가면 되는 설명이라면 HelpBubble을 사용해요. 내용이 길어지거나 별도 조작이 필요하면 Dialog를 사용하고, 사용자가 취소와 확인 중 하나를 골라야 한다면 AlertDialog를 사용해요.
제목으로 목적을 먼저 알려주기
제목은 이 버블이 왜 떠 있는지 바로 알 수 있게 써요. 설명은 다음 행동을 돕는 짧은 맥락만 덧붙이면 충분해요.
Tooltip처럼 너무 짧게 줄이지 않기
HelpBubble은 단순한 hover 라벨보다 설명이 조금 더 필요한 상황에 잘 맞아요. 한두 단어 이름만 보여주면 충분하다면 HelpBubble까지 쓰지 말고 더 가벼운 패턴을 사용해요.
다음에 읽으면 좋은 문서
- overlay 차이는 Overlay Patterns에서 한 번에 비교해요.
- 제목과 설명 문구는 Writing 기준을 따라요.
- 제목과 설명의 텍스트 크기와 계층은 Typography에서 확인해요.
- bubble과 inverse neutral 색상 기준은 Color에서 확인해요.
Schema
Public Anatomy
컴포넌트가 어떤 구성 요소로 이루어지는지 보여줘요. 스타일 타깃으로 표시된 항목만 definition과 recipe에서 직접 스타일링해요.
| 이름 | 필수 | 스타일 타깃 | 설명 |
|---|---|---|---|
trigger | 필수 | 아니오 | HelpBubble을 열고 닫는 선택 컨트롤이에요. |
positioner | 필수 | 예 | Content를 Trigger 근처에 배치하는 레이아웃 레이어예요. |
content | 필수 | 예 | 도움말을 담는 비모달 표면이에요. |
title | 필수 | 예 | HelpBubble의 목적을 먼저 알려주는 제목이에요. |
description | 선택 | 예 | 도움말을 이해하는 데 필요한 짧은 보조 설명이에요. |
close | 선택 | 예 | HelpBubble을 닫는 선택 컨트롤이에요. |
States
사용자가 느끼거나 컴포넌트가 실제로 드러내는 상태를 설명해요. 각 항목에는 recipe와 runtime이 함께 읽는 바인딩 정보를 적어요.
| 이름 | 바인딩 | 설명 |
|---|---|---|
open | [data-state="open"] | HelpBubble이 보이고 상호작용할 수 있어요. |
closed | [data-state="closed"] | HelpBubble이 숨겨지고 상호작용 대상에서 제외돼요. |
Accessibility
| 역할 | dialog |
|---|---|
| 키보드 |
|
| 요구사항 |
|