Gesso
Components

Filter chip

Interactive filter dropdown. Selected and open states sit on the chip trigger.

FilterChip composes Dropdown menu behind a chip-shaped trigger. Presentational Chip has no hover or open state; use this when the chip opens a facet list.

The trigger shares Chip's soft / emphasis pair, not outline Button chrome. The ring stays border-primary-subtle. Hover and open wash bg-primary-subtle. Label ink is text-fg in every state. selected seats on bg-secondary-subtle. Radius is the catalog --radius-scale-md step, same as Chip, so ICS pills do not reshape it. Hover scale stays off.

Leading icon via iconBefore (same slot as Button / Chip). The caret is built-in Phosphor CaretDown.

Single select

Radio rows for a date range. The trigger label follows the current value.

Categories

Labeled groups, a separator, and a reset action. selected lights when the value is not the default.

Multi-select facets

Checkbox rows. selected lights when any facet is on.

Usage

import {
  FilterChip,
  FilterChipContent,
  FilterChipRadioGroup,
  FilterChipRadioItem,
  FilterChipTrigger,
} from '@/components/ui/filter-chip';

<FilterChip>
  <FilterChipTrigger>Last 30 days</FilterChipTrigger>
  <FilterChipContent>
    <FilterChipRadioGroup value={range} onValueChange={setRange}>
      <FilterChipRadioItem value="7d">Last 7 days</FilterChipRadioItem>
      <FilterChipRadioItem value="30d">Last 30 days</FilterChipRadioItem>
    </FilterChipRadioGroup>
  </FilterChipContent>
</FilterChip>

Install

shadcn add @gesso/filter-chip

On this page