| UI or UX | UI + UX - Filter and results exploration surface | UI + UX - Search recovery state |
| UI guidance | Keep selected facets visible while results update. | Render zero-result copy, active criteria, remove-filter actions, and alternative suggestions. |
| UX guidance | Support recovery when filter combinations become too restrictive. | Help users recover when their own search or filters excluded all results. |
| Good UI | 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 | Facet panel overwhelms the results with dense unchecked options. | Huge empty state that hides active filters. |
| Good UX | 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 | Changing filters resets unrelated query or sort silently. | Telling users nothing exists when filters caused the state. |
| Best fit | 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 filtering adds complexity. | The state is caused by an error rather than valid empty results. |
| Required state | Unfiltered state with result count and available facets. | Zero-result state that preserves the user's criteria. |
| Accessibility burden | Filter groups need clear labels and state. | Announce result-count changes where search results update dynamically. |
| Common misuse | Using internal database labels as facets. | Resetting all criteria automatically. |