Chip
atomStatus-first label primitive. Supports dismissible, clickable, and selectable modes with swatch, dot, leftIcon, borderless, ghost, and pulse options. Dot-only mode (omit children with dot) renders a compact circular indicator. Available in three sizes and six semantic variants. Heights scale with spacing tokens.
Variants
Six semantic colour variants.
Dismissible & clickable
Removable chips with onDismiss and selectable chips with onClick.
Swatch, dot, leftIcon & borderless
Decorative options for color-coded categories, status indicators, and flags.
Ghost, pulse & dot-only
Ghost mode for inline table statuses, pulse for live indicators, and dot-only mode for compact signals.
Usage
Installation
API Reference
Chip props — * required
| Prop | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | — | Chip label. Optional — omit with dot to render a dot-only indicator. |
variant | "neutral" | "accent" | "success" | "warning" | "danger" | "info" | "neutral" | Semantic colour variant. The accent variant uses a solid accent background with hue-tinted accentFg foreground color. |
size | "sm" | "md" | "lg" | "md" | Chip size. Heights scale with spacing tokens. |
onDismiss | () => void | — | If provided, renders a dismiss (×) button for removable chips. |
onClick | () => void | — | Makes the chip clickable — renders as a button element. |
leftIcon | React.ReactNode | — | Icon or element rendered before the label (emoji, flags, avatars). |
swatch | string | — | Hex color rendered as a small dot before the label for color-coded categories. |
dot | boolean | false | Status dot rendered before the label using the variant color. When used without children, renders a compact circular dot-only indicator. |
pulse | boolean | false | Pulsing ring animation on the status dot for live/in-progress states (deploying, syncing, live incident). Only applies when dot is true. Uses injected @keyframes lucent-chip-pulse. |
ghost | boolean | false | Transparent background with text color only, no border. Subtle 8% tint on hover when interactive. Ideal for inline status indicators in tables and lists. |
borderless | boolean | false | Removes the border for a softer filled-only appearance. |
disabled | boolean | false | Prevents interaction. |