search
Design or improve search experiences, result presentation, and filtering interfaces. Use when the user asks to add search, redesign search results, improve findability, build autocomplete, add filters, or fix zero-results dead ends.
By aladicf · 403 installs
npx skills add aladicf/better-web-ui --skill search
Source repository · Upstream listing
Build search experiences that help users find what they need quickly, even when they are uncertain about what they are looking for. The goal is not perfect relevance on the first try; it is guiding users from intent to outcome through forgiving search and clear results.
Consult the [search and filtering UX](../frontend design/reference/search and filtering ux.md) reference for autocomplete patterns, filter architecture, result presentation, and zero results recovery.
Consult the [search and findability](../frontend design/reference/search and findability.md) reference for site search, autosuggest, command palettes, and intent aware findability.
Consult the [collection browsing and filtering](../frontend design/reference/collection browsing and filtering.md) reference for long result lists, faceted browsing, and filter overlays.
Consult the [predictive and intent driven UI](../frontend design/reference/predictive and intent ui.md) reference for recommendations, smart defaults, and resume flows.
MANDATORY PREPARATION
Users start this workflow with /search . Once this skill is active, load $frontend design — it contains design principles, anti patterns, and the Context Gathering Protocol . Follow that protocol before proceeding — if no design context exists yet, you MUST load $setup first. Additionally gather: what users typically search for, what common queries fail, and how large the searchable dataset is.
Assess Search Needs
Understand the search context before designing the interface:
1. Search intent : Are users looking for a specific item (known item search), exploring a category (exploratory), or trying to complete a task (transactional)?
2. Dataset size : Small datasets (< 100 items) may not need search; filtering or categorization may suffice. Large datasets need faceted search and ranking.
3. Query patterns : What do users actually type? Common misspellings, synonyms, and abbreviations should be handled.
4. Failure modes : What happens when search returns nothing? When it returns too much?
Search Interface Design
Query input
Use concrete placeholder text ("Search for "project alpha"") instead of generic filler
Show a clear button once the user has typed
Support Enter to submit; do not rely solely on live results
Include a visible search button, not just a decorative icon
If scope is selectable ("All", "Products", "Help"), make it obvious and changeable
Autocomplete and suggestions
Show suggestions after 2 3 characters
Group by type: recent searches, popular queries, products, help articles
Bold the matching substring
Support arrow key navigation, Enter to select, Escape to close
On mobile, ensure suggestions are scrollable and do not overflow
Show a helpful message when nothing matches instead of an empty list
Filter integration
Sidebar filters for many filters on wide layouts
Top bar for a few key filters
Drawer/overlay on narrow layouts
Inline chips for active filters that can be removed directly
Synchronize filter state with the URL for shareability
Show active filter count when collapsed
Result Presentation
Result list
Clear hierarchy: title, metadata, snippet, thumbnail
Highlight matching query terms in titles and snippets
Consistent formatting across all results
Each result should be a clear link or have a primary action
Empty states
Acknowledge the query ("No results for 'xyz'")
Suggest alternatives: corrected spelling, related terms, broader categories
Offer to clear filters if any are active
Provide a fallback action ("Browse all", "Contact support")
Ranking controls
Allow users to change sort order (relevance, price, date, rating)
Label the default sort and explain why it is the default
If results are promoted, label them transparently ("Featured")
Pagination and Loading
Pattern Best for
Pagination Large result sets, SEO critical pages, users who reference specific pages
Infinite scroll Discovery browsing, image galleries, social feeds
Load more Balanced approach; user controls when to load
Show skeleton screens that match result layout during loading
Preserve previous results while loading new ones when possible
Accessibility
Announce result count changes for screen readers
Associate filter controls with result regions using aria controls
Ensure active filters are announced when changed
Provide skip links from filters to results
Support keyboard navigation through suggestions and filters
Anti Patterns
Case sensitive search : Users should not guess capitalization
No visual feedback during search : Silent search feels broken
Filters that produce zero results : Disable or hide invalid combinations
Overwhelming filter panels : Too many filters create decision paralysis
Hidden active filters : Users forget what they filtered
Losing filter state on refresh : Filters should persist in the URL
Infinite scroll without footer access : Users cannot reach footer links
Search requiring exact matches : Fuzzy matching and stemming are essential
No zero results recovery : An empty screen with no guidance is a dead end
Autocomplete that hijacks the cursor : Suggestions should not auto submit
Verify Search Quality
Before shipping:
[ ] Search handles typos, partial matches, and common synonyms
[ ] Autocomplete is keyboard navigable and mobile friendly
[ ] Active filters are visible and individually removable
[ ] Filter state is reflected in the URL
[ ] Zero results pages offer alternatives and recovery paths
[ ] Result rankings can be changed by the user
[ ] Loading states match the result layout
[ ] Screen readers announce result count and filter changes
[ ] Focus management follows a logical path
[ ] Search is tested with realistic queries and misspellings