Hairline Answer Ledger

Short answers

The quick ones, without an accordion in the way

Everything here fits in two lines, so nothing is hidden behind a click. The longer answers live in the help centre.

Getting started

Is there a free tier?
Yes, free while you are running a single clinic, with no card and no time limit.
How long is setup?
An afternoon for one clinic, a fortnight for a group moving off another system.
Do we need training?
No formal training. We stay on the call until your first real booking goes through.

Day to day

Does it work on a phone?
Yes, and members get a link rather than an app they have to install.
Can we run several sites?
Yes, on every plan. Sites share capacity and a waiting list but keep their own rules.
Is there an API?
Read and write access to appointments and invoices, shipping shortly after launch.

Money and exit

How are we billed?
Monthly in arrears, per seat, prorated in both directions when the team changes.
Any setup fees?
None. Migration, mapping, and the first go-live are part of the subscription.
What if we leave?
Thirty days' notice, no penalty, and a full export that stays available for ninety days.

Longer questions, longer answers Open the help centre

About this block

Hairline Answer LedgerFREE

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.

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.

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

Base UI flavor

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

This installs the block to components/beste/block/faq84.tsx plus the badge23 component it uses for the eyebrow.

Quick start

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

tsx
import { Faq84, faq84Demo } from "@/components/beste/block/faq84";

export default function FaqPage() {
  return <Faq84 {...faq84Demo} />;
}

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

tsx
import { Faq84 } from "@/components/beste/block/faq84";

export default function FaqPage() {
  return (
    <Faq84
      badge={{ label: "Short answers" }}
      heading="The quick ones, without an accordion in the way"
      description="Everything here fits in two lines, so nothing is hidden behind a click."
      groups={[
        {
          label: "Getting started",
          entries: [
            {
              question: "Is there a free tier?",
              answer: "Yes, free while you are running a single clinic, with no card.",
            },
            {
              question: "How long is setup?",
              answer: "An afternoon for one clinic, a fortnight for a group.",
            },
          ],
        },
        {
          label: "Money and exit",
          entries: [
            {
              question: "How are we billed?",
              answer: "Monthly in arrears, per seat, prorated in both directions.",
            },
          ],
        },
      ]}
      footerLabel="Longer questions, longer answers"
      footerLink={{ label: "Open the help centre", href: "/help" }}
    />
  );
}

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
groupsLedgerGroup[][]Labelled groups of question and answer pairs
footerLabelstringSentence introducing the help centre link
footerLink{ label: string; href: string }Link at the end of that sentence
classNamestringExtra classes for the outer section
ts
type LedgerEntry = {
  question: string;
  answer: string;
};

type LedgerGroup = {
  label: string;
  entries: LedgerEntry[];
};

Behavior notes

  • Nothing collapses. There is no state in this block at all, which is the whole point: it is for the answers short enough that hiding them costs more than showing them.
  • Each group is a real dl with dt and dd per entry, which is the correct structure for question and answer pairs.
  • Rows are a 1fr to 1.6fr split from md, giving the answer more width than the question, and stack below md with the question first.
  • Every group closes with last:border-b, so each group reads as its own small table rather than one continuous run of rules.
  • Groups use mb-10 with last:mb-0, so the spacing lives between them and the block never ends on a stray margin.
  • footerLabel and footerLink render together or not at all, since the link is the end of that sentence rather than a standalone action.
  • Answers are meant to fit two lines. Longer ones still render, but the two-column rhythm is what makes the ledger scannable, so anything that runs past three lines belongs in a different FAQ block.

More FAQ blocks

View all FAQ
PRO

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.

FREE

faq80

Two Column Answer Grid

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.

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

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

faq44

Minimal Two Column

Simple two-column layout with questions and answers. Ultra-minimalist design with no extra styling.

PRO

faq91

Ask And Answered In Public

An open question FAQ pairing a soft panel that sticks while you scroll, holding a working question and email form, with the questions others sent recently answered as linked hairline entries.