Color Swatch Filter

Color

About this component

Color Swatch Filter

Multi-select color circles for color filtering. Each option paints its own CSS color and stays accessible via screen-reader labels.

Usage

The import and the props worth knowing about, in one place.

import { FilterSwatch } from "@/components/beste/component/filter-swatch";

<FilterSwatch
  label="Color"
  defaultValue={["black"]}
  onChange={(value) => console.log("selected:", value)}
  options={[
    { label: "Black", value: "black", swatch: "#18181b" },
    { label: "Blue", value: "blue", swatch: "#2563eb" },
  ]}
/>

Keyboard and gestures

Every one of these is in the component already. They are listed because a props table cannot mention a gesture, so nothing else on this page can tell you they exist.

TabMove between the boxes — each is its own control, not one list with an inner cursor.
SpaceTick or untick the focused one.

Props

Read from the component's own type, so this cannot drift from what it accepts.

PropTypeDefaultDescription
labelstring—Optional group heading rendered above the swatches
optionsFilterSwatchOption[]—
valuestring[]—Controlled selection; omit to let the component manage its own state
defaultValuestring[]—Initial selection when uncontrolled
onChange(value: string[]) => void—
classNamestring—

More Filter components

View all Filter

Size

Category

Gender