Xzero UI
Pro library

Help centerPro

A help center with instant search, topic cards, and popular articles that open into a readable article with an outline and feedback.

$ pnpm dlx shadcn@4.23.0 add @xzero-ui-pro/help-center
Live · keyboard ready

Use this as a self serve support site or in-app help. Load categories and articles from your CMS, pass a server search through search if you have one, and record votes through onFeedback; contact in the preview is simulated.

When to use

When not to use

Installation

Register both Xzero UI namespaces in your project's components.json:

{
  "registries": {
    "@xzero-ui": "https://mcp.xzero.co.uk/r/{name}.json",
    "@xzero-ui-pro": "https://mcp.xzero.co.uk/r/pro/{name}.json"
  }
}
npx shadcn@4.23.0 add @xzero-ui-pro/help-center

Install xzero-foundation once, and import @/components/xzero/foundation.css in your app root. No Xzero token is used by this snapshot. For sample portraits, photos, fonts, or logos, download https://mcp.xzero.co.uk/install-assets.mjs and run node xzero-install-assets.mjs <receiving-project>.

Usage

import { HelpCenter } from "@/components/xzero/blocks/help-center/help-center";

export function Help({ articles, categories }) {
  return (
    <HelpCenter
      brand="Acme"
      articles={articles}
      categories={categories}
      onArticleOpen={article => router.replace(`/help/${article.id}`)}
      onFeedback={(id, helpful, comment) => fetch("/api/help/feedback", { method: "POST", body: JSON.stringify({ id, helpful, comment }) })}
    />
  );
}

API reference

HelpCenter

A help center app. The home screen leads with a large instant search, then topic cards, popular articles, and a contact card. Results appear under the field as you type with the matching words highlighted. Articles open in a reading view with breadcrumbs, a sticky on this page outline that follows your scroll, a feedback question, and related articles.

PropTypeDefaultDescription
articlesHelpArticle[]sample articlesArticles with id, title, categoryId, summary, updated label, reading minutes, popular flag, and sections of paragraphs and optional steps.
categoriesHelpCategory[]sample categoriesTopics with id, name, description, and an icon key: start, billing, team, integrations, security, or troubleshooting.
brandstring"Northwind"Name in the top bar.
headingstring"How can we help?"Heading above the big search.
suggestionsstring[]["invoice", "single sign-on", "slack"]Quick searches under the big search field.
defaultArticleIdstring–Opens this article on mount, for deep links.
search(query: string, articles: HelpArticle[]) => HelpArticle[]searchArticlesRanks results. The default requires every word and ranks title matches above summary and body matches.
onFeedback(articleId: string, helpful: boolean, comment?: string) => void | Promise<void>–Records a vote and the optional comment.
onContact() => void | Promise<void>–Opens your support channel. Without it the preview simulates a sent request.
onArticleOpen(article: HelpArticle) => void–Called when an article opens, for routing or analytics.
classNamestring–Extra class on the root.

Keyboard interactions

KeysAction
Arrow down / Arrow upMove through search results.
EnterOpens the highlighted result.
EscapeClears the search, then leaves the field.
TabMoves through topics, articles, the outline, and feedback.

Accessibility

Motion

Responsive behavior

Performance

Notes for AI

Guidance for AI tools

Blocks are complete, self-contained screens with sample data. Replace the sample data and connect the callbacks described above. Follow the declared prop types and do not invent props. Keep keyboard access, reduced motion support, and both light and dark themes intact when adapting it.

Full library index: https://ui.xzero.co.uk/llms.txt

Browse all components