Security Questionnaire AnswersPRO

A procurement FAQ grouping security controls into hairline rows that pair each question with a tone-coded yes, partial, or not-yet chip and the detail behind it, closing on a security pack request.

Faq90: Security Questionnaire Answers

A procurement FAQ grouping security controls into hairline rows that pair each question with a tone-coded yes, partial or not-yet chip and the detail behind it, closing on a security pack request.

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.

Upgrade Now

Installation

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

bash
npx shadcn add "https://ui.beste.co/r/faq90?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/faq90?email=YOUR_EMAIL&license_key=YOUR_KEY"

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

Quick start

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

tsx
import { Faq90, faq90Demo } from "@/components/beste/block/faq90";

export default function SecurityPage() {
  return <Faq90 {...faq90Demo} />;
}

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

tsx
import { Faq90 } from "@/components/beste/block/faq90";

export default function SecurityPage() {
  return (
    <Faq90
      badge={{ label: "For procurement" }}
      heading="The security questionnaire, answered before you send it"
      description="Honest answers, including the two that are still a no."
      answerLabels={{ yes: "Yes", partial: "Partial", no: "Not yet" }}
      groups={[
        {
          label: "Data and residency",
          controls: [
            {
              question: "Is data encrypted at rest and in transit?",
              answer: "yes",
              detail: "AES-256 at rest, TLS 1.3 in transit, keys rotated quarterly.",
            },
          ],
        },
        {
          label: "Assurance",
          controls: [
            {
              question: "Do you hold ISO 27001?",
              answer: "partial",
              detail: "Audit is underway with certification expected in the fourth quarter.",
            },
            {
              question: "Do you offer an on-premise deployment?",
              answer: "no",
              detail: "No, and we do not intend to.",
            },
          ],
        },
      ]}
      packTitle="The rest of the pack"
      packBody="Architecture diagrams, the sub-processor register, and the DPA."
      buttons={[
        { label: "Request the security pack", href: "/security/pack" },
        { label: "Read the trust page", href: "/trust" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the hairline rule, rendered through Badge23
headingstringSection heading in the left column of the header
descriptionstringSupporting paragraph, right-aligned from md up
answerLabelsRecord<Answer, string>The word shown on each answer chip
groupsControlGroup[][]Control groups, each a labelled set of rows
packTitlestringHeading in the closing pack panel
packBodystringParagraph in the pack panel
buttonsActionLink[][]Pack actions, first solid and the rest outlined
classNamestringExtra classes for the outer section
ts
type Answer = "yes" | "partial" | "no";

type ActionLink = {
  label: string;
  href: string;
};

type Control = {
  question: string;
  answer: Answer;
  detail: string;
};

type ControlGroup = {
  label: string;
  controls: Control[];
};

Behavior notes

More FAQ blocks

View all FAQ
FREE

faq84

Hairline Answer Ledger

A compact FAQ with nothing hidden behind a click: three labelled groups of question and answer pairs set as two-column hairline rows, closing on a link to longer reading.

PRO

faq81

Grouped FAQ Columns

FAQ split into two labelled groups, each an independent accordion of ruled questions, so a long list stays scannable by topic; closed by a response-time note beside an outline pill CTA.

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

faq12

Grouped Sections

FAQs organized into titled sections with accordions underneath. Excellent for presenting related questions grouped by topic.

PRO

faq16

Numbered List

Questions displayed with numbered badges and answers below. Ideal for step-by-step guides or priority-ordered FAQs.

FREE

faq88

Good Fit Qualifier

A qualifying FAQ that sets a checked good-fit column against a crossed not-for-you column, then answers the three questions that follow from them on two-column hairline rows.