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.
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.
Upgrade to Pro
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/faq86?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/faq86?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/faq86.tsx plus the badge23 and button21 components it uses for the eyebrow and the support actions.
The installed file exports faq86Demo alongside the block: the exact props behind the preview above. Spread it to get a working FAQ in one line.
import { Faq86, faq86Demo } from "@/components/beste/block/faq86";
export default function FaqPage() {
return <Faq86 {...faq86Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Faq86 } from "@/components/beste/block/faq86";
export default function FaqPage() {
return (
<Faq86
badge={{ label: "Common questions" }}
heading="The things practices ask before the second call"
description="Open as many as you like, they do not close each other."
items={[
{
question: "Do we need to close for the switch?",
answer: "No. One clinic goes live first while the rest carry on unchanged.",
},
{
question: "Does it work offline?",
answer: "The member booking link keeps working from cache during an outage.",
},
]}
supportTitle="Ask us something harder"
supportBody="Support is staffed by the people who wrote the code."
buttons={[
{ label: "Talk to an engineer", href: "/contact" },
{ label: "Read the help centre", href: "/help" },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Eyebrow above the hairline rule, rendered through Badge23 |
heading | string | – | Section heading in the left column of the header |
description | string | – | Supporting paragraph, right-aligned from md up |
items | FaqItem[] | [] | Questions, filled column by column from md |
supportTitle | string | – | Heading in the closing support panel |
supportBody | string | – | Paragraph in the support panel |
buttons | ActionLink[] | [] | Support actions, first solid and the rest outlined |
className | string | – | Extra classes for the outer section |
type ActionLink = {
label: string;
href: string;
};
type FaqItem = {
question: string;
answer: string;
};items lands in the left column and the second half in the right. Reordering the array is how you move a question between columns.pr-11, which clears the chevron so the text does not run under it.button elements with aria-expanded and explicit cursor-pointer, since Tailwind v4 buttons default to cursor: default.faq79
A two-column FAQ with a sticky eyebrow, light heading, and support call to action on the left, and an interactive accordion of questions on the right.
faq80
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.