Codexy Design System
Components

Toast

Montage(WDS) 포팅 — 어두운 반투명 표면 + 메시지 한 줄

어두운 반투명(blur) 표면에 leading 아이콘과 메시지 한 줄만 담는 가벼운 피드백. 하단 중앙에서 자동 소멸하며 사용자 조작이 필요 없다. close 버튼·설명·action 이 필요하면 Snackbar 를 쓴다.

표면은 두 겹 오버레이(inverse-background 52% + primary 5%) 위에 backdrop-blur(32px). 데스크톱 min 356 / max 420px, 모바일 full-width. 헤드리스는 @radix-ui/react-toast 로 고정.

사용

import {
  Toast, ToastProvider, ToastViewport,
} from "@tendtoyj/cds-ui/components/toast";

<ToastProvider swipeDirection="down" duration={3000}>
  <Toast variant="positive">변경사항을 저장했어요.</Toast>
  <ToastViewport />
</ToastProvider>

Demo

    Props

    <Toast />

    Prop타입기본설명
    variantnormal | positive | cautionary | negative | questionnormalleading 아이콘 + 색상
    iconPhosphorIcon | ComponentType | false | null아이콘 오버라이드. 컴포넌트면 Custom(흰색·backing 없음), false/null 이면 숨김
    childrenReactNode메시지 (한 줄)
    durationnumber3000auto-close ms. Infinity 면 유지
    open / defaultOpen / onOpenChangeRadixcontrolled API

    <ToastProvider />

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

    Variant

    메시지는 항상 static white(--cds-color-common-100, opacity 88%). leading 아이콘은 @tendtoyj/cds-icons/custom 의 채워진(fill) 상태 아이콘이며, 어두운 표면 대비를 위해 atomic 60 색을 쓴다. 빌트인 아이콘은 컷아웃 글리프가 비치도록 흰 backing 을 깐다. normal 은 Montage 와 동일하게 기본 아이콘이 없다.

    Variant아이콘아이콘 색
    normal(없음)
    positiveCheckCircleFill--cds-color-green-60
    cautionaryWarningTriangleFill--cds-color-orange-60
    negativeXCircleFill--cds-color-red-60
    questionQuestionCircleFillstatic white
    Customicon prop 으로 임의 지정static white

    Toast vs Snackbar

    둘 다 동일한 어두운 반투명 표면을 쓴다. 차이는 구조와 상호작용이다.

    ToastSnackbar
    내용메시지 한 줄heading + description
    close / action✅ (인라인)
    성격비대화형대화형
    duration30004000 / 16000

    Registry 설치

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