FAQ — Accordion
FAQ section with accordion for expandable questions and answers.
FAQ accordion
Installation
npx shadcn@latest add @saastro/faq-01Preview
Frequently Asked Questions
Everything you need to know about the blocks.
Source Code
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from '@/components/ui/accordion';
import { cn } from '@/lib/utils';
type FaqItem = {
question: string;
answer: string;
};
type Faq01Props = {
title?: string;
description?: string;
items: FaqItem[];
className?: string;
};
export function Faq01({
title = 'Frequently Asked Questions',
description,
items,
className,
}: Faq01Props) {
return (
<section className={cn('w-full px-6 py-24 md:py-32', className)}>
<div className="mx-auto max-w-3xl">
<div className="mb-12 text-center">
<h2 className="text-3xl font-bold tracking-tight sm:text-4xl">{title}</h2>
{description && <p className="mt-4 text-lg text-muted-foreground">{description}</p>}
</div>
<Accordion type="single" collapsible className="w-full">
{items.map((item, index) => (
<AccordionItem key={index} value={`item-${index}`}>
<AccordionTrigger className="text-left text-base">{item.question}</AccordionTrigger>
<AccordionContent className="text-muted-foreground">{item.answer}</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
</section>
);
}
Registry Setup
Add the Saastro registry to your components.json:
{
"registries": {
"@saastro": "https://ui.saastro.io/r/{name}.json"
}
}