| UI or UX | UI + UX - Grouped filter control panel for narrowing a current result set | UI + UX - Filter and results exploration surface | UI + UX - Search recovery state |
| UI guidance | Render filter categories as labelled form controls in a panel adjacent to the result set on wide layouts, with a visible result count and active-filter summary near the results. | Keep selected facets visible while results update. | Render zero-result copy, active criteria, remove-filter actions, and alternative suggestions. |
| UX guidance | Use a filter panel to help users narrow the current list or search result set while preserving orientation, search query, sort order, pagination context, and selected values. | Support recovery when filter combinations become too restrictive. | Help users recover when their own search or filters excluded all results. |
| Good UI | A desktop search page shows a left filter panel with Status, Type, and Date groups, while active chips and the result count sit above the results. | Facet groups, counts, selected chips, result count, and clear controls are visually grouped. | Zero-result state shows query/filters, result count, and clear or broaden actions. |
| Bad UI | A panel mixes filter options, navigation links, sort controls, and saved views under one Filters heading. | Facet panel overwhelms the results with dense unchecked options. | Huge empty state that hides active filters. |
| Good UX | A user selects Status: Open and Type: Appeal, applies the batch, lands back at the result summary, and sees 12 records with both criteria removable. | Users can add, remove, combine, and clear facets while understanding result count changes. | Users can remove one filter, clear all, edit query, or try suggested alternatives. |
| Bad UX | Applying a filter silently resets the query, sort order, current page, and view density. | Changing filters resets unrelated query or sort silently. | Telling users nothing exists when filters caused the state. |
| Best fit | Users need to narrow the current search results, browse results, table, card grid, or list by multiple criteria. | The data set has structured attributes users understand. | Search, browse, or filter controls can produce an empty result set. |
| Avoid when | The result set is small enough that scanning is faster than filtering. | The result set is small enough that filtering adds complexity. | The state is caused by an error rather than valid empty results. |
| Required state | Applied state with active-filter count, result count, and removable applied criteria near the results. | Unfiltered state with result count and available facets. | Zero-result state that preserves the user's criteria. |
| Accessibility burden | Use semantic form controls with fieldsets, legends, labels, and accessible names for filter categories and values. | Filter groups need clear labels and state. | Announce result-count changes where search results update dynamically. |
| Common misuse | Using a filter panel as a navigation drawer that sends users to different pages instead of narrowing the current data set. | Using internal database labels as facets. | Resetting all criteria automatically. |