Pluto Design System
Components

Chip

액션 칩. xsmall/small/medium/large × solid/outlined, active 토글 + leading/trailing slot.

짧은 라벨/필터/선택지를 표현하는 작은 액션 토큰. 이전 이름은 Tag.

사용

import { Chip } from "@fluxloop-ai/pds-ui/components/chip";

<Chip size="small">필터</Chip>
<Chip size="small" interactive active onClick={() => {}}>선택됨</Chip>
<Chip size="small" variant="outlined" leadingContent={<Hash />}>tag</Chip>

Size

radius/padding/typography 가 사이즈별로 비례.

sizeradiuspadding (y/x)gaptexticon
xsmall6px4 / 72pxcaption2 (10px)12px
small8px6 / 82pxlabel2 (12px)14px
medium8px7 / 113pxlabel1 (13px)14px
large10px9 / 123pxlabel1 (13px)16px
size xsmallsize smallsize mediumsize large

Variant

solidoutlined 두 종류. active 상태에서 solid 가 outlined 보다 높은 위계를 가짐.

  • solid: bg --pds-fill-alternative → active 시 --pds-inverse-background / --pds-inverse-label
  • outlined: 1px --pds-line-normal-neutral → active 시 보더만 --pds-primary-normal 43% 로 강조 + 텍스트 --pds-primary-normal (배경은 투명 유지)
solidsolid · activeoutlinedoutlined · activedisabled

Toggle (active + interactive)

칩 본체를 클릭 가능하게 하려면 interactive 를 켜서 <button> 으로 렌더. active 를 함께 주면 aria-presseddata-active 가 연결됨.

Removable (trailing slot)

칩을 비인터랙티브(<span>, 기본값)로 두고 trailingContent 자리에 닫기 버튼을 직접 배치. 본체가 button 이 아니므로 trailing 의 <button> 이 안전하게 중첩 없이 들어감.

outlinedReactTailwindRadix
solidReactTailwindRadix

Props

Prop타입기본설명
sizexsmall | small | medium | largemedium
variantsolid | outlinedsolid
interactivebooleanfalsetrue 면 <button> 으로 렌더. 기본 <span> 이라 trailing 에 별도 버튼을 둘 수 있음
activeboolean-시각 상태. interactive 일 때 aria-pressed 도 연결
leadingContentReactNode-텍스트 앞 (보통 아이콘/아바타)
trailingContentReactNode-텍스트 뒤 (제거 버튼/카운트 등)
disabledboolean-interactive 일 때 disabled, 아니면 aria-disabled 로 노출
asChildboolean-루트를 <a> 등으로 교체

Registry 설치

npx shadcn add https://pds.pluto.com/r/chip