Search Bar filter-search-001
A visible text input for entering search queries, typically placed in the site header. Use when your site has substantial content that users need to find by keyword.
42 patterns in this category — each with its illustration, what it is, and the fields that matter when you build or review one. Part of the UX pattern catalogue; the raw, agent-readable version is ux-pattern-catalogue/filter-search-patterns.json.
A visible text input for entering search queries, typically placed in the site header. Use when your site has substantial content that users need to find by keyword.
Results update dynamically as the user types, without requiring form submission. Use when datasets are small enough for sub-200ms responses or backed by a fast search API.
A dropdown of recommended queries or results appears below the search input as users type. Saves time, reduces typos, and reveals available content. Selected 23% of the time on e-commerce sites (NN/G).
A dedicated page displaying items matching a search query with result counts, highlighted snippets, and pagination. Use for any search returning more than a handful of results.
Combines free-text search with structured filter categories (facets) that let users drill down by attributes. The de facto standard for e-commerce product discovery.
Searches across entire document content, not just titles or tags. Use when users need to find content by terms appearing anywhere in the body text.
Returns results even when the query contains typos, using edit-distance algorithms. Prevents zero-result dead ends from minor spelling errors.
Shows the user's past search queries when focusing the empty search input. Show 3-5 items on mobile, up to 10 on desktop. Saves time for repeat queries.
Lets users save a query + filter combination for later reuse, optionally with notifications for new matches. Use for power users with repeated search criteria (job boards, marketplaces).
Restricts search to a specific section or content type. Always default to "All" — users expect full-site search and may not notice scope restriction (NN/G).
A vertical panel (typically left-side) containing filter categories in expandable accordion groups. The most common desktop filter layout for content-heavy sites.
A horizontal row of filter controls above the results grid, each opening a dropdown when clicked. Best for interfaces with fewer than 5-7 filter categories.
Small removable pill-shaped elements above results showing all active filters. Each chip has an X button to remove that filter. Essential for showing what is currently filtered.
Filter groups where users select multiple values simultaneously (e.g., multiple brands). The most common filter interaction pattern.
Allows users to define a numeric or date range via slider handles or min/max text fields. Always pair sliders with text inputs for precise entry.
Binary yes/no filters (e.g., "In stock only," "Free shipping"). Use for naturally boolean attributes. Place prominently as high-priority filters.
Selections in one filter constrain available options in another (e.g., "Electronics" reveals "Screen Size" but not "Fabric Type"). Prevents impossible combinations.
Pre-configured filter combinations for common user intents (e.g., "Budget picks," "Top rated," "New arrivals"). 20% of top e-commerce sites lack these despite high value (Baymard).
Lets users save their current filter configuration as a named preset for reuse. Valuable for power users in SaaS dashboards and job boards.
A text input within a filter group for searching among filter values (e.g., searching within 200 brands). Essential when a filter category has many values.
A dropdown for choosing sort criterion and direction (e.g., "Price: Low to High"). The most common sort control. Place right-aligned in the results header.
Clicking table column headers sorts by that column. Shift+click adds secondary sort. Standard for data tables.
The initial result order before any user interaction. Should match user intent: relevance for search, recency for feeds, popularity for browsing. Avoid alphabetical as default (NN/G).
Visual arrows on sortable columns indicating current sort direction and whether a column is sortable at all.
The integrated layout combining search input, filter controls, and sort selector above results. The standard pattern for any list/grid with 20+ items.
Serialize active query, filters, sort, and pagination into URL params so the view can be bookmarked, shared, or navigated with browser back/forward.
Numeric counts next to each filter option showing how many results match (e.g., "Nike (42)"). Prevents selecting filters that produce zero results.
A dedicated area displaying all active filters as removable chips with "Clear all." Place between filter controls and results. 32% of sites lack best practices here (Baymard).
A button showing expected result count (e.g., "Show 247 results") that applies all pending filter selections at once. Recommended for mobile and batch filtering.
Delays search API calls until the user stops typing (150-300ms), preventing excessive requests per keystroke. Essential for any search-as-you-type implementation.
Client-side filtering works on loaded data (fast, limited size). Server-side sends params to API (handles large datasets). Use client-side for under ~1000 items, server-side for larger.
Cache filter results so revisiting a previous filter combination returns instantly. Reduces server load and improves perceived performance.
Pre-built data structures enabling sub-millisecond full-text search by mapping terms to documents. Essential for performant search.
The ARIA search landmark identifies a search region. Screen reader users can jump directly to it via landmark navigation.
An aria-live region announcing result counts to screen reader users when search or filter results change. Prevents the silent-update problem.
All filter controls must be keyboard-operable. Tab moves between groups; Space toggles checkboxes; Arrow keys navigate radio groups/sliders; Enter activates buttons.
Each filter group must have a programmatic label associating its heading with controls so screen readers announce context.
A panel sliding up from the bottom containing filter controls. Keeps controls within thumb reach. Include a visible close button — many users don't discover swipe dismissal (NN/G).
Filter categories that collapse/expand individually on mobile to conserve vertical space. Tap a heading to reveal options.
A full-screen modal showing all filter categories. Used when filter interface is complex. User applies filters and returns to results.
A horizontally scrollable row of filter chips at the top of mobile results. Each chip toggles a filter value. Best for 5-12 high-priority options.
A single button opening a bottom sheet with both sort and filter controls. Consolidates two entry points for constrained mobile space.