guillermo
faq accepted

LedgerFAQ

Answer objections plainly, on the record.

FixtureViewport

Structural distinction

Numbered question ledger on native details/summary with a sticky masthead column. Works without JavaScript; height animation only where the platform supports interpolate-size; entries are deep-linkable (#faq-id opens and scrolls).

Use when

Decision-support placement near pricing or the close, when real objections exist and can be answered concretely.

Avoid when

Marketing copy disguised as questions; more than ~8 items (split by topic); content that belongs in docs.

Accessibility

Native details/summary semantics (works with JS off). Questions are real headings one level below the section headline. Deep links use history.replaceState, no scroll hijack.

scroll

Entries rise in staggered as the ledger enters; the list rule draws in.

hover

The evidence-row chord: ink wash, ordinal warms, hairline underline, marker leans.

press

Native disclosure toggles; expansion animates where supported, instant elsewhere and under reduced motion.

focus

Native summary focus in document order; theme ring inset.

reduced

Instant open/close; entrance instant; all content in the initial payload.

Usage

import { LedgerFAQ } from "@guillermo/marketing";

<LedgerFAQ
  content={{
    headline: "The questions people actually ask.",
    items: [{ id: "a", question: "…?", answer: "…" }],
  }}
/>