Chips & filters
Chip is a small rounded label for tags and categorization (removable when you pass
onRemove). FilterChip is the toggleable pill used for list/inbox filters.
BeveragesWest DCRushPriority
Top row toggles FilterChips (with counts); bottom row is removable Chips plus one accent chip.
import Chip from '@repo/ui/Chip';
<Chip>Beverages</Chip><Chip intent="accent" leadingDot>Priority</Chip><Chip onRemove={() => removeTag(id)} removeLabel="Remove Beverages">Beverages</Chip>| Prop | Type | Notes |
|---|---|---|
intent | neutral | accent | accent for one brand moment only |
onRemove | () => void | Renders an accessible Γ button (this is the βtagβ use) |
removeLabel | string | aria-label for the Γ (default βRemoveβ) |
leadingDot | boolean | Small status dot |
Thereβs no separate
Tagcomponent β a removableChipis the tag.
FilterChip
Section titled βFilterChipβimport FilterChip from '@repo/ui/FilterChip';
<FilterChip selected={active} count={12} onClick={toggle}>Unread</FilterChip>| Prop | Type | Notes |
|---|---|---|
selected | boolean | Sets aria-pressed; filled (ink) when on |
count | number | Optional trailing count |
onClick | () => void | Toggle handler |
disabled | boolean |
Do / donβt
Section titled βDo / donβtβ- Do use
FilterChipfor multi-select list filters; selected reads as filled. - Do give removable chips a descriptive
removeLabel. - Donβt use
accentchips for more than one thing per view β orange stays ~2%.
Accessibility
Section titled βAccessibilityβFilterChipis a real button witharia-pressed;Chipβs Γ is a labelled button. Keyboard-operable, focus-visible ring on--om-orange-press. Verified withjest-axe.