Staaarter

Tag Filter Grid

A FAQ grid preceded by a row of tag pill buttons derived from the data itself. Clicking a tag filters the grid below to only that category's questions, and an All pill resets the filter. Only one tag can be active at a time, keeping the filtering model simple and predictable.

By Staaarter Team
FAQ
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/tag-filter-grid.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/faq/faq46.tsx instead.

Usage

The file also exports faq46Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Faq46, faq46Demo } from "@/components/blocks/faq/faq46";

export default function Page() {
  return <Faq46 {...faq46Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Frequently asked questions"Section heading.
descriptionstringnoneOptional supporting copy under the heading.
faqsFaqTagItem[]noneList of question/answer/tag entries used to build both the pills and the grid.
classNamestringnoneExtra classes for the outer section element.

Types

interface FaqTagItem {
  question: string;
  answer: string;
  tag: string;
}

Behavior notes

  • Real client behavior: the list of unique tags is computed from the faqs prop with useMemo, and an activeTag state (null means All) filters the visible grid.
  • Only single-tag selection is supported; clicking a different tag replaces the current filter rather than adding to it.