Featuring Design System
Legacy

CoreStatusBadge

레거시 상태 뱃지 컴포넌트. StatusBadge로 마이그레이션을 권장합니다.

개요

마이그레이션 안내 — 이 컴포넌트는 레거시입니다. 신규 프로젝트에서는 StatusBadge를 사용하세요.

CoreStatusBadge는 상태·카테고리를 시각적으로 나타내는 뱃지 컴포넌트입니다.

  • 6가지 statusdefault, informative, error, warning, success, primary
  • 4가지 typefilled, tint, outline, subtle
  • 4가지 sizesm, md, lg, xl
  • leadingElement / trailingElement — 도트, 로더, 또는 임의 아이콘 배치

Usage

Status × Type 조합

<VStack $css={{ gap: '8px' }}>
{['default','error','warning','success','primary','informative'].map((status) => (
  <HStack key={status} $css={{ gap: '8px', alignItems: 'center' }}>
    <CoreStatusBadge text={status} status={status} type="filled" />
    <CoreStatusBadge text={status} status={status} type="tint" />
    <CoreStatusBadge text={status} status={status} type="outline" />
    <CoreStatusBadge text={status} status={status} type="subtle" />
  </HStack>
))}
</VStack>

Leading Dot

<HStack $css={{ gap: '8px', alignItems: 'center' }}>
<CoreStatusBadge text="Default"  status="default"  type="outline" leadingElement={{ dot: true }} />
<CoreStatusBadge text="Error"    status="error"    type="tint"    leadingElement={{ dot: true }} />
<CoreStatusBadge text="Success"  status="success"  type="tint"    leadingElement={{ dot: true }} />
<CoreStatusBadge text="Warning"  status="warning"  type="tint"    leadingElement={{ dot: true }} />
<CoreStatusBadge text="Primary"  status="primary"  type="tint"    leadingElement={{ dot: true }} />
</HStack>

Leading Loader

<HStack $css={{ gap: '8px', alignItems: 'center' }}>
<CoreStatusBadge text="Loading" status="primary" type="tint"    leadingElement={{ loader: { color: 'primary' } }} />
<CoreStatusBadge text="Loading" status="default" type="outline" leadingElement={{ loader: { color: 'gray' } }} />
</HStack>

Leading / Trailing Icon

<HStack $css={{ gap: '8px', alignItems: 'center' }}>
<CoreStatusBadge
  text="Error"
  status="error"
  type="tint"
  size="md"
  leadingElement={<IconErrorFilled size="$icon-xs" style={{ flex: 'none' }} />}
/>
<CoreStatusBadge
  text="Badge"
  status="default"
  type="outline"
  size="md"
  leadingElement={{ dot: true }}
  trailingElement={<IconCloseOutline size="$icon-xs" style={{ flex: 'none' }} />}
/>
</HStack>

크기 비교

<HStack $css={{ gap: '8px', alignItems: 'center' }}>
<CoreStatusBadge text="sm" size="sm" type="outline" />
<CoreStatusBadge text="md" size="md" type="outline" />
<CoreStatusBadge text="lg" size="lg" type="outline" />
<CoreStatusBadge text="xl" size="xl" type="outline" />
</HStack>

아이콘 전용 (text 없음)

<HStack $css={{ gap: '8px', alignItems: 'center' }}>
<CoreStatusBadge size="sm" type="outline" leadingElement={{ dot: true }} />
<CoreStatusBadge size="md" type="outline" leadingElement={{ dot: true }} />
<CoreStatusBadge size="lg" type="tint"    status="success" leadingElement={{ dot: true }} />
</HStack>

Props

ComponentPropsWithoutRef<'div'>를 확장한 컴포넌트입니다.

Prop

Type

CoreStatusBadgeStatus

Prop

Type

CoreStatusBadgeType

Prop

Type

CoreStatusBadgeSize

Prop

Type

스타일

  • display: flex, align-items: center
  • border-radius: radius-full
  • border: 1px solid
  • flex-shrink: 0

Size Variants

size높이최소 너비Padding XGapLoader Size
sm16px16px4px2pxxxs (8px)
md20px20px6px4pxxxs (8px)
lg24px24px8px6pxxs (16px)
xl30px30px10px8pxxs (16px)

leadingElement / trailingElement{ loader: ... }를 전달하면 위 매핑에 따라 자동으로 size가 결정됩니다.

Typography

size토큰
smbody[1]
mdbody[1]
lgbody[2]
xlbody[3]

Status × Type 색상 토큰

default

typebackgroundbordercolor
filledgray-40gray-40white
outlinewhiteborder-1text-3
tintgray-10border-1text-3
subtlewhitewhitetext-3

error

typebackgroundbordercolor
filledsupport-error-3support-error-3white
outlinewhitesupport-error-2support-error-4
tintsupport-error-1support-error-2support-error-4
subtlewhitewhitesupport-error-4

warning / success / primary / informative

동일한 패턴으로 각 시맨틱 토큰(support-warning-*, support-success-*, support-info-*, gray-*)이 적용됩니다.

마이그레이션 가이드

신규 StatusBadge 컴포넌트는 $css prop과 반응형 size를 지원합니다.

Before / After

// Before — CoreStatusBadge
<CoreStatusBadge
  text="완료"
  status="success"
  type="tint"
  size="md"
  leadingElement={{ dot: true }}
/>
// After — StatusBadge
<StatusBadge
  text="완료"
  status="success"
  type="tint"
  size="md"
  leadingElement={{ dot: true }}
/>

변경 사항

CoreStatusBadgeStatusBadge
status, type, size동일
leadingElement / trailingElement동일
size — 정적 stringsize — 반응형 객체 지원
import { CoreStatusBadge }import { StatusBadge }