Skip to content

No.195 · FAQ

Footnote FAQ

An FAQ written as two honest paragraphs: the phrases a reader would want to check carry footnote numbers, and opening one sets its answer as a note right under the line.

The prompt

The design brief behind this component — reuse it to regenerate, remix, or explain it.

Replace a stack of FAQ accordions with prose. Write what the product does in a couple of paragraphs set in a serif at reading size; the claims a reader would want to check ('its own preview address', 'per seat, monthly or yearly', 'you can leave whenever you like') are inline role=button spans (so they can wrap across lines, which <button> can't) with a dotted accent underline and a small mono superscript number, numbered in reading order. Pressing one inserts its note under that paragraph: a panel with a 2px accent rule on its left, the number, the question in bold and the answer, opening with a grid-template-rows reveal (520ms expo-out) while the answer fades and drops into place. Several notes can be open at once; the phrase stays washed in the accent while its note is open, and each note has a close button that returns focus to its phrase. Below the prose, an 'All questions' index lists every question with its number, for people who scan; choosing one opens the note and moves focus to its phrase. Each note has a deep link (#faq-3) that opens it on load. Phrases are role=button spans (Enter and Space work) with aria-expanded and aria-controls, and their accessible name includes the question; closed notes are inert.

Notes

Interaction
Press an underlined phrase (or a question in the index) to open its note under the paragraph; press it again or the × to close.
Motion
Notes open with a grid-rows reveal (520ms) and the answer fades in 120ms later; underline and wash fade 200ms.
Accessibility
Phrases are role=button spans (Enter and Space work) with aria-expanded/aria-controls whose names include the question, so a screen reader hears 'per seat, monthly or yearly, note 4: What counts as a seat?'. Notes are labelled regions and inert while closed. The index is a nav of real links with hash deep links. Reduced motion opens notes instantly.
Responsive
Prose reflows like any paragraph; notes take the full measure. Works from 320px up.

Featured

301 components