Filterable Glossary

Plain English

The words we use, and what we actually mean by them

Clinical software collects vocabulary. Here is ours, defined by someone who has to explain it on calls.

Backfill
When a cancelled slot is offered to the waiting list automatically and taken by whoever confirms first. Nobody rings round.
Capacity
Rooms multiplied by opening hours, minus what is already booked. It is measured against rooms rather than clinicians, because rooms are the thing you cannot add on a Tuesday.
Care plan
A repeating series of appointments attached to one member, billed as a block rather than one visit at a time.
Dry run
Your real data loaded into a private workspace nobody outside your practice can reach, so your team can break it without consequence.
Field mapping
Agreeing what each column in your old export becomes in the new record. One hour, once, with your practice lead.
Member
The person receiving care. We avoid 'patient' because half the practices on the platform do not use it.
Role
A named job with an access level attached, like Reception or Locum. There are six and none of them are a checkbox grid.
Seat
One person with a login. Seats move up and down mid-month and we prorate both directions.
Site
One physical clinic. Sites share a waiting list and capacity but keep their own rooms, hours, and rules.
Utilisation
The share of available room hours that were actually booked. The number most practices are trying to move.

Missing a word you keep having to explain to us? Tell us and it goes on the list.

Suggest a term
About this block

Filterable GlossaryFREE

A jargon glossary whose letter filter is derived from the terms themselves, narrowing a two-column hairline definition list with an empty state and a suggest-a-term action.

Faq89: Filterable Glossary

A jargon glossary whose letter filter is derived from the terms themselves, narrowing a two-column hairline definition list with an empty state and a suggest-a-term action.

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

Base UI flavor

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

This installs the block to components/beste/block/faq89.tsx plus the badge23 and button21 components it uses for the eyebrow and the closing action.

Quick start

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

tsx
import { Faq89, faq89Demo } from "@/components/beste/block/faq89";

export default function GlossaryPage() {
  return <Faq89 {...faq89Demo} />;
}

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

tsx
import { Faq89 } from "@/components/beste/block/faq89";

export default function GlossaryPage() {
  return (
    <Faq89
      badge={{ label: "Plain English" }}
      heading="The words we use, and what we actually mean by them"
      description="Clinical software collects vocabulary. Here is ours."
      allLabel="All"
      terms={[
        {
          term: "Backfill",
          definition: "A cancelled slot offered to the waiting list automatically.",
        },
        {
          term: "Seat",
          definition: "One person with a login, prorated in both directions mid-month.",
        },
      ]}
      emptyLabel="Nothing filed under that letter."
      closing="Missing a word you keep having to explain to us?"
      button={{ label: "Suggest a term", href: "/contact" }}
    />
  );
}

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
allLabelstring"All"Label for the unfiltered pill
termsTerm[][]The glossary itself, in the order it should read
emptyLabelstringLine shown when a letter matches nothing
closingstringPrompt beside the closing action
button{ label: string; href: string }Outline action for suggesting a term
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type Term = {
  term: string;
  definition: string;
};

Behavior notes

  • The letter buttons are derived from the first character of each term, uppercased, deduplicated and sorted. Adding a term starting with a new letter adds its button automatically.
  • Only letters that have terms behind them are shown, so there is no row of dead buttons for the letters you have not used yet.
  • Terms are never sorted by the block. The letters are sorted, but the list itself renders in array order, so pass them alphabetically if that is what you want to read.
  • The active filter is one piece of state holding either a letter or null, with null meaning unfiltered. The all-pill is the same control rather than a special case.
  • Letter buttons are square (size-9) while the all-pill sizes to its label, which keeps the row reading as one control group without forcing "All" into a square.
  • The list is a real dl with dt and dd per entry, split 1fr to 2.4fr from md, so definitions get most of the width.
  • Rows carry border-t with no closing rule, so the list flows into the closing row, which brings its own hairline.
  • Filter buttons carry aria-pressed and explicit cursor-pointer, since Tailwind v4 buttons default to cursor: default.

More FAQ blocks

View all FAQ
PRO

faq46

Tag Filter Grid

Filterable grid using tag pills at top. Perfect for FAQs that need multi-category filtering.

PRO

faq85

Live Search FAQ

An FAQ with a search field that narrows the list as it is typed, matching against topic, question, and answer, with every answer open on its own hairline row and an empty state when nothing matches.

PRO

faq11

Searchable Accordion

Search input with accordion items that filter in real-time. Essential for FAQs with many questions that users need to quickly locate.

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

faq53

Numbered Pairs

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

PRO

faq94

First Call Questions

A split FAQ: a sticky column with an eyebrow, a serif heading that settles in word by word, an intro and a pill action, beside a ruled accordion whose serif questions open to calm, plain answers.