Filtering
Filtering allows users to narrow down a set of results by applying criteria that refines the current view.

Clear
Make it obvious what criteria are available, what is currently selected, and how selections affect the results. Applied filters should be visible or easy to review, especially when filter controls are hidden in a menu, sheet, drawer, or overflow area.
Simple
Use the simplest filtering UI that supports the user's task, from quick single-value filters to advanced filtering with multiple categories, values, and ranges.
Contextual
Filters should help users refine their current view. Avoid using filters for navigation, input, or switching between unrelated views.
Choosing filters
When choosing a filter type, consider:
- Can users select one value or many?
- Is the value numeric, categorical, date-based, visual, or require user text input?
- How many options are there? A few or dozens?
- Is this a common refinement?
- Should results update immediately or after the user confirms?
- What surface or context will the filter appear in?
| Filter types | Best for | Evo components | Related components |
|---|---|---|---|
Multi-select filter | Broad exploratory searches within large sets of results | ||
Multi-category select filter | Narrowing down large sets of data by combining search criteria | ||
Quick filter | High-value, commonly used refinements | ||
Single-select filter | Mutually exclusive values, where only one can be applied at a time | ||
Range filter | Numeric attributes such as price, distance, year, dimensions, rating, etc. | ||
Text filter | Finding specific search criteria within a large list | ||
Visual filter | Attributes that users can identify faster by sight | - |
Filter labels
Use concise, scannable labels. Filter group labels should usually be nouns or noun phrases. Filter value labels should be short, user-facing values and may include established marketplace terms. Action labels should use clear verbs.
Within each filter group, order labels on the type of values:
- Use a logical order for ordinal, numeric, or semantic sets
- Use popularity, relevance, or personalization for large exploratory lists with a strong demand signal
- Use alphabetical order, ideally with a search function, for long flat text lists with no other strong signal
When aligning on the label copy:
- Use sentence case
- No ending punctuation
- Use short noun or noun phrases, adjectives, or marketplace terms
Immediate apply vs explicit apply
Results can update as the user selects (Immediate apply) or only after they submit their choices (explicit apply).
Overview
Filtering accessibility requirements vary significantly depending on which components are used in the pattern. Always refer to the accessibility guidance for each individual component (i.e. filter chips, toggles, checkboxes, etc.) in addition to the guidance on this page.
Communicating filter controls to assistive technology
Control type and role: Each filter control must accurately convey what kind of control it is. All filter controls must also have a visible, descriptive name — the text label that identifies what the control does. How this is implemented varies by component; refer to each component's accessibility guidance.
State and value:
- Filter chips with an active selection should announce the selected value and the category (e.g. Condition: New with tags)
- When a filter control opens a popover or dialog, its open/closed state must be communicated to screen readers — without it, a blind user has no way of knowing the panel is currently open or closed
- Applied filter states must be surfaced to screen readers
Consistent terminology
Use identical labels for the filter criteria across all surfaces. If an option is called “Best Offer” in a filter sheet, it should also be called that if the same filter group appears in a quick filter.

















