# Composition URL: /react/components/iconography/composition Source: https://github.com/daangn/seed-design/blob/dev/docs/content/react/components/(foundation)/iconography/composition.mdx 아이콘을 사용하는 방법을 설명합니다. ## 개요 [당근 아이콘 라이브러리](/foundations/iconography/library)는 디자인 시스템에 독립적(agnostic)으로 설계되었으며 SEED의 의견이 포함되어 있지 않습니다. 때로는 라이브러리에 없는 커스텀 아이콘을 사용하면서도 아이콘 합성 패턴을 활용해야 하는 경우가 있습니다. 이를 위해 `svg` 속성을 통해 아이콘을 받아 디자인 시스템에 연결하는 유틸리티 컴포넌트를 제공합니다: - `Icon`: 아이콘을 독립적으로 사용하거나 아이콘만 표시하는 컴포넌트에서 사용합니다. - `PrefixIcon`, `SuffixIcon`: 컴포넌트 내에 아이콘과 텍스트를 함께 배치할 때 사용합니다. ## Icon 컴포넌트 `Icon` 컴포넌트는 아이콘을 독립적으로 사용하거나 아이콘만 표시하는 컴포넌트에서 사용합니다. ```jsx import { Icon } from "@seed-design/react"; import { IconHeartFill } from "@karrotmarket/react-monochrome-icon"; // 독립형 아이콘 } /> // 아이콘만 표시하는 버튼 } /> ``` ## PrefixIcon과 SuffixIcon 컴포넌트 내에 아이콘과 텍스트를 함께 배치할 때는 `PrefixIcon`, `SuffixIcon` 컴포넌트를 children으로 배치합니다. ```jsx import { PrefixIcon, SuffixIcon } from "@seed-design/react"; import { ActionButton } from "seed-design/ui/action-button"; import { IconPlusFill, IconChevronRightFill } from "@karrotmarket/react-monochrome-icon"; // 앞에 아이콘 배치 } /> 라벨 // 뒤에 아이콘 배치 라벨 } /> // 아이콘 양쪽에 배치 } /> 라벨 } /> ``` 이 패턴은 다음과 같은 컴포넌트에서 일관되게 사용됩니다: - `ActionButton`: 버튼 내 아이콘 배치 - `Button`: 일반 버튼 내 아이콘 배치 - `ToggleButton`: 토글 버튼 내 아이콘 배치 - `ActionChip`: 액션 칩 내 아이콘 배치 - `ControlChip`: 컨트롤 칩 내 아이콘 배치