Lynx

Help Bubble

사용자에게 컴포넌트의 상태나 특정 기능에 대한 추가 정보를 제공하는 말풍선입니다.

사용 가능 버전@seed-design/[email protected], @seed-design/[email protected]
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli@latest add ui:help-bubble

Usage

import IconILowercaseSerifCircleFill from "@karrotmarket/lynx-monochrome-icon/IconILowercaseSerifCircleFill";
import { ActionButton, Icon } from "@seed-design/lynx-react";

import { HelpBubbleTrigger } from "@/components/ui/help-bubble";

export function App() {
  return (
    <HelpBubbleTrigger defaultOpen title="추가 정보를 확인하세요.">
      <ActionButton variant="ghost" size="small" layout="iconOnly" accessibility-label="도움말">
        <Icon icon={<IconILowercaseSerifCircleFill />} />
      </ActionButton>
    </HelpBubbleTrigger>
  );
}
  • HelpBubbleTrigger는 자식을 탭하면 말풍선을 열고 닫습니다.
  • HelpBubbleAnchor는 위치만 정합니다. defaultOpen 또는 open과 onOpenChange로 상태를 관리하세요.
  • 기본 배치는 "top"입니다. placement, flip, gutter, overflowPadding, arrowPadding으로 위치를 조정할 수 있습니다.
  • showCloseButton으로 닫기 버튼을 추가할 수 있습니다.
  • contentProps.maxWidth의 기본값은 280px입니다. "none"으로 제한을 없앨 수 있습니다.
  • zIndexOffset은 같은 화면 안에서의 표시 순서를 조정합니다. native overlay 사이의 순서는 overlayLevel로 정합니다.

Props

HelpBubbleTrigger

Prop

Type

titleReact.ReactNode
description?React.ReactNode
showCloseButton?boolean | undefined
children?React.ReactNode
contentProps?SeedHelpBubble.ContentProps | undefined
zIndexOffset?number | undefined
container?string | undefined
overlayLevel?1 | 2 | 3 | 4 | undefined
open?boolean | undefined
defaultOpen?boolean | undefined

HelpBubbleAnchor

Prop

Type

titleReact.ReactNode
description?React.ReactNode
showCloseButton?boolean | undefined
children?React.ReactNode
contentProps?SeedHelpBubble.ContentProps | undefined
zIndexOffset?number | undefined
container?string | undefined
overlayLevel?1 | 2 | 3 | 4 | undefined
open?boolean | undefined
defaultOpen?boolean | undefined

Examples

Trigger

HelpBubbleTrigger를 탭하면 말풍선이 열리고 닫힙니다. 이 예제는 처음 열린 uncontrolled Trigger와 open, onOpenChange로 상태를 제어하는 Trigger를 함께 보여줍니다. 두 경우 모두 닫기 버튼으로 닫을 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Anchor

HelpBubbleAnchor는 아바타처럼 말풍선의 위치만 정하는 요소이며, 탭으로 열고 닫히지 않습니다. defaultOpen을 쓰는 uncontrolled Anchor와 open, onOpenChange를 쓰는 controlled Anchor의 열림 상태는 각각 닫기 버튼과 열림 Switch로 바꿉니다.

Lynx 예제를 불러오는 중입니다.

Close On Interact Outside

closeOnInteractOutside의 기본값은 true입니다. true이면 Trigger·Anchor와 말풍선 밖을 탭했을 때 말풍선이 닫히고, 그 탭은 아래 요소에도 그대로 전달됩니다. false이면 바깥을 탭해도 말풍선이 열린 채로 유지됩니다.

Lynx 예제를 불러오는 중입니다.

Placement

placement로 기준 요소의 12개 방향에 말풍선을 배치합니다. 이 예제는 각 배치를 열린 상태로 표시합니다. 화면 경계에서 지정한 방향의 공간이 부족하면 flip 기본값에 따라 말풍선이 반대 방향으로 뒤집힙니다.

Lynx 예제를 불러오는 중입니다.

Flip

flip={false}를 지정하면 화면 경계에서 공간이 부족해도 말풍선의 방향을 바꾸지 않습니다.

Lynx 예제를 불러오는 중입니다.

Close Button

showCloseButton으로 말풍선에 닫기 버튼을 추가할 수 있습니다. 닫기 버튼을 탭하면 말풍선이 닫히고, Trigger를 다시 탭하면 다시 엽니다.

Lynx 예제를 불러오는 중입니다.

Description

description을 사용하여 title 아래에 설명을 추가할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Title Only

description 없이 title만 전달할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

Setting Width Manually

Content에는 기본 최대 너비가 있습니다. contentProps.maxWidth로 이 값을 덮어쓰고, "none"으로 최대 너비 제한을 없앨 수 있습니다. contentProps.style.width를 함께 지정했을 때 maxWidth가 더 좁으면 maxWidth가 우선합니다.

Lynx 예제를 불러오는 중입니다.

Line Breaks

React의 <br />는 Lynx title에서 native <text> 자식과 "\n"으로 변환합니다. 문자열의 줄바꿈 문자도 title에 전달할 수 있습니다.

Lynx 예제를 불러오는 중입니다.

z-index Offset

zIndexOffset은 같은 Lynx 화면 안에서의 표시 순서를 조정합니다. container를 지정한 native overlay 사이의 순서는 overlayLevel로 정합니다.

Lynx 예제를 불러오는 중입니다.

Portalled

container를 지정하지 않으면 말풍선은 Lynx view 안의 position: fixed view로 렌더링됩니다. container="window"처럼 native container 이름을 지정하면 native overlay 레이어에 렌더링되어 Lynx view 밖의 host 화면까지 덮습니다. overlayLevel은 container를 지정했을 때 overlay 레이어의 표시 순서를 정합니다.

overlay 레이어는 말풍선이 아닌 곳의 탭을 아래 화면으로 넘깁니다. closeOnInteractOutside가 true이면 같은 탭으로 말풍선도 닫힙니다.

Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

  • Trigger와 Anchor는 자식을 native view로 감싸며 asChild를 제공하지 않습니다. raw <text>처럼 이름을 만들 수 없는 Trigger에는 accessibility-label을 지정하세요.
  • closeOnInteractOutside는 바깥 탭을 아래 요소로 전달합니다. 스크롤처럼 탭이 아닌 상호작용으로는 닫히지 않습니다.
  • container를 지정하면 native overlay에 렌더링됩니다. 지정하지 않으면 zIndexOffset으로 같은 화면 안의 표시 순서를 조정합니다.
  • Help Bubble Tooltip은 hover와 키보드 focus를 사용하는 웹 전용 컴포넌트입니다.

Last updated on

목차