Back to all examples

Add a filter chip

ReactAngularWeb Components
const [activeFilters, setActiveFilters] = useState<string[]>([]);

  const addFilter = () => {
    const randomFilter = `Filter ${Math.floor(Math.random() * 100)}`;
    if (!activeFilters.includes(randomFilter)) {
      setActiveFilters((prevFilters) => [...prevFilters, randomFilter]);
    }
  };

  const removeFilter = (filter: string) => {
    setActiveFilters((prevFilters) => prevFilters.filter((f) => f !== filter));
  };
<div>
        {activeFilters.map((filter) => (
          <GoabFilterChip
            key={filter}
            content={filter}
            onClick={() => removeFilter(filter)}
            mr="s"
            mb="s"
            mt="s"
          />
        ))}
      </div>
      <GoabButton mt="l" onClick={addFilter}>Add Random Filter</GoabButton>

Allow users to apply filters using selectable chips, which visually represent active filters and can be removed to update results dynamically.

When to use

Use this pattern when:

  • Users need to apply multiple filters to a dataset
  • Filters should be visible and easily removable
  • You want to show active filter state clearly

Considerations

  • Each chip should clearly indicate what filter it represents
  • Provide visual feedback when adding/removing filters
  • Consider the order of chips (most recent, alphabetical, etc.)