Knit UI
GitHub

Playground

Loading playground…

false
false
false
Playground
<Chip
  variant="outline"
  size="sm"
  disabled={false}
>
  Chip
</Chip>

Examples

Variants

Every visual variant side by side, unchecked and checked.

Loading example…

VariantsSourceStorybook

Sizes

Full seven-step size scale.

Loading example…

SizesSourceStorybook

Shadows

Elevation via the shared shadow ladder — inherited from Box, so every component accepts it; no shadow unless set.

Loading example…

ShadowsSourceStorybook

Themes

Accent themes use Tamagui theme, not a public color prop.

Loading example…

ThemesSourceStorybook

Disabled

Disabled state — reduced opacity and no interaction.

Loading example…

DisabledSourceStorybook

Default Checked

Checked by default (uncontrolled) — shows the built-in check glyph.

Loading example…

Default CheckedSourceStorybook

Custom Icon

Custom icon replaces the default check glyph when the chip is toggled on.

Loading example…

Custom IconSourceStorybook

Controlled

Controlled chip — parent owns the checked state via React.useState.

Loading example…

ControlledSourceStorybook

Group Single Select

Chip.Group (single-select) — clicking a chip deselects the previous one.

Loading example…

Group Single SelectSourceStorybook

Group Multi Select

Chip.Group (multiple) — chips act as checkboxes; any number can be selected.

Loading example…

Group Multi SelectSourceStorybook

Matrix

Full variant × size matrix for visual regression.

Loading example…

MatrixSourceStorybook

Styles

Per-slot styles targets individual parts — here the root frame and the label.

Loading example…

StylesSourceStorybook

Props

PropTypeDefaultDescription
checkedboolean | undefinedControlled checked state.
childrenReactNodeChipChip label.
defaultCheckedboolean | undefinedUncontrolled initial checked state.
disabled systemboolean | undefinedfalse
iconReactNodeReplaces the default check glyph shown when checked. `null`/`false` hides it.
onChange((checked: boolean) => void) | undefinedCalled when the checked state changes.
radius systemstring | number | undefined
shadow system"xs" | "sm" | "md" | "lg" | "xl" | "xxs" | "xxl" | undefined
size systemnumber | "xs" | "sm" | "md" | "lg" | "xl" | "xxs" | "xxl" | undefined
xxs · xs · sm · md · lg · xl · xxl
smControls height, horizontal padding, gap and font size.
styles systemSlotStyles<ChipSlots> | undefinedUniform per-slot style passthrough — sugar over the composable parts. Slots: `root` (the chip frame) / `label` (the chip's text) / `icon` (the leading check glyph). Shares the kit-wide vocabulary so styling "the label of a control" works the same as elsewhere.
theme systemThemeName | null | undefined
unset · blue · red · green · yellow · pink · gray
Accent theme applied to the checked state.
valuestring | undefinedIdentifies this chip inside a `Chip.Group`.
variant systemChipVariant | undefined
outline · filled · light
"outline"Visual style — how the theme color ramp is applied.

Style slots

Every part of Chip can be styled through the styles prop. Explicit props on the component always win over slot styles.

SlotUsage
iconstyles={{ icon: { … } }}
labelstyles={{ label: { … } }}
rootstyles={{ root: { … } }}
Accessibility & DOM props (2)
PropType
keyKey | null | undefined
refRef<TamaguiElement> | undefined

Plus 497 inherited style props from Box — the full Tamagui/React Native style surface, including token shorthands like p, mx, bg and c. See Tokens for the scales they accept, or the full list.