Skip to content
RefineUI

Tag

Categorization tag or filter chip.

DefaultOutlineFilledRemovable

Overview

Machine-readable contract from Component Spec.

component: tagexport: Tagversion: 1recipe: chiptokens.visual: chipattributes: data-refineui=chip

Anatomy

Partdata-refineui
rootchip
removechip-remove

Variants

AxisValues
variantdefault, outline, filled
sizesm, md, lg

States

ScopeCategoryValues
componentpseudofocus-visible
componentenvironmentforced-colors, dir, prefers-contrast

Accessibility

SlotElementNative
chip-removebuttontrue

Keyboard

KeyActionNative
Enteractivatetrue
Spaceactivatetrue

Focus

SectionPropertyValue
visualrequiredtrue
visualselector:focus-visible

Layout

PropertyValue
directionlogical
rtltrue

Variant

Select a recipe variant — preview and Recipe → Tokens update together.

defaultOutlineRemovable

Recipe → Tokens

Slot bindings for variant="default" — declared in chip.recipe.ts.

SlotVariantPropertyTraceSemanticLight → foundationDark → foundationRecipe class
rootdefaultbackgroundchip.default.backgroundbackgroundSurfaceneutralWhiteneutral800bg-refineui-alias-background-surface
rootdefaultforegroundchip.default.foregroundforegroundBrandprimaryBlackprimaryGraytext-refineui-alias-foreground-brand

Component token trace

All paths in token-trace-v2.json prefixed with chip.

TraceSemanticLight foundationDark foundationLightDark
chip.default.activeBackgroundbackgroundPrimaryActiveneutral150neutral800#F0F0F0#2A2A2A
chip.default.backgroundbackgroundSurfaceneutralWhiteneutral800#FFFFFF#2A2A2A
chip.default.disabledBackgroundbackgroundSurfaceDisabledneutral150neutral850#F0F0F0#222222
chip.default.disabledForegroundforegroundDisabledneutral400neutral600#CECECE#6C6C6C
chip.default.foregroundforegroundBrandprimaryBlackprimaryGray#212121#D4D4D4
chip.default.hoverBackgroundbackgroundPrimaryHoverneutral100neutral850#F5F5F5#222222
chip.filled.activeBackgroundbackgroundBrandActiveneutralBlackprimaryLightGray#000000#E6E6E6
chip.filled.backgroundbackgroundBrandprimaryBlackprimaryGray#212121#D4D4D4
chip.filled.disabledBackgroundbackgroundSurfaceDisabledneutral150neutral850#F0F0F0#222222
chip.filled.disabledForegroundforegroundDisabledneutral400neutral600#CECECE#6C6C6C
chip.filled.foregroundforegroundInversedneutralWhiteprimaryBlack#FFFFFF#212121
chip.filled.hoverBackgroundbackgroundBrandHoverprimaryDarkGrayprimaryLightGray#4d4d4d#E6E6E6
chip.outline.activeBorderborderFocusneutral750neutral350#333333#D8D8D8
chip.outline.borderborderDefaultneutral300neutral650#DBDBDB#5B5B5B
chip.outline.disabledBorderborderDisabledneutral250neutral700#E0E0E0#404040
chip.outline.disabledForegroundforegroundDisabledneutral400neutral600#CECECE#6C6C6C
chip.outline.foregroundforegroundBrandprimaryBlackprimaryGray#212121#D4D4D4
chip.outline.hoverBorderborderHoverneutral500neutral500#A4A4A4#A4A4A4
npm install @refineui/react @refineui/tokens
import { Chip } from "@refineui/react";
<Chip>Tag Label</Chip>
<Chip variant="filled">Filled</Chip>
<Chip variant="outline" size="sm">Small Tag</Chip>
<Chip onRemove={() => handleRemove()}>
Removable
</Chip>
<Chip avatar={<Avatar src="/user.jpg" />}>
With Avatar
</Chip>
PropDefaultTypeDescription
variant"default""default" | "outline" | "filled"Visual variant style.
size"md""sm" | "md" | "lg"Chip size tier.
avatarReactNodeOptional leading avatar element.
onRemove() => voidWhen provided, shows remove button.
disabledfalsebooleanDisables interaction.