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.