# 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`는 제공하지 않습니다.