Skip to main content

Search & filter

Search & filter helps users find a single or set of records.

Overview

Search & filter can help users locate a specific record or create a set of related records. In general, filters are applied after a search, to further refine a broader search set.

The search process is comprised of five steps: 1. Initiate, 2. Show results, 3. Refine, 4. View details, 5. Return to results.


Steps

Design principle

Help users understand what they can find.

Components to use

ComponentIntentTradeoff
App bar searchUse for searching the full app.Broad scope.
Local searchUse for searching with in a page or section.Limited scope
Category searchCommunicates what can be searched.More decisions about category to use.
Advanced searchFinding a specific record. Communicates what can be searched.More decisions about which field to use.
info

Advanced search and filtering should NOT be used together. An advanced search allows users to locate a specific, known result. Search + filter allows users to start with a broad search query and iteratively filter down their filter set, using the results themselves to better understand the domain.

Alt text

The Forge site uses an app bar search to allow users to search the full site.

Alt text

A local search allows users to search a page or section.

ALt text

A category search allows users to search within specific categories, but requires additional decisions around which category to pick.

ALt text

An advanced or multi field search communicates what can be searched but results in more decisions around which field to use.


2. Show results

Design principle

Use structure (result ordering, information design, and visual hierarchy) to help users match results with mental model.

Components to use

ComponentIntentTradeoff
Task cardsBetter for displaying a few label value pairs per record. Better for expansions.Can view fewer total results on a page, not optimized for mobile.
CardsBetter for visual or nonhomogenous data.Not optimized for large blocks of text.
ListBetter for scanning, can view more results on a page.Not optimized for image heavy data.
note

See also Collections guidance.

Alt text

Displaying results as task cards can facilitate displaying summary information.

Alt text

Displaying results as cards is better for visual data.

Alt text

Displaying results as a list facilitates scanning.


3. Refine results

Design principles

  • Help users iteratively refine selections by providing logical filter categories.
  • Indicate which filters have been applied, especially if the filter sheet has been closed.

Components to use

See Filter sidesheet

ComponentIntentTradeoff
Sidesheet with scrimBetter when screen real estate is limited. Filters should be applied with an explicit "Apply" option.Loss of context / detail for records.
Persistent sidesheetAllows users to reference filters and search results at the same time.Not optimized for smaller screen sizes.

Filters with a persistent filter sidesheet.

A persistent filter side sheet allows users to reference filters and search results at the same time and is better optimized for desktop. With a lefthand navigation, filters are shown to the right. With no navigation, filters are displayed on the left by default.

Mobile filtering with a sidesheet and scrim.

A sidesheet with scrim is better for mobile contexts.

4. View detail

Design principles

  • Progressive disclosure.
  • Match content amount to mode (expansions and dialogs for less detail; full page for more detail).

Components to use

ComponentIntentTradeoff
Expansion / sidesheetView detail in context - lower interaction cost.Not as much space for detail.
DialogFocused experience, may facilitate editing.Loss of context.
Detail pageFocused experience, better for displaying more information.Loss of context.

Search results with expansion.

Search results with expansions allow for displaying content in context.

Search results that open in a dialog

Displaying detail in a dialog allows for a focused experience and may facilitate editing.

Detail page that uses a back arrow to facilitate a return to results.

Displaying detail in a separate page better facilitates more information. Use a back arrow to allow users to navigate back to a search.

5. Return to results

Design principle

Return users to their prior screen position and state, such as their vertical scroll position, to facilitate recall and task resuming.

Components to use

Toolbar with back arrow.

Detail page that uses a back arrow to facilitate a return to results.

Displaying detail in a separate page better facilitates more information. Use a back arrow to allow users to navigate back to a search.


Search is composed of the following components:

Forms are related to the following patterns: