Arc
ComponentsBlocksDocsPricingTry the demo
Introduction
Installation
Theming
Motion
AI and MCP
Changelog
Metrics dashboard
KPI drilldownNew
Metric explorer
Revenue explorer
MRR waterfall
Cohort retention
Usage forecast
Journey flow
Connected scatterNew
Market terminalNew
Budget varianceNew
Small multiplesNew
Line replayNew
AI chatNew
AI composer
Agent runNew
SidebarPro4
Page header
Command palette
Notification center
Empty states
Search resultsNewPro
Login and sign up5
OTP input
Multi-step formPro
Settings page
Settings commandNew
Security settings
Billing overview
Usage billingNew
Cancel flow
Team members
Invite peopleNew
Team directory
Roles and permissions
API keys
Webhooks
Integrations
Plan comparison
Pricing calculatorNewPro
Usage pricingPro
Cart drawerNewPro
Checkout summaryNewPro
Invoice studio
Wallet card
Product listingNew
Product detailNew
Inbox triage
Support conversation
Support widget
File upload
Media playerPro
Week calendarNew
Availability picker
Project board
Release readiness
Hero sectionNew
Hero signupNewPro
Scroll storyNewPro
Spotlight gridNewPro
Feature bentoNewPro
Comparison tableNew
Logo marquee
Studio perspectivesPro
Stats bandNew
Changelog feed
FAQ sectionNew
Contact sectionNew
Team showcasePro
Blog gridNew
Site headerNew
Site footerNew
CTA sectionNew
Newsletter signupNew
Activity terrain
Revenue globe
Customer galaxy
Semantic zoom
Layout morph
What’s new90 new
BlocksSearch results

Search resultsPro

A faceted workspace search page with suggestions, facet counts that follow the query, filter chips, mixed doc, person and file results with highlighted matches, a gliding keyboard cursor and a preview pane.

Live block · sample data

When to use

  • A full search page for a workspace or knowledge base that returns several kinds of things at once.
  • Search where people narrow by type, team, and date, and want to read a match before opening it.

When not to use

  • Use command-palette for quick jump to navigation from any screen.
  • Use product-listing for a storefront grid filtered by price, color, and size.
  • Use customers-table or sortable-data-table when results are records to compare in columns.

Installation

Pro source and install commands unlock with a Pro plan.

Usage

Render <SearchResults /> for the demo, or pass results (docs, people, files), teams, recentSearches and suggestedSearches, with onSearch and onOpen to wire it to a real index. Set latency={0} and swap results yourself when your fetch resolves.

example.tsx
1import { SearchResults } from "@/components/arc/blocks/search-results/search-results";2 3export function WorkspaceSearch({ items }: { items: SearchResult[] }) {4  return (5    <SearchResults6      results={items}7      workspace="Acme"8      defaultQuery=""9      latency={0}10      onSearch={query => track("search", { query })}11      onOpen={result => router.push(`/${result.kind}/${result.id}`)}12    />13  );14}
Built fromCheckboxSliderBottom sheetFilter toolbarSegmented controlEmpty stateButtonAvatar

API reference

SearchResults

A faceted search results page for a workspace. A query bar with recent and suggested searches, a facet sidebar whose counts follow the query, a last edited range, active filter chips, and one list of mixed docs, people, and files with every match highlighted. A keyboard cursor glides through the results and a preview pane follows it.

PropTypeDefaultDescription
resultsSearchResult[]sample workspaceEverything that can be found. Each item is a doc ({ title, path, snippet, body, author, updated, readMinutes }), a person ({ person, title, role, snippet, email, location, owns }), or a file ({ title, ext, size, snippet, owner, updated, photo?, pages? }), all with an id and a team.
teamsSearchTeam[]teamsTeam facet options ({ id, label }) in display order.
recentSearchesstring[]–Recent queries shown first in the suggestions. Runs are added to the front, up to five.
suggestedSearchesstring[]–Suggested queries shown under recent ones and offered again when nothing matches.
defaultQuerystring"onboarding"Query shown and run on first render.
defaultSort"relevance" | "newest" | "title""relevance"Initial sort: best match, newest first, or A to Z.
todaystring"2026-09-24"ISO day that relative dates and the edited range are measured from, so the server and client render the same labels.
workspacestring"Northwind"Workspace name used in the placeholder and the region label.
latencynumber650Simulated query time in milliseconds while skeletons show. 0 shows results at once.
onSearch(query: string) => void–Called each time a query runs, from Enter, a suggestion, a spelling fix, or an empty state suggestion.
onOpen(result: SearchResult) => void–Called when the preview's primary action (Open doc, View profile, Download) completes.
classNamestring–Class on the root section.

Keyboard interactions

/
Focuses the query from anywhere on the page, unless another field has focus.
Arrow downorArrow up in the query
Moves through recent and suggested searches; with the list closed, Arrow down moves into the results.
Enter in the query
Runs the highlighted suggestion or the typed query.
Escape in the query
Closes the suggestions, then clears the text.
Arrow downorArrow up, JorK
Moves the result cursor; Arrow up on the first result returns to the query.
HomeorEnd
Jumps to the first or last result.
EnterorSpace on a result
Opens it: the preview pane follows on wide layouts, and a sheet opens on narrow ones.
Escape in the results
Returns focus to the query.

Accessibility

  • The query is a combobox with aria-activedescendant into a grouped listbox of recent and suggested searches.
  • Results are one listbox with aria-activedescendant, so a screen reader hears each result's title, meta, and snippet as the cursor moves.
  • Result counts and loading are announced in a polite status region; the results region sets aria-busy while skeletons show.
  • Facets are fieldsets with legends; each option is a labeled checkbox, and options with no matches are disabled rather than hidden.
  • The last edited range is a two thumb slider with named thumbs and month value text.
  • Keyboard position shows through the gliding fill, never a focus ring. Highlights use mark elements, and matches are never shown by color alone.

Motion

  • One neutral fill glides between results on a no overshoot spring as the cursor moves, by keyboard or pointer.
  • The result count rolls up when results grow and down when a filter narrows them, in tabular numerals.
  • New result sets crossfade with a short rise; the preview pane crossfades per result. Skeletons share the result grid, so nothing shifts when results land.
  • The suggestions menu scales in from the query bar; the chip row opens and closes its height on a smooth spring.
  • Reduced motion removes travel and the skeleton pulse and keeps plain fades.

Responsive behavior

  • From 1120px wide the layout is facets, results, and a preview pane; below that the preview opens in a bottom sheet.
  • Below 680px the facets move into a filters sheet with a sticky Clear all and Show results footer, and the query bar gains a Filters button with a count.
  • Rows and sheet controls keep 44px touch targets; titles wrap to two lines and snippets clamp to two.
  • Layout decisions use a container query, so the block adapts to its column, not the window.

Performance

  • Matching, sorting, and facet counts are memoized and run on the client for a few hundred items; move them to the server for larger indexes.
  • Only transform and opacity animate; the preview pane width is measured once with a ResizeObserver.

Notes for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Map your index to the three result shapes; keep snippets to the sentence that contains the match, since highlighting reads the query terms.
  • Facet counts are disjunctive within a group: each option counts what you would see if you added it. Keep that behavior when counts come from a server.
  • Pass latency={0} and drive loading from your own fetch by swapping results when a query resolves.
  • Photos in file results come from lib/media; replace them with real thumbnails.
/components/blocks/search-results/markdown

The full library index for assistants is at /llms.txt.

Related

Command paletteBlockA complete keyboard driven action surface with search, grouped results, and shortcuts.Filter toolbarComponentKeep collection filters close and easy to reset.Product listingProBlockA storefront grid with price, color and size filters, a sort menu, hover photo swaps, and quick add with a size row.
PreviousHero signupNextMarket terminal
Arc · 79 block pagesllms.txt

On this page

  • Preview
  • When to use
  • When not to use
  • Installation
  • Usage
  • API reference
  • Keyboard
  • Accessibility
  • Motion
  • Responsive behavior
  • Performance
  • Notes for AI
  • Related
View as Markdown
/

Filters

Type
4
3
4
Team
3
1
2
3
2
0
EditedSep 00123456789001234567890012345678900123456789–Sep 00123456789001234567890012345678900123456789

Applies to docs and files

11 results in 0.12 seconds

11 results for onboarding

  • Customer onboarding playbookDoc in Customer success / PlaybooksEvery new enterprise account gets a named lead for the first 30 days. The onboarding call covers workspace setup, SSO, and the first import.Hannah Walsh edited 2 days ago
  • Onboarding flow v3.figFigma, 18.2 MB, DesignFrames: Welcome, Invite your team, Connect Slack, First project. The onboarding checklist moves into the sidebar.Emma Collins uploaded 6 days ago
  • Onboarding checklist for new engineersDoc in Engineering / HandbookYour first week: get repo access, run the app locally, ship a small fix, and pair with your onboarding buddy on a production deploy.Nathan Cole edited 3 weeks ago
  • Q3 onboarding metrics.xlsxSpreadsheet, 412 KB, GrowthActivation rose from 41% to 48% after the new onboarding checklist. Time to first project fell to 2.3 days.Chloe Nguyen uploaded last week
  • Admin onboarding walkthrough.mp4Video, 248 MB, Customer successA 12 minute recording of the admin console: roles, SSO, audit log, and billing. Used in every onboarding call.Jordan Reyes uploaded on Mar 11
  • Onboarding email sequenceDoc in Growth / LifecycleFive emails over 14 days. Each one points to a single next step, and the sequence stops as soon as the workspace is active.Ava Mitchell edited on Jul 19
  • Hannah WalshCustomer success lead, DublinLeads onboarding for enterprise accounts in Europe. Ask about SSO rollouts, data imports, and renewal health.hannah@northwind.co
  • Chloe NguyenData analyst, TorontoOwns the activation dashboards and the weekly onboarding funnel report. Happy to pull numbers for any experiment.chloe@northwind.co
  • Welcome kit for new hires.pdfPDF, 14 pages, 3.1 MB, OperationsPage 2: What to expect in your first week, from laptop setup to your onboarding lunch with the team.Sofia Ramirez uploaded on Jun 4
  • 2027 hiring planDoc in People / PlanningTwelve roles next year, most in engineering and customer success. Each hiring manager owns a scorecard and an onboarding plan.Diane Foster edited 2 weeks ago
  • Mateo AlvarezMobile engineer, MadridWorking on offline mode for the mobile apps. Previously built the onboarding screens on iOS.mateo@northwind.co

↑↓ to move, ↵ to open, / to search

Customer onboarding playbook

Doc in Customer success / Playbooks

Every new enterprise account gets a named lead for the first 30 days. The onboarding call covers workspace setup, SSO, and the first import.

By day 14 the account should have three active teams. If it does not, the lead books a second onboarding session and loops in solutions engineering.

Close the onboarding phase with a short review: what the team shipped, where they got stuck, and who owns the account from here.

Matches
4
Team
Customer success
Author
Hannah Walsh
Length
6 min read
Last edited
Sep 22, 2026, 2 days ago