Answer RouterFREE

A help section that asks two questions instead of offering a search box: the answers pick one written answer from a list of routes, an image tile beside them floats the answer as a live assistant card and changes with it, and a soft panel underneath keeps a way through to a person.

Faq92: Answer Router

A help section that asks two questions instead of offering a search box. The answers pick one written answer out of a list of routes, the image tile beside them floats that answer as a live assistant card, and a soft panel underneath keeps a way through to a person.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/faq92"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/faq92"

That installs the block file, the badge23 eyebrow and button21 action button it is built from, the chat34 piece it floats over the image, and the questionnaire primitive.

Quick start

tsx
import { Faq92, faq92Demo } from "@/components/beste/block/faq92";

export default function Page() {
  return <Faq92 {...faq92Demo} />;
}
tsx
import { Faq92 } from "@/components/beste/block/faq92";
import { Chat34 } from "@/components/beste/piece/chat34";

export default function Page() {
  return (
    <Faq92
      badge={{ label: "Help" }}
      heading="Two questions instead of a search box"
      description="Tell us where you are and what happened."
      shortcuts="numbers"
      questions={[
        {
          name: "area",
          title: "What is this about?",
          choices: [
            { value: "billing", label: "Billing and invoices" },
            { value: "access", label: "Getting into the account" },
          ],
        },
        {
          name: "state",
          title: "Where did it stop working?",
          choices: [
            { value: "before", label: "Before I could start" },
            { value: "after", label: "It finished, but the result is wrong" },
          ],
        },
      ]}
      answers={[
        {
          // shown only when both answers match
          match: { area: "billing", state: "after" },
          title: "The invoice does not match what you expected",
          description: "Mid-cycle plan changes are prorated to the day.",
          link: { label: "Read how proration is calculated", href: "https://beste.co" },
          // replaces the standing photograph while this answer is up
          image: {
            src: "https://images.unsplash.com/photo-1554224155-6726b3ff858f",
            alt: "Printed forms spread across a desk with a pen and a calculator",
          },
          // the piece answers the question this route was reached by
          media: (
            <Chat34
              question="Why is this invoice higher than the plan price?"
              answer="You changed plan on the 14th."
              sourcesLabel="Answered from"
              sources={["Invoices", "Proration"]}
            />
          ),
          caption: "Every invoice line is itemised.",
        },
        {
          match: { area: "billing" },
          title: "Payments, plans, and receipts",
          description: "Card updates and past receipts live in billing settings.",
        },
        {
          // no match: the catch-all, and it has to be last
          title: "Something else",
          description: "Start from the index and narrow down from there.",
          link: { label: "Open the help index", href: "https://beste.co" },
        },
      ]}
      contact={{
        title: "Still not it?",
        description: "Send us the answers you just gave.",
        link: { label: "Write to support", href: "https://beste.co" },
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badgeBadgeEyebrow above the rule, rendered with Badge23.
headingstringSection heading.
descriptionstringSection description under the heading.
questionsRouterQuestion[][]The questions, in the order they are asked. Single answer each.
shortcuts"letters" | "numbers"Prints a shortcut on every choice of the active question.
answersAnswer[][]Checked in order; the first one whose match fits wins.
imageRouterImageStanding photograph, shown until an answer is found.
mediaReactNodePiece floated over the standing photograph.
captionstringLine under the standing photograph.
contactContactSoft panel under both columns, shown at every stage.
labelsFaq92Labels{}Overrides for the navigation buttons and the answer heading.
classNamestringMerged onto the section element.
ts
type Badge = { label: string };
type RouterImage = { src: string; alt: string };

type RouterQuestion = {
  name: string;
  title: string;
  description?: string;
  choices?: RouterChoice[];
};

type RouterChoice = { value: string; label: string; description?: string };

type Answer = {
  match?: Record<string, string>;
  title: string;
  description: string;
  link?: { label: string; href: string };
  image?: RouterImage;
  media?: ReactNode;
  caption?: string;
};

type Contact = {
  title: string;
  description: string;
  link: { label: string; href: string };
};

type Faq92Labels = {
  previous?: string;
  next?: string;
  submit?: string;
  restart?: string;
  answerTitle?: string;
};

Behavior notes

More FAQ blocks

View all FAQ
PRO

faq27

Card Carousel

Single card that rotates through questions with progress dots and navigation buttons. Great for featured question rotation.

PRO

faq57

Cards With Links

Question-answer cards with external link buttons below. Drives users to related resources or docs.

PRO

faq82

Topic Rail FAQ

A categorised FAQ whose topic rail is derived from the questions themselves and carries live counts, switching the accordion beside it and resetting it to the first answer on every change.

PRO

faq68

FAQ with Side Heading and Numbered Cards

Two-column FAQ section with a badge, heading, and description on the left, and a stacked list of numbered question cards on the right. Each card opens to reveal a plain answer block below it with no separator line.

PRO

faq15

Modal Dialog Cards

Clickable question cards that open answers in a modal dialog. Perfect for card-based layouts that need expanded views.

PRO

faq74

FAQ Cards

Always-open FAQ presented as a scannable grid of Q&A cards.