apps/docs/content/docs/en/react/components/(data-display)/chip.mdx
import { Chip } from '@heroui/react';
Import the Chip component and access all parts using dot notation.
Plain-text children are automatically wrapped in
<Chip.Label>.
<Chip>
Label text
</Chip>
<ComponentPreview name="chip-basic" />
<ComponentPreview name="chip-variants" />
<ComponentPreview name="chip-with-icon" />
<ComponentPreview name="chip-statuses" />
<RelatedComponents component="chip" />You can style the root container and individual slots:
import {Chip} from '@heroui/react';
function CustomChip() {
return (
<Chip className="rounded-full px-4 py-2 font-bold">
<Chip.Label className="text-lg uppercase">
Custom Styled
</Chip.Label>
</Chip>
);
}
To customize the Chip component classes, you can use the @layer components directive.
@layer components {
.chip {
@apply rounded-full text-xs;
}
.chip__label {
@apply font-medium;
}
.chip--accent {
@apply border-accent/20;
}
.chip--accent .chip__label {
@apply text-accent;
}
}
HeroUI follows the BEM methodology to ensure component variants and states are reusable and easy to customize.
The Chip component uses these CSS classes (View source styles):
.chip - Base chip container styles.chip__label - Label text slot styles.chip--accent - Accent color variant.chip--danger - Danger color variant.chip--default - Default color variant.chip--success - Success color variant.chip--warning - Warning color variant.chip--primary - Primary variant with filled background.chip--secondary - Secondary variant with border.chip--tertiary - Tertiary variant with transparent background.chip--soft - Soft variant with lighter background.chip--sm - Small size.chip--md - Medium size (default).chip--lg - Large sizeChips support combining variant and color classes (e.g., .chip--secondary.chip--accent). The following combinations have default styles defined:
Primary Variants:
.chip--primary.chip--accent - Primary accent combination with filled background.chip--primary.chip--success - Primary success combination with filled background.chip--primary.chip--warning - Primary warning combination with filled background.chip--primary.chip--danger - Primary danger combination with filled backgroundSoft Variants:
.chip--accent.chip--soft - Soft accent combination with lighter background.chip--success.chip--soft - Soft success combination with lighter background.chip--warning.chip--soft - Soft warning combination with lighter background.chip--danger.chip--soft - Soft danger combination with lighter backgroundNote: You can apply custom styles to any variant-color combination (e.g., .chip--secondary.chip--accent, .chip--tertiary.chip--success) using the @layer components directive in your CSS.
| Prop | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | - | Content to display inside the chip |
className | string | - | Additional CSS classes for the root element |
color | "default" | "accent" | "success" | "warning" | "danger" | "default" | Color variant of the chip |
variant | "primary" | "secondary" | "tertiary" | "soft" | "secondary" | Visual style variant |
size | "sm" | "md" | "lg" | "md" | Size of the chip |
| Prop | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | - | Label text content |
className | string | - | Additional CSS classes for the label slot |