# Chip URL: /lynx/components/chip Source: https://github.com/daangn/seed-design/blob/dev/docs/content/lynx/components/chip.mdx 사용자가 선택하거나 실행할 수 있는 짧은 값을 표시하는 컴포넌트입니다. 사용 가능 버전: @seed-design/lynx-react@0.5.0, @seed-design/lynx-css@0.9.0 ## Preview ```tsx import "./styles"; import { root } from "@lynx-js/react"; import { Chip, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( Button Chip Toggle Chip Radio 1 Radio 2 ); } root.render(); ``` ## Installation - npm: npm install @seed-design/lynx-react @seed-design/lynx-css - pnpm: pnpm add @seed-design/lynx-react @seed-design/lynx-css - yarn: yarn add @seed-design/lynx-react @seed-design/lynx-css - bun: bun add @seed-design/lynx-react @seed-design/lynx-css Lynx `Chip`은 별도 `ui:chip` snippet 없이 `@seed-design/lynx-react` 패키지에서 직접 제공합니다. ## Props ### `Chip.Button` ### `Chip.Toggle` ### `Chip.RadioRoot` ### `Chip.RadioItem` ### Slots ## Examples ### Button 일반 액션은 `Chip.Button`을 사용하고 `bindtap`으로 탭 이벤트를 처리합니다. ```tsx import "./styles"; import { root } from "@lynx-js/react"; import { Chip, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( console.log("필터 열기")}> 필터 열기 ); } root.render(); ``` ### Toggle 독립적인 선택 상태는 `Chip.Toggle`을 사용합니다. `checked`와 `onCheckedChange`를 함께 전달하면 controlled 상태로 사용할 수 있습니다. ```tsx import "./styles"; import { root } from "@lynx-js/react"; import { Chip, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( console.log("거래 가능", checked)} > 거래 가능 ); } root.render(); ``` ### Radio Group 한 항목만 선택해야 하면 `Chip.RadioRoot`와 `Chip.RadioItem`을 조합합니다. ```tsx import "./styles"; import { root } from "@lynx-js/react"; import { Chip, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( console.log("정렬", value)}> 최신순 가까운 순 ); } root.render(); ``` ### Sizes and Variants React 버전과 동일하게 `size="small" | "medium" | "large"`와 `variant="solid" | "outlineStrong" | "outlineWeak"`를 지원합니다. ```tsx import "./styles"; import { root } from "@lynx-js/react"; import { Chip, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( Small Medium Large Solid Outline Strong Outline Weak ); } root.render(); ``` ### Affixes and Icon Only `Chip.PrefixIcon`, `Chip.PrefixAvatar`, `Chip.SuffixIcon` 슬롯으로 앞뒤 콘텐츠를 배치할 수 있습니다. Lynx 아이콘은 `@seed-design/lynx-react`의 `Icon`, `PrefixIcon`, `SuffixIcon`과 `@karrotmarket/lynx-monochrome-icon` 요소를 사용합니다. `layout="iconOnly"`에서는 `Icon` 자식과 `accessibility-label`을 함께 전달해야 합니다. ```tsx import "./styles"; import IconChevronRightFill from "@karrotmarket/lynx-monochrome-icon/IconChevronRightFill"; import IconPlusFill from "@karrotmarket/lynx-monochrome-icon/IconPlusFill"; import { root } from "@lynx-js/react"; import { Chip, Icon, useSeedClassName } from "@seed-design/lynx-react"; function Root() { const seedClassName = useSeedClassName({ colorMode: "system" }); return ( } /> 추가 A 프로필 다음 } /> } /> ); } root.render(); ``` ## 웹 버전과의 차이 Lynx `Chip`은 React `Chip`과 같은 Button, Toggle, Radio 구성과 size/variant 이름을 사용하지만 다음 차이가 있습니다. - **렌더링 요소**: HTML `