Components/Tag / Chip

Core component

Tag / Chip

Interactive filter chip with toggleable active state and full snap motion. Distinct from Badge (read-only). Supports a ×-remove button for dismissible chips.

InteractiveToggleable7 colorsRemovableSnap motion
components/core/Tag.jsx
Toggle state — click to try
Off → On — all colors
LimeVioletPinkYellowCoralTealDark
Removable chips
onRemove prop — click × to dismiss
DesignDevelopmentMarketingAnalytics
Sizes & shapes
sm / md · square / pill
Small
Medium
Pill
Sm pill
Disabled
Badge vs Tag
When to use each
Active
Active
Props
PropTypeDefaultDescription
activebooleanControlled active state. Omit to use uncontrolled.
defaultActivebooleanfalseInitial state for uncontrolled usage.
onChange(active: boolean) => voidCalled on toggle with the new active state.
onRemove() => voidWhen provided, renders a × button. Caller is responsible for removing the tag.
color"lime"|"violet"|"pink"|"yellow"|"coral"|"teal"|"dark""lime"Active fill color.
size"sm"|"md""md"Chip size.
pillbooleanfalseFully rounded pill shape.
disabledbooleanfalseMutes opacity, disables interaction.
Usage
import { Tag } from "components/core/Tag";

// Uncontrolled toggle
<Tag color="lime">All</Tag>

// Controlled
<Tag
  active={filter === "active"}
  onChange={() => setFilter("active")}
  color="violet"
>Active</Tag>

// Removable chip
<Tag
  active
  onRemove={() => removeTag(id)}
  color="pink"
>Design</Tag>