FAQ

Always-Open FAQ with Intro

FAQ with an intro column holding the heading and a support link, beside an always-open list of six questions and answers. No accordion; every answer is visible.

Free, MIT licenseOpen in Browse
import {
  FaqList,
  FaqListAnswer,
  FaqListItem,
  FaqListQuestion,
} from "@/components/editorial/faq-list"
import { Heading } from "@/components/editorial/heading"
import {
  Section,
  SectionColumns,
  SectionContent,
  SectionDescription,
  SectionHeader,
  SectionTitleGroup,
} from "@/components/editorial/section"

// The copy: change text here, not in the markup.
const COPY = {
  title: "Frequently asked questions",
  support: {
    lead: "Can’t find the answer you need? Write to ",
    label: "customer support",
    tail: " and a person replies within one business day.",
  },
} as const

const FAQS = [
  {
    id: "install",
    question: "How do I install a block?",
    answer:
      "Copy the command under any block in Browse and run it in your project. The shadcn CLI drops the source files into your components folder and adds the dependencies it needs.",
  },
  {
    id: "existing",
    question: "Does it work with components I already have?",
    answer:
      "Yes. The kit uses the same tokens, folder layout and primitives as a stock shadcn project, so a block sits next to what you built without a second theme.",
  },
  {
    id: "customize",
    question: "Can I change the copy and the layout?",
    answer:
      "Every block keeps its words in a constant at the top of the file and its layout in named parts. Edit the constant for copy; swap or remove a part for layout.",
  },
  {
    id: "updates",
    question: "What happens when a block is updated?",
    answer:
      "Nothing, until you ask. Re-run the install command to pull the new version; the CLI shows a diff and never overwrites an edited file without confirming.",
  },
  {
    id: "dark",
    question: "Is dark mode included?",
    answer:
      "Every block renders in both modes from the same tokens. The previews in Browse show each one light and dark so you can check before installing.",
  },
  {
    id: "license",
    question: "Can I use it for client work?",
    answer:
      "One license covers unlimited projects for yourself and for clients. The only thing it excludes is redistributing the blocks themselves.",
  },
] as const

export default function OpenFaq01() {
  return (
    <Section>
      <SectionContent>
        <SectionColumns variant="intro">
          <SectionHeader size="sm">
            <SectionTitleGroup>
              <Heading>{COPY.title}</Heading>
            </SectionTitleGroup>
            <SectionDescription>
              {COPY.support.lead}
              <a
                href="#"
                className="font-medium text-foreground underline underline-offset-3"
              >
                {COPY.support.label}
              </a>
              {COPY.support.tail}
            </SectionDescription>
          </SectionHeader>
          <FaqList>
            {FAQS.map((faq) => (
              <FaqListItem key={faq.id}>
                <FaqListQuestion>{faq.question}</FaqListQuestion>
                <FaqListAnswer>{faq.answer}</FaqListAnswer>
              </FaqListItem>
            ))}
          </FaqList>
        </SectionColumns>
      </SectionContent>
    </Section>
  )
}

Installation

pnpm dlx shadcn add @01orbital/open-faq-01
npx shadcn add @01orbital/open-faq-01
yarn shadcn add @01orbital/open-faq-01
bunx --bun shadcn add @01orbital/open-faq-01

Free under the MIT license. Add the @01orbital registry to components.json once (install guide), then run the command.

It lands at components/blocks/faq/open-faq-01/index.tsx, as source you own and edit.

Usage

import OpenFaq01 from "@/components/blocks/faq/open-faq-01"

export default function Example() {
  return <OpenFaq01 />
}

Dependencies

Registry pieces it installs with it: