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

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

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.

FREE

faq77

Numbered FAQ Index

A type-forward FAQ with a sticky heading rail and a numbered accordion list of expandable questions.