preview

Badge

짧은 상태나 범주 메타데이터를 비대화식으로 표시하는 compact label입니다.

예제

Badge 조합

두 크기, 두 변형, 네 tone의 16개 조합을 함께 확인합니다.

선택한 상태
상태small · soft · neutral
상태small · soft · primary
상태small · soft · success
상태small · soft · danger
상태small · solid · neutral
상태small · solid · primary
상태small · solid · success
상태small · solid · danger
상태medium · soft · neutral
상태medium · soft · primary
상태medium · soft · success
상태medium · soft · danger
상태medium · solid · neutral
상태medium · solid · primary
상태medium · solid · success
상태medium · solid · danger

승인됨 확인 필요

사용해야 할 때

주문의 진행 상태, 짧은 범주, 새 항목 표시처럼 본문을 보조하는 compact metadata에 사용합니다.

사용하지 말아야 할 때

버튼, 토글, 링크처럼 interaction이 필요한 요소로 사용하지 않습니다. 긴 문장이나 tone만으로 이해해야 하는 상태에도 사용하지 않습니다.

구조

native span 안에 한 줄 label을 둡니다. Badge는 icon slot, close action, notification live region을 포함하지 않습니다.

크기와 변형

small은 20px, medium은 24px 높이입니다. softsolid, neutral, primary, success, danger를 조합해 총 16개 시각 조합을 만듭니다.

상태와 동작

Badge는 비대화식이므로 hover, focus, pressed, disabled 상태가 없습니다. 정보가 바뀌었다는 공지는 Badge가 아니라 surrounding live region이 책임집니다.

반응형 동작

모바일과 데스크톱에서 동일한 크기를 유지합니다. label은 한 줄이어야 하며 좁은 화면에서는 surrounding layout이 Badge를 다음 줄로 배치합니다.

접근성

visible children이 읽히며 기본 role을 만들지 않습니다. success/danger 색상만으로 의미를 전달하지 말고 승인됨, 실패처럼 의미가 드러나는 label을 사용합니다.

React 예제

import { Badge } from '@maxxuxx/react';
import '@maxxuxx/react/styles.css';

export function OrderStatus() {
  return <Badge tone="success" variant="soft">결제 완료</Badge>;
}

API

Prop Type Default 설명
children ReactNode required 짧은 visible label
size 'small' | 'medium' 'medium' 20px 또는 24px 높이
variant 'soft' | 'solid' 'soft' 시각 강도
tone 'neutral' | 'primary' | 'success' | 'danger' 'neutral' 의미 tone
native span props HTMLAttributes<HTMLSpanElement> 없음 span/ARIA attributes

사용 토큰

Figma

Badge component setSize 2 × Variant 2 × Tone 4 = 16 variants와 Label TEXT property를 제공합니다. 크기, 간격, radius, typography, 배경, label 색상은 대응하는 design token variable에 연결되어 있습니다.

지원 상태

React Svelte React Native
preview planned planned