Accordion

ui
container
control

Stacked expandable sections — FAQ, settings groups, disclosure lists

Reveal long-form content on demand without leaving the surface

import { Accordion } from "@everydayos/ui";

Usage

Single-open FAQ list; rows are filled `warm-gray-1`, with a `warm-gray-2` toggle button. Question is `editorial-s` Medium, body uses `RichText` for portable text.

<Accordion type="single" collapsible className="flex flex-col gap-1">
  {items.map((item) => (
    <AccordionItem
      key={item.id}
      value={item.id}
      className="rounded-sm bg-warm-gray-1 px-4 py-4"
    >
      <AccordionTrigger className="hover:no-underline">
        <Text size="editorial-s" weight="medium">{item.question}</Text>
        <span className="size-[43px] rounded-2xs bg-warm-gray-2 …" />
      </AccordionTrigger>
      <AccordionContent className="pt-2">
        <RichText value={item.answer} />
      </AccordionContent>
    </AccordionItem>
  ))}
</Accordion>

Composition

Pairs well with

Stack
Card

When to avoid

  • Only one disclosure section is needed — use Collapsible instead
  • Switching between peer views — use Tabs instead
  • Always-visible content — render directly, no accordion wrapper