pnpm dlx @glinui/cli@latest add chipInstallation
pnpm dlx @glinui/cli@latest add chipPrefer the package?
Usage
Variants
Every vocabulary variant on the default tone. Omit variant to follow the ambient design style.
import { Chip } from "@glinui/ui"
export function ChipVariantsDemo() { return ( <div className="flex flex-wrap items-center gap-3"> <Chip variant="glinr">glinr</Chip> <Chip variant="solid">solid</Chip> <Chip variant="plain">plain</Chip> <Chip variant="soft">soft</Chip> <Chip variant="outline">outline</Chip> <Chip variant="ghost">ghost</Chip> <Chip variant="gradient">gradient</Chip> </div> )}Tones and sizes
Tag chips in every tone, and three sizes.
import { Chip } from "@glinui/ui"
export function Demo() { return ( <div className="flex w-full max-w-xl flex-col gap-4"> <div className="flex flex-wrap items-center gap-2"> <Chip variant="soft" tone="accent">design-system</Chip> <Chip variant="soft" tone="info">react</Chip> <Chip variant="soft" tone="success">accessibility</Chip> <Chip variant="soft" tone="warning">needs-review</Chip> <Chip variant="soft" tone="danger">breaking</Chip> </div> <div className="flex flex-wrap items-center gap-2"> <Chip size="sm">Small</Chip> <Chip size="md">Medium</Chip> <Chip size="lg">Large</Chip> </div> </div> )}Variants
The `variant` prop controls the surface treatment, background fill, glass blur, border-only, or transparent ghost.
import { Chip } from "@glinui/ui"
export function ChipVariantDemo() {
return (
<div className="flex flex-wrap gap-2">
<Chip variant="default">Default</Chip>
<Chip variant="glass">Glass</Chip>
<Chip variant="outline">Outline</Chip>
<Chip variant="ghost">Ghost</Chip>
</div>
)
}Sizes
import { Chip } from "@glinui/ui"
export function ChipSizeDemo() {
return (
<div className="flex flex-wrap items-center gap-2">
<Chip size="sm">Small</Chip>
<Chip size="md">Medium</Chip>
<Chip size="lg">Large</Chip>
</div>
)
}With Icons
Wrap an icon and text inside `Chip` for labeled status tags. The `rounded-full` shape accommodates inline flex children naturally.
import { Chip } from "@glinui/ui"
import { CheckCircle, Warning, XCircle } from "@phosphor-icons/react"
export function ChipIconDemo() {
return (
<div className="flex flex-wrap gap-2">
<Chip tone="success">
<CheckCircle className="h-3 w-3" />
Approved
</Chip>
<Chip tone="warning">
<Warning className="h-3 w-3" />
Pending
</Chip>
<Chip tone="danger">
<XCircle className="h-3 w-3" />
Rejected
</Chip>
</div>
)
}Combining Variant and Tone
Mix any surface `variant` with any semantic `tone` for full compositional flexibility.
import { Chip } from "@glinui/ui"
export function ChipComboDemo() {
return (
<div className="flex flex-wrap gap-2">
<Chip variant="glass" tone="info">Glass Info</Chip>
<Chip variant="outline" tone="success">Outline Success</Chip>
<Chip variant="ghost" tone="danger">Ghost Danger</Chip>
</div>
)
}Accessibility
- Non-interactive status label element by default.
- Use `aria-label` when chip meaning is not explicit from text.
- Use descriptive text that conveys meaning without relying on color alone.
- Pair `tone` with a text label or icon label so screen readers communicate intent.
- If the chip is interactive, wrap it in a `<button>` or use an anchor, Chip itself is a display element.
- Avoid using Chip as the sole status indicator; supplement with accessible text where needed.
ARIA Attributes
- `role="status"` optional for live status chips
Reduced Motion
Chip visual transitions are color-only and disabled with reduced motion.
Chip is a static display primitive with no animation. No reduced-motion considerations apply.
Affected properties
background-colorborder-colorcolorAPI Reference
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
variant | SurfaceVariant | "default" | "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "raised" | "frosted" | No | ambient (glinr) | Surface variant. Omit to follow the ambient design style (glinr by default, plain for minimal, glass for glass). |
tone | SurfaceTone | No | neutral | Semantic text color. |
size | "sm" | "md" | "lg" | No | md | Height and horizontal padding scale. |
Source
Import directly from the package or browse the source on GitHub. Click any file to view it.
Generated API Snapshot
Beta
Generated API Snapshot
BetaAuto-extracted from TypeScript source in packages/ui/src/components/chip.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.
Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata
Primary Props Type
ChipProps
ChipProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | - | - |
tone | SurfaceTone | No | - | Colour tone. Tinted faces are built with color-mix on the surface tokens. |
variant | SurfaceVariant | "default" | "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "raised" | "frosted" | No | - | Visual variant. Omit for the ambient design style (glinr: raised pill with a hairline ring). Vocabulary: glinr, solid, plain, soft, outline, ghost, gradient, glass. Legacy `default` follows the ambient style. |