# Badge
URL: /lynx/components/badge
Source: https://github.com/daangn/seed-design/blob/dev/docs/content/lynx/components/badge.mdx
상태나 속성을 짧은 텍스트로 표시하는 정보성 컴포넌트입니다.
Lynx Engine 최소 버전: 3.6
사용 가능 버전: @seed-design/lynx-react@0.2.0, @seed-design/lynx-css@0.2.0
## Preview
```tsx
import { root } from "@lynx-js/react";
import { useSeedClassName } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
);
}
root.render();
```
## Installation
- npm: npx @seed-design/cli@latest add ui:badge
- pnpm: pnpm dlx @seed-design/cli@latest add ui:badge
- yarn: yarn dlx @seed-design/cli@latest add ui:badge
- bun: bun x @seed-design/cli@latest add ui:badge
## Props
## Usage
```tsx
import { Badge } from "@/components/ui/badge";
export function App() {
return 라벨;
}
```
## Prefix and Action
`prefix`에 Label 앞에 표시할 아이콘을 전달하세요.
```tsx
import IconPlusFill from "@karrotmarket/lynx-monochrome-icon/IconPlusFill";
import { root } from "@lynx-js/react";
import { useSeedClassName } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
}>추가
);
}
root.render();
```
정보 아이콘에는 안내의 양과 사용자가 해야 할 일에 맞는 UI를 연결하세요. 간단한 동작은 `action`에 `accessibility-label`과 `bindtap`을 전달해 연결할 수 있습니다.
```tsx
import { root } from "@lynx-js/react";
import { useSeedClassName } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
console.log("도움말 열기"),
}}
>
판매 완료
);
}
root.render();
```
설명이 길거나 사용자의 확인이 필요하면 Bottom Sheet를 연결할 수 있습니다. 다음 예시는 부동산 게시글의 `집주인` Badge에서 집주인 인증에 관한 설명을 제공합니다.
```tsx
import "./styles";
import { root, useState } from "@lynx-js/react";
import { ActionButton, useSeedClassName } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import {
BottomSheetBody,
BottomSheetContent,
BottomSheetFooter,
BottomSheetRoot,
} from "@/components/ui/bottom-sheet";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
const [open, setOpen] = useState(false);
function handleOpen() {
"background only";
setOpen(true);
}
function handleClose() {
"background only";
setOpen(false);
}
return (
집주인
매물을 올린 사람이 집주인임을 확인할 수 있어, 중개소에서 등록한 매물과 구분할 수
있어요.
확인
);
}
root.render();
```
## Examples
### Truncating Behavior
긴 라벨을 한 줄로 줄여 표시하려면 `style.maxWidth`로 최대 너비를 지정하세요. 지정한 너비를 넘는 내용은 말줄임표로 표시됩니다.
```tsx
import { root } from "@lynx-js/react";
import { VStack, useSeedClassName } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
In velit velit deserunt amet veniam incididunt consectetur incididunt Lorem.
In velit velit deserunt amet veniam incididunt consectetur incididunt Lorem.
);
}
root.render();
```
### Tones and Variants
#### Neutral
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
#### Brand
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
#### Informative
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
#### Positive
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
#### Warning
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
#### Critical
```tsx
import { root } from "@lynx-js/react";
import { HStack, useSeedClassName, VStack } from "@seed-design/lynx-react";
import { Badge } from "@/components/ui/badge";
import "./styles";
function Root() {
const seedClassName = useSeedClassName({ colorMode: "system" });
return (
라벨
라벨
라벨
라벨
라벨
라벨
);
}
root.render();
```
## 웹 버전과의 차이
Lynx Badge는 React Badge와 같은 `size`, `variant`, `tone` 표면을 사용하지만, 네이티브 `` root와 `` label을 렌더링합니다. HTML span attribute나 `asChild`는 제공하지 않습니다.