Codexy Design System
Components

Snackbar

Montage(WDS) 포팅 — 어두운 반투명 표면 + heading/description + 인라인 action·close

Toast 와 동일한 어두운 반투명(blur) 표면 위에 leading content, heading/description, 그리고 인라인 action·close 버튼을 얹은 대화형 피드백. 하단 중앙에서 자동 소멸하되 사용자가 직접 닫거나 되돌리기 같은 행동을 할 수 있다. 단순 메시지 한 줄이면 Toast 를 쓴다.

action·close 는 텍스트 옆 같은 행에 수직 중앙으로 정렬된다. 헤드리스는 @radix-ui/react-toast 로 고정. Toast 와 함께 쓰려면 각자의 Provider/Viewport 를 중첩한다.

사용

import {
  Snackbar, SnackbarAction, SnackbarProvider, SnackbarViewport,
} from "@tendtoyj/cds-ui/components/snackbar";

<SnackbarProvider swipeDirection="down" duration={4000}>
  <Snackbar
    variant="positive"
    title="저장됨"
    description="변경사항을 저장했어요."
    action={<SnackbarAction altText="되돌리기" onClick={undo}>되돌리기</SnackbarAction>}
  />
  <SnackbarViewport />
</SnackbarProvider>

SnackbarAction 은 그 자체가 Montage 스타일(흰색·body2 bold)로 스타일된 버튼이다. Radix Toast.Action 기반이라 altText 가 필요하다.

Demo

    Props

    <Snackbar />

    Prop타입기본설명
    variantnormal | positive | cautionary | negative | questionnormalleading 아이콘 + 색상
    titleReactNodeheading (한 줄)
    descriptionReactNode설명 (최대 2줄, 넘치면 말줄임)
    actionReactNode<SnackbarAction> 버튼 (undo 등). 인라인 배치
    iconPhosphorIcon | ComponentType | false | nullleading 오버라이드. false/null 이면 숨김
    closablebooleantrueclose 버튼 표시
    closeLabelstring"닫기"close 버튼 aria-label
    durationnumber4000auto-close ms. 긴 메시지/액션은 16000 권장
    open / defaultOpen / onOpenChangeRadixcontrolled API

    <SnackbarProvider />

    Radix Provider — duration, swipeDirection, swipeThreshold. viewport 는 <SnackbarViewport /> (하단 중앙).

    Variant

    heading(body2 bold)·description(label2)·action·close 는 모두 static white(--cds-color-common-100, opacity 88%). leading 아이콘은 Toast 와 동일한 채워진(fill) 상태 아이콘 + atomic 60 색. normal 은 기본 아이콘이 없다.

    Variant아이콘아이콘 색
    normal(없음)
    positiveCheckCircleFill--cds-color-green-60
    cautionaryWarningTriangleFill--cds-color-orange-60
    negativeXCircleFill--cds-color-red-60
    questionQuestionCircleFillstatic white

    Registry 설치

    npx shadcn add https://cds.codexy.com/r/snackbar