Playground
  • Introduction
  • Components

Filtering

The narrowing of a collection to items that match the actor’s criteria, balancing precision with the risk of hiding relevant results.

Building a filter

Placement

  • inline, popover, drawer…
  • pairing with table header

Navigation as filtering

…

LLM-powered attribute search

When simple filter fails, the attribute search query is passed to LLM to find a match in the available attributes.

If that fails, users can delegate filtering to a bot via a task. Bot can have access to data beyond the attributes and values visible to the user.

Flow 1

  1. Enter a query that does not have a match in the available attributes
  2. Create a task to handle it
  3. Show “thinking…” placeholder
  4. Replace it with a task result reference.

Flow 2

  1. Create a task outside filtering whose result can be used to filter the collection.
  2. Follow steps 3-4 from Flow 1.
LLM-assisted filter

Related components

  • Command menu — a palette over attributes and values, with hierarchical drill-in and AI fallback
  • Combobox — the value-picker inside each active filter chip uses a combobox to narrow available values

To-do

Complementary patterns to capture: constrained natural language builder, rules, search.

Resources & references

  • Patternfly / Filters
  • Gitlab Pajamas / Filtering
  • IBM Carbon / Filtering
  • Salesforce Lightning / Rules, filters, and logic

Related patterns

Precedes

  • Data view

Complements

  • Autocomplete — autocomplete within filter value selection
  • Grouping — narrows what groups show up
  • Sorting — orders what filtering lets through
  • Selection — the imperative dual; filter narrows by predicate, selection narrows by enumeration
  • Searching — often used after a search to refine results; in AI-search, filters are the output of the search query

Related

  • Bot

Preceded by

  • Embedded intelligence — natural language queries translated into structured filters

Enabled by

  • Bounded choice — each filter condition is a bounded choice over a facet's values