Pattern catalog · 5 of 5 loaded
v1.0Spring 2026Internal reference
Web Build Templates
Pattern Reference

FAQ library

5 FAQ patterns
v1.0 · Spring 2026
Live

Five FAQ patterns — from the searchable accordion to the decision tree. Pick based on whether buyers have a few questions or many branching ones.

How to use this: Most FAQs default to the accordion. That's fine for fewer than 15 questions and a single audience. Beyond that — multiple audiences, conditional answers, complex products — the topic cards or decision tree pattern serves better.

Prose Q&A is underused but converts well for premium services where the FAQ doubles as a voice piece. Don't pad — every question should be one a real person actually asks.

01

Searchable Accordion

Classic

The accordion done well — searchable, categorized, with anchors. The default that doesn't feel default. For documentation-heavy products.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,600&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#fafafa;color:#0a0a0a;line-height:1.55}
.s{padding:48px 36px;max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.hd{text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center}
.k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a4341e;font-weight:600}
.h{font-family:'Fraunces',serif;font-weight:400;font-size:48px;letter-spacing:-.025em;line-height:1.05}
.h em{font-style:italic;color:#a4341e}
.sb{font-size:15px;color:#666;max-width:48ch}
.sf{display:flex;align-items:center;gap:10px;padding:13px 18px;background:#fff;border:1px solid #e5e5e5;border-radius:999px;font-size:14px;color:#0a0a0a;width:100%;max-width:420px;margin:0 auto}
.sf::before{content:"⌘";color:#999;font-size:14px}
.sf input{flex:1;border:none;outline:none;font-family:inherit;font-size:14px;background:transparent}
.sf input::placeholder{color:#aaa}
.cats{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:6px}
.c{padding:7px 14px;background:#fff;border:1px solid #e5e5e5;color:#444;font-family:inherit;font-size:13px;font-weight:500;border-radius:999px;cursor:pointer}
.c:hover{border-color:#0a0a0a}
.c.ac{background:#0a0a0a;border-color:#0a0a0a;color:#fff}
.c span{font-family:'Fraunces',serif;font-style:italic;font-size:11px;color:#999;margin-left:4px}
.c.ac span{color:#aaa}
.qs{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e5e5;border-radius:14px;overflow:hidden;margin-top:14px}
.q{border-bottom:1px solid #f0f0f0;padding:0}
.q:last-child{border-bottom:none}
.q summary{padding:18px 24px;cursor:pointer;list-style:none;display:flex;align-items:start;justify-content:space-between;gap:18px}
.q summary::-webkit-details-marker{display:none}
.q summary::after{content:"+";color:#a4341e;font-size:20px;font-weight:300;flex-shrink:0;font-family:'Fraunces',serif;line-height:1.2;transition:transform .25s}
.q[open] summary::after{content:"−"}
.q summary:hover{background:#fafafa}
.qq{font-family:'Fraunces',serif;font-weight:600;font-size:18px;line-height:1.4;letter-spacing:-.005em;color:#0a0a0a}
.qq em{font-style:italic;color:#a4341e;font-weight:400}
.qq .cat{display:inline-block;font-family:'Inter',sans-serif;font-size:10px;color:#a4341e;background:#fae8e3;padding:2px 8px;border-radius:999px;margin-right:8px;letter-spacing:.05em;text-transform:uppercase;font-weight:600;vertical-align:middle}
.qa{padding:0 24px 22px 24px;font-size:15px;line-height:1.65;color:#444}
.qa em{font-style:italic;color:#a4341e}
.qa b{color:#0a0a0a;font-weight:500}
.qa a{color:#a4341e;text-decoration:underline;text-underline-offset:3px}
.qa code{background:#f5f5f5;padding:1px 6px;border-radius:4px;font-family:'SF Mono',monospace;font-size:13px;color:#a4341e}
.f{margin-top:14px;padding:18px 24px;background:#fff;border-radius:14px;border:1px solid #e5e5e5;display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#666;flex-wrap:wrap;gap:14px}
.f b{color:#0a0a0a;font-weight:600}
.f a{color:#a4341e;text-decoration:underline}
@media(max-width:680px){.s{padding:32px 18px}.h{font-size:32px}}</style></head><body><section class="s">
<header class="hd"><div class="k">Frequently asked</div><h1 class="h">The <em>actual questions</em>, with answers.</h1><p class="sb">Search, filter by topic, or scroll. If you don't see your question, every team member's email is at the bottom.</p>
<div class="sf">⌘ <input placeholder="Search questions… (try 'pricing' or 'cancel')"></div>
<div class="cats"><button class="c ac">All <span>14</span></button><button class="c">Pricing <span>4</span></button><button class="c">Setup <span>3</span></button><button class="c">Security <span>2</span></button><button class="c">Billing <span>3</span></button><button class="c">Other <span>2</span></button></div></header>
<div class="qs">
<details class="q" open><summary><div class="qq"><span class="cat">Pricing</span>Do I really pay <em>nothing</em> if my deal doesn't close?</div></summary><div class="qa">Correct. Our $495 fee is paid through escrow at closing. <b>If the contract falls apart for any reason</b> — financing, inspection, appraisal, buyer's remorse — you owe us nothing. We don't bill you for the work we already did. <em>It's the only way we want to do this.</em></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Pricing</span>Why is your fee <em>flat</em> instead of percentage-based?</div></summary><div class="qa">Because the work is the same regardless of whether the home is $250K or $1.2M. Charging a percentage would punish your higher-priced deals without delivering more value. <b>Flat fees keep us honest.</b></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Setup</span>How quickly can you take on a contract?</div></summary><div class="qa">Same day, usually within 2 hours of you sending us the executed contract. Faster if it's already a tight closing. <em>Send it to <a>contracts@bayareatm.com</a> or use the form on the contact page.</em></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Setup</span>Do you handle <em>both sides</em> of a deal?</div></summary><div class="qa">If you're representing both buyer and seller (rare in FL but legal), yes. If we're already on the other side of the deal, we'll let you know up front so you can choose another TC. <b>We never represent both agents on the same transaction.</b></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Security</span>Is my client's <em>financial info</em> safe with you?</div></summary><div class="qa">Yes. We use end-to-end encrypted email for sensitive documents and our case management system is SOC 2 Type II audited. We never share buyer/seller financials with anyone outside the transaction. <a>Read our security overview →</a></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Billing</span>How do I get an invoice for <em>my brokerage</em>?</div></summary><div class="qa">We send a closing statement to escrow and a copy directly to you for your records. If your brokerage requires their own invoice format, just send us the template — we'll fill it out at closing. <b>Most brokerages accept our standard form.</b></div></details>
<details class="q"><summary><div class="qq"><span class="cat">Other</span>What happens if you go on <em>vacation</em>?</div></summary><div class="qa">Each agent has a primary TC and a backup TC. <b>The backup is briefed on every active file.</b> If your TC takes a day off mid-deal, the backup steps in seamlessly. We document every file the same way for exactly this reason.</div></details>
</div>
<div class="f"><b>Still have a question?</b><a>Email Rose directly →</a></div>
</section></body></html>
02

Prose Q&A

Editorial

FAQ written as flowing prose — questions in italic, answers as paragraphs. Reads like a long letter. For premium services, considered brands.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'EB Garamond',serif;background:#fcfaf5;color:#1a1612;line-height:1.65;font-size:18px}
.s{padding:64px 0;max-width:680px;margin:0 auto;padding-left:48px;padding-right:48px}
.dl{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7a6f5f;margin-bottom:32px;display:flex;align-items:center;gap:10px}
.dl::after{content:"";flex:1;height:1px;background:#d4cabb;max-width:200px}
.k{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9c4a2c;font-weight:600;margin-bottom:8px}
.h{font-style:italic;font-size:42px;font-weight:400;letter-spacing:-.005em;margin-bottom:36px;line-height:1.1}
.h em{color:#9c4a2c}
.qa{margin-bottom:36px}
.qq{font-family:'EB Garamond',serif;font-style:italic;font-size:24px;color:#9c4a2c;line-height:1.35;margin-bottom:14px;font-weight:400}
.qq::before{content:"Q. ";font-style:normal;font-weight:500}
.aa{font-size:18px;line-height:1.65}
.aa::before{content:"A. ";font-family:'Inter',sans-serif;font-style:normal;font-size:13px;letter-spacing:.06em;color:#9c4a2c;font-weight:600;text-transform:uppercase;display:inline-block;margin-right:8px;vertical-align:baseline}
.aa em{font-style:italic;color:#9c4a2c}
.aa b{font-weight:500}
.aa a{color:#1a1612;text-decoration:underline;text-decoration-color:#9c4a2c;text-decoration-thickness:2px;text-underline-offset:3px}
.div{height:1px;background:#d4cabb;margin:36px 0;width:60px}
.f{margin-top:36px;padding-top:24px;border-top:1px solid #d4cabb;font-family:'Inter',sans-serif;font-size:13px;color:#7a6f5f;display:flex;justify-content:space-between;align-items:center}
.f a{color:#9c4a2c;text-decoration:underline;text-underline-offset:3px}
@media(max-width:780px){.s{padding:32px 24px}.h{font-size:28px}.qq{font-size:20px}}</style></head><body><section class="s">
<div class="dl">Notes from the workshop · Spring 2026</div><div class="k">A few questions, before you write</div>
<h1 class="h">The questions <em>I'm asked most often</em>.</h1>
<div class="qa"><div class="qq">How long does a piece take to make?</div><p class="aa">Between four and twelve weeks, depending on the piece. A simple chair, four to five. A dining table with hand-cut joinery, eight to ten. A casework piece — anything with doors, drawers, or hardware — closer to twelve. <em>The wait is part of the price.</em> I make about forty pieces a year, by hand, in a 600 sq ft shop, and most of them are spoken for before they're finished.</p></div>
<div class="div"></div>
<div class="qa"><div class="qq">Do you take <em>commissions</em>, or only sell from the catalog?</div><p class="aa">Both, but commissions are limited and slow. <b>I take three or four a year.</b> If you have a specific piece in mind, write to me with photographs of the space, your rough dimensions, your timing, and a budget range. I'll write back within four days letting you know whether it's something I can take on.</p></div>
<div class="div"></div>
<div class="qa"><div class="qq">What woods do you use?</div><p class="aa">Mostly black walnut, white oak, and cherry — sourced from a small mill in Vermont I've worked with for six years. Occasionally maple, sometimes ash. <em>I don't work with exotic species or imported hardwoods,</em> not for any moralistic reason but because the wood I have access to is interesting enough.</p></div>
<div class="div"></div>
<div class="qa"><div class="qq">Can I visit the <em>workshop</em>?</div><p class="aa">Yes, on Tuesdays, by appointment. The shop is small and I work alone most days, so visits work best when there's something to see — a piece in progress, or a finished piece before it ships. Drop me a note at <a>dean@hollowco.com</a> a week or so out, and I'll suggest a time that works.</p></div>
<div class="f"><div>Hollow &amp; Co. · Camden, Maine · Est. 2019</div><a>More questions →</a></div>
</section></body></html>
03

Chat Conversation

Conversational

FAQ as a chat thread — two voices, alternating. Feels like overhearing a real conversation. For consumer brands, modern services, friendly tones.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Newsreader:ital,opsz,wght@0,6..72,400;1,6..72,400&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#fdf8f0;color:#2a2520;line-height:1.55}
.s{padding:48px 32px;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.hd{text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center;margin-bottom:8px}
.k{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#c9956a;font-weight:600}
.h{font-family:'Newsreader',serif;font-weight:400;font-size:42px;letter-spacing:-.015em;line-height:1.1}
.h em{font-style:italic;color:#c9956a}
.sb{font-size:14px;color:#86796a;max-width:42ch}
.thr{display:flex;flex-direction:column;gap:14px}
.m{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}
.m.them{grid-template-columns:1fr 36px}
.m.them .av{order:2}.m.them .bb{order:1;justify-self:end;background:#2a2520;color:#fdf8f0;border-color:#2a2520;border-radius:18px 18px 4px 18px;text-align:left}
.m.them .nm{order:1;text-align:right}
.av{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-style:italic;color:#fff;font-size:18px;background:linear-gradient(135deg,#c9956a,#e8c89f)}
.m.them .av{background:#2a2520;color:#fdf8f0;font-style:normal;font-family:'Inter',sans-serif;font-weight:600;font-size:13px}
.bb-w{display:flex;flex-direction:column;gap:4px}
.nm{font-size:11px;color:#86796a;letter-spacing:.04em;font-weight:600;padding:0 4px;text-transform:uppercase}
.bb{background:#fff;padding:14px 18px;border-radius:18px 18px 18px 4px;font-size:15px;line-height:1.55;border:1px solid #e8d9bd;color:#2a2520}
.bb b{font-weight:600}
.bb em{font-style:italic;color:#c9956a}
.bb a{color:#c9956a;text-decoration:underline;text-underline-offset:3px}
.m.them .bb em{color:#e8c89f}
.div{display:flex;align-items:center;gap:12px;padding:8px 0;color:#86796a;font-family:'Newsreader',serif;font-style:italic;font-size:13px;justify-content:center}
.div::before,.div::after{content:"";flex:1;height:1px;background:#e8d9bd;max-width:60px}
.f{margin-top:18px;padding:18px 24px;background:#fff;border:1px solid #e8d9bd;border-radius:14px;text-align:center;font-size:14px;color:#5a5347;line-height:1.55}
.f b{color:#2a2520}
.f a{color:#c9956a;text-decoration:underline;text-underline-offset:3px;font-weight:500}
@media(max-width:680px){.h{font-size:28px}}</style></head><body><section class="s">
<header class="hd"><div class="k">— Conversations we have a lot</div><h1 class="h">The <em>Q&amp;A</em>, lightly edited.</h1><p class="sb">Real questions, asked a few different ways, answered the way I'd answer them on the phone.</p></header>
<div class="thr">
<div class="m them"><div class="av">YOU</div><div class="bb-w"><div class="nm">A new member</div><div class="bb">Hey — found your site through a friend. Is the <em>$12/mo really</em> what you charge? Seems too low.</div></div></div>
<div class="m"><div class="av">M</div><div class="bb-w"><div class="nm">Marin, founder</div><div class="bb">It is. <b>The full membership tier is what you make of it</b> — you can pay $4 if money's tight, $24 if you want to subsidize someone else. Median is around $8.</div></div></div>
<div class="div">~ same day later ~</div>
<div class="m them"><div class="av">YOU</div><div class="bb-w"><div class="nm">A different new member</div><div class="bb">What do I actually <em>get</em> for that?</div></div></div>
<div class="m"><div class="av">M</div><div class="bb-w"><div class="nm">Marin</div><div class="bb">Two letters a week, a private discussion thread, monthly Q&amp;A calls (live), and the back catalog. <b>If it isn't worth it after 90 days, I'll refund the year.</b> Has happened twice.</div></div></div>
<div class="div">~ another day ~</div>
<div class="m them"><div class="av">YOU</div><div class="bb-w"><div class="nm">Yet another</div><div class="bb">Can I read a few before subscribing?</div></div></div>
<div class="m"><div class="av">M</div><div class="bb-w"><div class="nm">Marin</div><div class="bb">Yes — about 30% of the archive is open. Start with <a>"On the Difficulty of Being Mid"</a> or <a>"Six Reasons I Stopped Reading Twitter"</a>. <em>Those two say a lot about whether we'll get along.</em></div></div></div>
<div class="div">~ a week later ~</div>
<div class="m them"><div class="av">YOU</div><div class="bb-w"><div class="nm">A current member</div><div class="bb">My partner asked me what this is, and I realized I don't have a great answer 😅</div></div></div>
<div class="m"><div class="av">M</div><div class="bb-w"><div class="nm">Marin</div><div class="bb">Honestly: <em>"a guy I read"</em> works. <b>"A small-circulation essay newsletter for people exhausted by news cycles"</b> if you need to be more formal. Both true.</div></div></div>
</div>
<div class="f"><b>Still have a question?</b> Reply to any letter, or just write to me. <a>marin@theperiphery.com</a></div>
</section></body></html>
04

Decision Tree

Functional

FAQ structured as a decision tree — visitor self-routes to the right answer. For complex products with branching scenarios.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'JetBrains Mono',monospace;background:#fafaf7;color:#000;font-size:13px;line-height:1.5}
.s{padding:32px;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.bar{display:grid;grid-template-columns:repeat(12,1fr);border:2px solid #000}
.bar > *{padding:12px 16px;border-right:1px solid #000;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.bar > *:last-child{border-right:none}
.b1{grid-column:span 4;font-weight:700}.b2{grid-column:span 5;color:#666}.b3{grid-column:span 3;text-align:right}
.tit{padding:32px 28px;border:2px solid #000;border-top:none;background:#fff}
.tit h1{font-size:36px;font-weight:700;letter-spacing:-.025em;line-height:1.0;text-transform:uppercase}
.tit h1 .ac{background:#e6ff3c;padding:0 8px}
.tit p{margin-top:14px;font-size:13px;color:#555;max-width:60ch;line-height:1.55}
.start{display:grid;grid-template-columns:140px 1fr;background:#000;color:#fafaf7;border:2px solid #000}
.start .lbl{padding:18px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px;letter-spacing:-.02em;background:#000;border-right:1px solid rgba(255,255,255,.2)}
.start .qq{padding:20px 24px;font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.start .qq em{font-style:italic;color:#e6ff3c}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid #000;border-top:none}
.opts .opt{padding:24px;background:#fff;cursor:pointer;border-right:1px solid #000;display:flex;flex-direction:column;gap:14px;font-family:inherit;color:#000;text-align:left}
.opts .opt:last-child{border-right:none}
.opts .opt:hover{background:#e6ff3c}
.opts .opt b{font-size:18px;font-weight:700;letter-spacing:-.005em;line-height:1.3;display:flex;justify-content:space-between;align-items:center}
.opts .opt b::after{content:"→";opacity:.5;font-size:24px}
.opts .opt:hover b::after{opacity:1}
.opts .opt span{font-size:11px;color:#666;letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.path{padding:18px 22px;background:#1a1a1a;color:#fafaf7;border:2px solid #000;display:flex;align-items:center;gap:18px;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.path .step{padding:6px 12px;background:#fafaf7;color:#000;font-weight:700}
.path .arr{color:#e6ff3c;font-size:18px}
.path .cur{padding:6px 12px;background:#e6ff3c;color:#000;font-weight:700}
.r{display:grid;grid-template-columns:140px 1fr;border:2px solid #000;background:#e6ff3c;color:#000}
.r .lbl{padding:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;background:#000;color:#e6ff3c;border-right:2px solid #000}
.r .lbl b{font-size:11px;letter-spacing:.1em}
.r .lbl span{font-family:'JetBrains Mono',monospace;font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1;margin-top:4px}
.r .ans{padding:24px;display:flex;flex-direction:column;gap:14px}
.r .ans h3{font-size:18px;font-weight:700;letter-spacing:-.005em}
.r .ans h3 em{font-style:italic}
.r .ans p{font-size:13px;line-height:1.55;color:#1a1a1a}
.r .ans p b{font-weight:700}
.r .ans .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.r .ans .actions button{padding:9px 16px;background:#000;color:#e6ff3c;border:none;font-family:inherit;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.r .ans .actions button:hover{background:#fafaf7;color:#000}
.r .ans .actions button.alt{background:#fafaf7;color:#000;border:1px solid #000}
.r .ans .actions button.alt:hover{background:#000;color:#fafaf7}
@media(max-width:780px){.s{padding:18px 14px}.opts{grid-template-columns:1fr}.opts .opt{border-right:none;border-bottom:1px solid #000}.opts .opt:last-child{border-bottom:none}.tit h1{font-size:24px}.start,.r{grid-template-columns:1fr}.start .lbl,.r .lbl{border-right:none;border-bottom:1px solid rgba(255,255,255,.2);padding:12px}}</style></head><body><section class="s">
<div class="bar"><div class="b1">FAQ://DECISION-TREE</div><div class="b2">Self-route in 2–3 questions to the right answer</div><div class="b3">v0.4.2</div></div>
<div class="tit"><h1>Need <span class="ac">help</span>? Pick a path.</h1><p>Most questions branch into different answers depending on context. Rather than 40 separate FAQ entries, this tree gets you to the right one in two clicks.</p></div>
<div class="path"><span class="step">Q1 ✓</span><span class="arr">→</span><span class="cur">Q2</span><span class="arr">→</span><span style="opacity:.5">Q3</span><span class="arr">→</span><span style="opacity:.5">Answer</span></div>
<div class="start"><div class="lbl">Q2/3</div><div class="qq">You said you're a <em>new agent</em>. What's bringing you here today?</div></div>
<div class="opts">
<button class="opt"><b>I'm under contract right now</b><span>need help with an active deal</span></button>
<button class="opt"><b>I'm trying to plan ahead</b><span>not yet under contract — researching</span></button>
</div>
<div class="r"><div class="lbl"><b>Recommended<br>answer</b><span>A4</span></div><div class="ans"><h3>For new agents <em>under contract</em>: send the contract over now.</h3><p>We'll review it within 2 hours, open the file, and email you with the timeline. <b>If you have any questions about contingencies or timeline, those get answered as part of intake.</b> Don't wait — even small delays compound.</p><div class="actions"><button>Send contract →</button><button class="alt">Different question</button><button class="alt">Back to start</button></div></div></div>
</section></body></html>
05

Topic Cards

Visual

FAQ as topic cards in a grid — each card opens to its own set of questions. For products with very different audiences asking very different things.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Geist',sans-serif;background:#fafafa;color:#0a0a0a;line-height:1.55}
.s{padding:48px 36px;max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
.hd{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;border-bottom:1px solid #e5e5e5;padding-bottom:24px}
.k{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#666;margin-bottom:14px}
.h{font-size:48px;font-weight:600;letter-spacing:-.025em;line-height:1.05}
.h em{font-style:italic}
.sb{font-size:15px;color:#666;line-height:1.55;max-width:38ch;padding-bottom:6px}
.gr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.tc{background:#fff;border:1px solid #e5e5e5;border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:14px;cursor:pointer;transition:all .25s;text-align:left;font-family:inherit;color:#0a0a0a}
.tc:hover{transform:translateY(-3px);box-shadow:0 18px 32px -16px rgba(0,0,0,.12);border-color:#0a0a0a}
.tc.ac{background:#0a0a0a;color:#fff;border-color:#0a0a0a}
.tc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.tc-ic{width:40px;height:40px;background:#f5f5f5;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#0a0a0a}
.tc.ac .tc-ic{background:rgba(255,255,255,.1);color:#fff}
.tc-cnt{font-family:'Geist Mono',monospace;font-size:11px;color:#999;letter-spacing:.06em;background:#f5f5f5;padding:4px 9px;border-radius:999px;font-weight:500}
.tc.ac .tc-cnt{background:rgba(255,255,255,.1);color:#bbb}
.tc-name{font-size:21px;font-weight:600;letter-spacing:-.015em;line-height:1.2}
.tc-desc{font-size:13px;color:#666;line-height:1.55;flex:1}
.tc.ac .tc-desc{color:#aaa}
.tc-foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #f0f0f0;font-family:'Geist Mono',monospace;font-size:11px;color:#999;letter-spacing:.06em;text-transform:uppercase}
.tc.ac .tc-foot{border-color:rgba(255,255,255,.1);color:#aaa}
.tc-foot::after{content:"→";font-size:14px;color:#0a0a0a}
.tc.ac .tc-foot::after{color:#fff}
.qs{background:#fff;border:1px solid #e5e5e5;border-radius:14px;padding:0;overflow:hidden}
.qs-h{padding:20px 28px;background:#0a0a0a;color:#fff;display:flex;justify-content:space-between;align-items:center}
.qs-h h3{font-size:18px;font-weight:600;letter-spacing:-.01em}
.qs-h h3 em{font-style:italic;color:#5eead4}
.qs-h .cnt{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.06em;color:#aaa}
.qs-l{display:flex;flex-direction:column}
.q{padding:18px 28px;border-bottom:1px solid #f0f0f0;cursor:pointer}
.q:last-child{border-bottom:none}
.q:hover{background:#fafafa}
.q .qq{font-size:15px;font-weight:500;color:#0a0a0a;display:flex;justify-content:space-between;align-items:center;gap:18px}
.q .qq::after{content:"→";color:#5eead4;font-weight:600;flex-shrink:0;font-size:14px}
.q .qa{font-size:13px;color:#555;line-height:1.55;margin-top:6px;display:none}
.q.open .qa{display:block}
.q.open .qq::after{content:"−"}
@media(max-width:880px){.gr{grid-template-columns:1fr}.hd{grid-template-columns:1fr;gap:14px}.h{font-size:32px}}</style></head><body><section class="s">
<header class="hd"><div><div class="k">— Pick what's relevant to you</div><h1 class="h">Help, <em>by topic</em>.</h1></div><p class="sb">Six topics, ~40 total questions. Open whichever applies — or use the search if you'd rather skip the categorization.</p></header>
<div class="gr">
<button class="tc ac"><div class="tc-top"><div class="tc-ic">⚡</div><span class="tc-cnt">9 questions</span></div><div class="tc-name">Getting started</div><p class="tc-desc">First-time setup, account creation, model selection, your first API call.</p><div class="tc-foot">Currently viewing</div></button>
<button class="tc"><div class="tc-top"><div class="tc-ic">$</div><span class="tc-cnt">12 questions</span></div><div class="tc-name">Pricing &amp; billing</div><p class="tc-desc">How tokens are counted, invoicing, refunds, plan changes, enterprise pricing.</p><div class="tc-foot">View topic</div></button>
<button class="tc"><div class="tc-top"><div class="tc-ic">⌥</div><span class="tc-cnt">7 questions</span></div><div class="tc-name">API &amp; SDKs</div><p class="tc-desc">Authentication, rate limits, retries, error codes, language SDKs.</p><div class="tc-foot">View topic</div></button>
<button class="tc"><div class="tc-top"><div class="tc-ic">🔒</div><span class="tc-cnt">6 questions</span></div><div class="tc-name">Security &amp; compliance</div><p class="tc-desc">Data retention, SOC 2, HIPAA, PII handling, regional residency.</p><div class="tc-foot">View topic</div></button>
<button class="tc"><div class="tc-top"><div class="tc-ic">●</div><span class="tc-cnt">5 questions</span></div><div class="tc-name">Models &amp; capabilities</div><p class="tc-desc">Available models, fine-tuning, custom models, context windows.</p><div class="tc-foot">View topic</div></button>
<button class="tc"><div class="tc-top"><div class="tc-ic">⚙</div><span class="tc-cnt">4 questions</span></div><div class="tc-name">Account &amp; teams</div><p class="tc-desc">Adding teammates, SSO, roles, audit logs, deleting accounts.</p><div class="tc-foot">View topic</div></button>
</div>
<div class="qs"><div class="qs-h"><h3>Getting <em>started</em></h3><span class="cnt">9 questions · ~3 min read</span></div><div class="qs-l">
<div class="q open"><div class="qq">How do I make my first API call?</div><div class="qa">After creating an account, generate an API key in Settings → API Keys. Then use any HTTP client to POST to <code>https://api.lumen.ai/v1/chat/completions</code> with your key in the Authorization header. The full quickstart is in our docs and takes about 4 minutes.</div></div>
<div class="q"><div class="qq">Which model should I start with?</div></div>
<div class="q"><div class="qq">Do I need a credit card to sign up?</div></div>
<div class="q"><div class="qq">How long does verification take?</div></div>
<div class="q"><div class="qq">Can I import from OpenAI / Anthropic?</div></div>
</div></div>
</section></body></html>
Copied