Two Column Answer GridFREE

An always-open FAQ laid out as a two-column grid of numbered, hairline-separated question and answer entries, closing with a soft support panel that pairs a short prompt with two actions.

Faq80: Two Column Answer Grid

Always-open FAQ: a monospace eyebrow over a hairline rule and a two-column heading, then every question and answer laid out as a numbered, hairline-separated cell in a two-column grid, closing on a soft support panel that pairs a short prompt with one or two actions.

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/faq80"

Base UI flavor

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

This installs the block to components/beste/block/faq80.tsx plus the badge23 and button21 components it uses for the eyebrow and the support actions.

Quick start

The installed file exports faq80Demo alongside the block: the exact props behind the preview above. Spread it to get a working FAQ in one line.

tsx
import { Faq80, faq80Demo } from "@/components/beste/block/faq80";

export default function Page() {
  return <Faq80 {...faq80Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Faq80 } from "@/components/beste/block/faq80";

export default function Page() {
  return (
    <Faq80
      badge={{ label: "Answers" }}
      heading="Everything teams ask before they move"
      description="The details that usually decide it are written down here."
      items={[
        {
          question: "How long does a migration take?",
          answer: "Most teams are live within a week, imports included.",
        },
        {
          question: "Who owns the data we bring in?",
          answer: "You do. Export everything at any time, in an open format.",
        },
      ]}
      support={{
        title: "Still weighing something up?",
        description: "Send the question over and a real person answers.",
        buttons: [
          { label: "Talk to the team", href: "/contact" },
          { label: "Read the docs", href: "/docs", tone: "outline" },
        ],
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Monospace eyebrow above the hairline rule, rendered via Badge23
headingstringSection heading in the left column
descriptionstringSupporting paragraph, right-aligned from md up
itemsFaqItem[][]Question and answer cells, numbered in source order
supportSupportSoft panel under the grid, with its own actions
classNamestringExtra classes for the outer <section>
ts
type ActionLink = {
  label: string;
  href: string;
  tone?: "primary" | "neutral" | "outline";
};

type FaqItem = { question: string; answer: string };

type Support = {
  title: string;
  description: string;
  buttons?: ActionLink[];
};

Behavior notes

More FAQ blocks

View all FAQ
PRO

faq17

Two Column Q&A

Questions on left, answers on right in a two-column grid layout. Works well for balanced, side-by-side presentation.

PRO

faq9

Three Column Grid

Q&A pairs arranged in a responsive grid layout. Ideal for displaying concise answers in a scannable, multi-column format.

PRO

faq86

Two Column Accordion

An FAQ split across two columns of independent accordions, so opening one answer never closes another, closing on a soft support panel with two actions.

PRO

faq22

Search with Grid

Search input with results displayed in a two-column grid. Best for knowledge bases with searchable, card-based results.

PRO

faq74

FAQ Cards

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

PRO

faq53

Numbered Pairs

Two-column grid with large numbers and Q&A pairs. Clean numbered format with clear visual hierarchy.