Lynx

Callout

사용자에게 중요한 정보나 팁을 시각적으로 강조하여 전달하는 메시지 컴포넌트입니다.

Engine ≥ 3.6
사용 가능 버전@seed-design/lynx-react@0.5.0, @seed-design/lynx-css@0.9.0
Lynx 예제를 불러오는 중입니다.

설치

npx @seed-design/cli@latest add ui:callout

속성

Callout

Prop

Type

prefixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
title?React.ReactNode
descriptionReact.ReactNode
linkProps?SeedCallout.LinkProps | undefined
bindtap?EventHandler<BaseTouchEvent<Target>> | undefined
main-thread:bindtap?EventHandler<BaseTouchEvent<Element>> | undefined
style?CSSProperties | undefined
className?string | undefined

ActionableCallout

Prop

Type

prefixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
title?React.ReactNode
descriptionReact.ReactNode
bindtap?EventHandler<BaseTouchEvent<Target>> | undefined
main-thread:bindtap?EventHandler<BaseTouchEvent<Element>> | undefined
style?CSSProperties | undefined
className?string | undefined

DismissibleCallout

Prop

Type

prefixIcon?React.ReactElement<LynxIconElementProps, string | React.JSXElementConstructor<any>> | undefined
title?React.ReactNode
descriptionReact.ReactNode
linkProps?SeedCallout.LinkProps | undefined
dismissLabel?string | undefined
open?boolean | undefined
defaultOpen?boolean | undefined
onDismiss?(() => void) | undefined
bindtap?EventHandler<BaseTouchEvent<Target>> | undefined
main-thread:bindtap?EventHandler<BaseTouchEvent<Element>> | undefined
style?CSSProperties | undefined
className?string | undefined

사용법

설치한 스니펫은 기본 Callout, 전체 영역을 탭할 수 있는 ActionableCallout, 닫을 수 있는 DismissibleCallout을 내보냅니다.

import { Callout } from "@/components/ui/callout";

export function App() {
  return <Callout title="알림" description="새로운 소식을 확인해 보세요." />;
}

저수준 조합이 필요하면 @seed-design/lynx-react의 컴파운드 API를 직접 사용할 수 있습니다.

import { Callout } from "@seed-design/lynx-react";

export function App() {
  return (
    <Callout.Root tone="informative">
      <Callout.Content>
        <Callout.Title>알림</Callout.Title>
        <Callout.Description>새로운 소식을 확인해 보세요.</Callout.Description>
      </Callout.Content>
    </Callout.Root>
  );
}

예시

콘텐츠 구성

텍스트만

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

아이콘 포함

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

제목 텍스트 포함

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

링크 레이블 포함

ActionableCallout에서는 linkProps를 제공하지 않아요.

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

모든 요소 포함

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

toneneutral, informative, positive, warning, critical, magic을 지원합니다. 기본값은 neutral입니다.

중립 (기본값)

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

정보

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

긍정

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

경고

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

위험

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

매직

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

웹 버전과의 차이

영역ReactLynx
엘리먼트div, span, buttonview, text
이벤트onClickbindtap, main-thread:bindtap
접근성HTML 의미 요소, ARIAaccessibility-*
다형성asChild 지원미지원
링크 밑줄text-decorationLynx 프리셋 제약으로 테두리 기반 표현

Lynx에서는 탭할 수 있는 Root를 누르는 동안 pressed Recipe variant를 적용합니다. Callout.Link는 기본적으로 accessibility-traits="link"를 사용합니다. 탭할 수 있는 RootCloseButton에는 button 역할을 적용합니다.

Lynx 미지원 기능

  • asChild: Lynx에는 DOM Slot 기반 다형 렌더링이 없습니다.
  • 링크 레이블을 자식 요소로 렌더링: asChild 대신 링크 문구를 linkProps.children에 전달하고 탭 동작은 linkProps.bindtap으로 처리하세요.

Last updated on

목차