# 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}
);
}
```