search

Search

A search field whose panel offers products, categories and suggestions while the shopper types, with a "Search for" row that submits; inline under the field or in an overlay.

States: Default, Hover, Focus, Disabled

Parts

PartFileDoes
SearchSearch.vueGroups all parts of the search: a field whose panel offers results, suggestions and a "Search for" row.
SearchEmptySearchEmpty.vueA line of text in the panel, such as "No results for …"; the shop decides when it shows.
SearchGroupSearchGroup.vueA headed section of the panel: products, categories, brands, or suggestions.
SearchHighlightSearchHighlight.vueText with every match of the search terms in bold; the terms default to the typed query.
SearchInputSearchInput.vueThe search field: a search icon, the input, and a button that clears it.
SearchItemSearchItem.vueOne row of the panel that opens something: a link, so middle-click and open-in-new-tab work.
SearchLoadingSearchLoading.vueSkeleton rows and "Searching…" while the shop's search answers; shows only while Search is loading.
SearchOverlaySearchOverlay.vueShows the search in an overlay: near the top on wide screens, full screen on phones with a Cancel button.
SearchQuerySearchQuery.vueThe first row while the shopper types: "Search for …", which submits the query to the results page.
SearchResultsSearchResults.vueThe panel of results, suggestions and the "Search for" row, under the field or inside the overlay.
SearchTagSearchTag.vueA suggested search, drawn as a tag; opening it runs that search.

Anatomy

<Search>
  <SearchInput />
  <SearchResults>
    <SearchGroup>
      <SearchTag />
      <SearchItem>
        <SearchHighlight />
      </SearchItem>
    </SearchGroup>
    <SearchQuery />
    <SearchLoading />
    <SearchEmpty />
    <SearchTag />
  </SearchResults>
</Search>

Styling

PartRecipe
SearchEmptysearch-empty
SearchGroupsearch-group
SearchGroupsearch-group-heading
SearchHighlightsearch-highlight
SearchInputsearch-input
SearchInputsearch-input-clear
SearchInputsearch-cancel
SearchItemsearch-item
SearchLoadingsearch-loading
SearchLoadingsearch-loading-row
SearchLoadingsearch-loading-label
SearchOverlaysearch-overlay
SearchOverlaysearch-overlay-backdrop
SearchQuerysearch-query
SearchQuerysearch-query-term
SearchResultssearch-results
SearchResultssearch-results-viewport
SearchTagsearch-tag

Install

Writes 13 files into components/ui/search/. For agents, npx @frontic/ui docs search prints this reference as markdown; the MCP server serves the same.

Installs with it
skeleton
npm packages
@lucide/vue
class-variance-authority
reka-ui

Built from

API reference

SearchEmpty SearchEmpty.vue

SearchGroup SearchGroup.vue

SearchHighlight SearchHighlight.vue

SearchInput SearchInput.vue

SearchItem SearchItem.vue

SearchLoading SearchLoading.vue

SearchOverlay SearchOverlay.vue

SearchQuery SearchQuery.vue

SearchResults SearchResults.vue

SearchTag SearchTag.vue

Example
State