# Tag Group URL: /react/components/tag-group Source: https://github.com/daangn/seed-design/blob/dev/docs/content/react/components/tag-group.mdx 아이콘과 텍스트 태그를 수평으로 나열해 여러 속성·상태·메타데이터를 한눈에 보여주는 정보 요약 컴포넌트입니다. 사용 가능 버전: @seed-design/react@1.0.6, @seed-design/css@1.0.6 ## Preview ```tsx import { IconLocationpinFill } from "@karrotmarket/react-monochrome-icon"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupPreview() { return ( } label="500m" /> ); } ``` ## Installation - npm: npx @seed-design/cli@latest add ui:tag-group - pnpm: pnpm dlx @seed-design/cli@latest add ui:tag-group - yarn: yarn dlx @seed-design/cli@latest add ui:tag-group - bun: bun x @seed-design/cli@latest add ui:tag-group ## Props ### `TagGroupRoot` ### `TagGroupItem` ## Examples ### Sizes ```tsx import { VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupSizes() { return ( ); } ``` ### Weights ```tsx import { VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupWeights() { return ( ); } ``` ### Tones ```tsx import { VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupTones() { return ( ); } ``` ### With Icons ```tsx import { IconLocationpinFill, IconMegaphoneFill } from "@karrotmarket/react-monochrome-icon"; import { VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupWithIcons() { return ( } /> } label="서초4동" /> ); } ``` ### Customizing `TagGroupItem` `TagGroupRoot`에 지정한 `size`, `tone`, `weight`은 `TagGroupItem`에서 덮어씌울 수 있습니다. 필요한 경우 [컴파운드 컴포넌트](/react/components/concepts/snippet#compound-components)를 직접 사용하여 `TagGroupItem` 내부 요소를 커스터마이징할 수 있습니다. ```tsx import { IconCheckmarkCircleFill, IconHeartFill, IconHorizline2VerticalChatbubbleRectangularRightFill, IconStarFill, } from "@karrotmarket/react-monochrome-icon"; import { Icon, VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; import { TagGroup as SeedTagGroup } from "@seed-design/react"; export default function TagGroupCustomizingItem() { return ( {/* You can use the compound components to customize the items */} } color="fg.brand" /> 4.5 } label="인증됨" /> } label="10" /> } label="3" /> ); } ``` ### Customizing Separators `TagGroupRoot`에 `separator`를 지정하여 구분 기호를 변경할 수 있습니다. 스크린 리더는 각 태그 항목 사이에 지정된 구분 기호를 읽지 않습니다. 의미가 있는(semantic) 정보를 Separator로 사용하는 것을 피하세요. ```tsx import { VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; export default function TagGroupCustomizingSeparators() { return ( ); } ``` ### Wrapping Behavior 기본적으로 `TagGroupRoot`는 컨테이너 너비를 초과하면 줄바꿈이 발생합니다. `TagGroupRoot`에 `truncate` prop을 지정하면 `TagGroupRoot`가 한 줄로 유지되고, 컨테이너 너비를 초과하는 경우 기본적으로 모든 `TagGroupItem`의 레이블에서 말줄임이 발생할 수 있습니다. `truncate` prop을 사용하면서 특정 아이템이 축소되지 않도록 하려면 해당 `TagGroupItem`에 `flexShrink={0}`을 지정하세요. `TagGroupItem`에 `flexShrink={number}`를 지정하여 컨테이너 너비를 초과할 때 축소되는 우선순위를 조정할 수 있습니다. ```tsx import { IconBellFill, IconLocationpinFill } from "@karrotmarket/react-monochrome-icon"; import { Flex, Text, VStack } from "@seed-design/react"; import { TagGroupRoot, TagGroupItem } from "seed-design/ui/tag-group"; import type { PropsWithChildren, ReactNode } from "react"; export default function TagGroupWrappingBehavior() { return ( } label="부산광역시 해운대구" /> } label="123 456 789 012 345" /> } label="부산광역시 해운대구" /> } label="123 456 789 012 345" /> } label="부산광역시 해운대구" /> } label="123 456 789 012 345" /> } flexShrink={1} label="부산광역시 해운대구" /> } label="123 456 789 012 345" /> ); } function Wrapper({ title, children }: PropsWithChildren<{ title: ReactNode }>) { return ( {title} {children} ); } ```