FAQ — .mv-faq
Editorial FAQ section: numbered questions in a mono gutter on hairline rules, a topic-sorted version with a sticky index (dotted leaders, counts) and a contact note, or an open grid of numbered answers.
| Category | Blocks |
|---|---|
| Type | Block (ready-made section) (.mv-faq) |
| Status | stable |
| Also installs | accordion, button |
| Keywords | faq, questions, accordion, support, help, landing, index |
When to use
- A landing or support page needs an editorial FAQ with numbered questions on hairline rules
- Many questions must be grouped by topic with a sticky index and a contact note
- Short answers should all stay visible in a numbered grid without collapsing
Avoid when
- Collapsible content is not a Q&A section, such as settings or product details → use Accordion instead
Install
node scripts/add.mjs faq --out ./src/marvelousAI agent with the Marvelous UI MCP server: install_components({ slugs: ["faq"], target_dir: "<absolute path>/src/marvelous", framework: "react" }).
Files copied (dependencies included): tokens/tokens.css, core/base.css, components/faq/faq.css, core/dom.js, core/element.js, components/accordion/accordion.css, components/accordion/accordion.js, components/button/button.css.
Usage
Canonical markup — start from it and customize with attributes, data-* and CSS variables:
<mv-tabs id="faq-demo" value="index" data-size="sm" style="gap:0;background:var(--mv-bg)">
<style>#faq-demo > [role="tablist"] { justify-self: center; margin: .75rem auto 0; }</style>
<div role="tablist" aria-label="Block variant">
<button role="tab" data-value="index">Numbered index</button>
<button role="tab" data-value="split">By topic</button>
<button role="tab" data-value="grid">Open grid</button>
</div>
<!-- ═════════ Default: numbered index ═════════ -->
<div role="tabpanel" data-value="index">
<section class="mv-faq" aria-labelledby="faq-i-title">
<div class="mv-faq-inner">
<header class="mv-faq-header">
<p class="mv-faq-eyebrow">FAQ <span class="mv-faq-count">/ 06</span></p>
<h2 class="mv-faq-title" id="faq-i-title">Questions teams ask before they move their docs</h2>
<p class="mv-faq-lead">Short, honest answers. If yours isn’t here, <a href="#faq-demo">write to the team</a> — a writer, not a bot, replies.</p>
</header>
<mv-accordion type="single" class="mv-faq-list">
<div class="mv-accordion" data-icon="plus">
<details class="mv-accordion-item" data-value="import" open>
<summary>Can we import our existing docs from Notion, Confluence or GitBook?</summary>
<div class="mv-accordion-content">
<p>Yes. The importer keeps your page tree, internal links, images and code blocks, and rewrites links that pointed to the old tool. A 2,000-page Confluence space usually takes under ten minutes.</p>
<span class="mv-faq-meta">Updated Sep 2026 · Migration</span>
</div>
</details>
<details class="mv-accordion-item" data-value="git">
<summary>Do the docs live in our repository or in your cloud?</summary>
<div class="mv-accordion-content"><p>Both, and you choose per space. Git-synced spaces are plain Markdown in your repo, edited through pull requests; cloud spaces are for teams that prefer to write in the browser. You can switch at any time without losing history.</p></div>
</details>
<details class="mv-accordion-item" data-value="stale">
<summary>How does Quillwork know a page is out of date?</summary>
<div class="mv-accordion-content"><p>Every code snippet can be linked to a file and a line range. When that code changes on your main branch, the page gets a “needs review” flag and its owner is notified in Slack or by email.</p></div>
</details>
<details class="mv-accordion-item" data-value="readers">
<summary>Do readers need an account?</summary>
<div class="mv-accordion-content"><p>Not for public sites. Private sites can be opened with your SSO provider, a shared link that expires, or an IP allowlist. Readers never count as paid seats.</p></div>
</details>
<details class="mv-accordion-item" data-value="domain">
<summary>Can we publish on our own domain?</summary>
<div class="mv-accordion-content"><p>Yes, on every plan, with an SSL certificate issued automatically. Point a CNAME at Quillwork and the site is live on docs.yourcompany.com within a few minutes.</p></div>
</details>
<details class="mv-accordion-item" data-value="leave">
<summary>What happens to our content if we leave?</summary>
<div class="mv-accordion-content"><p>It stays yours. Export everything as Markdown with front matter, or as a static HTML site you can host anywhere. Exports stay available for 90 days after you cancel.</p></div>
</details>
</div>
</mv-accordion>
<p class="mv-faq-footer">Still deciding?<a class="mv-button" data-variant="outline" data-size="sm" href="#faq-demo">Book a 20-minute walkthrough</a><span class="mv-faq-meta">Median reply time · 38 min</span></p>
</div>
</section>
</div>
<!-- ═════════ Split: topics ═════════ -->
<div role="tabpanel" data-value="split">
<section class="mv-faq" data-variant="split" aria-labelledby="faq-s-title">
<div class="mv-faq-inner">
<header class="mv-faq-header">
<p class="mv-faq-eyebrow">Help center</p>
<h2 class="mv-faq-title" id="faq-s-title">Answers, sorted by topic</h2>
<p class="mv-faq-lead">Jump to a topic, or scroll through all seven questions.</p>
<nav aria-label="FAQ topics">
<ul class="mv-faq-toc">
<li><a href="#faq-s-plans">Plans & billing <span class="mv-faq-toc-count">03</span></a></li>
<li><a href="#faq-s-security">Security <span class="mv-faq-toc-count">02</span></a></li>
<li><a href="#faq-s-writing">Writing & review <span class="mv-faq-toc-count">02</span></a></li>
</ul>
</nav>
<div class="mv-faq-contact">
<strong>Talk to a docs engineer</strong>
<p>Monday to Friday, 8 am – 8 pm CET. We read every message.</p>
<a class="mv-button" data-variant="outline" data-size="sm" href="#faq-demo">Open a conversation
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
</a>
</div>
</header>
<div class="mv-faq-groups">
<section class="mv-faq-group" id="faq-s-plans" aria-labelledby="faq-s-plans-t">
<h3 class="mv-faq-group-title" id="faq-s-plans-t">Plans & billing</h3>
<mv-accordion type="single" class="mv-faq-list">
<div class="mv-accordion" data-icon="plus">
<details class="mv-accordion-item" data-value="s-free" open>
<summary>Is there a free plan?</summary>
<div class="mv-accordion-content"><p>Teams of up to five writers get one public site, unlimited pages and Git sync for free, forever. Open-source projects get the Team plan at no cost.</p></div>
</details>
<details class="mv-accordion-item" data-value="s-seats">
<summary>Who counts as a paid seat?</summary>
<div class="mv-accordion-content"><p>Only people who edit. Reviewers who just leave comments and every reader are free.</p></div>
</details>
<details class="mv-accordion-item" data-value="s-invoice">
<summary>Can we pay by invoice?</summary>
<div class="mv-accordion-content"><p>Yes, on annual plans from ten seats, with 30-day payment terms and a purchase order number on every invoice.</p></div>
</details>
</div>
</mv-accordion>
</section>
<section class="mv-faq-group" id="faq-s-security" aria-labelledby="faq-s-security-t">
<h3 class="mv-faq-group-title" id="faq-s-security-t">Security</h3>
<mv-accordion type="single" class="mv-faq-list">
<div class="mv-accordion" data-icon="plus">
<details class="mv-accordion-item" data-value="s-region">
<summary>Where is our content stored?</summary>
<div class="mv-accordion-content"><p>In the EU (Frankfurt) or the US (Oregon), chosen when you create the workspace. Backups stay in the same region.</p></div>
</details>
<details class="mv-accordion-item" data-value="s-sso">
<summary>Do you support SSO and SCIM?</summary>
<div class="mv-accordion-content"><p>SAML SSO with Okta, Entra ID and Google Workspace is included in Business; SCIM provisioning in Enterprise.</p></div>
</details>
</div>
</mv-accordion>
</section>
<section class="mv-faq-group" id="faq-s-writing" aria-labelledby="faq-s-writing-t">
<h3 class="mv-faq-group-title" id="faq-s-writing-t">Writing & review</h3>
<mv-accordion type="single" class="mv-faq-list">
<div class="mv-accordion" data-icon="plus">
<details class="mv-accordion-item" data-value="s-mdx">
<summary>Can we use MDX components?</summary>
<div class="mv-accordion-content"><p>Yes. Tabs, callouts, API playgrounds and your own React components render in the editor exactly as they will on the site.</p></div>
</details>
<details class="mv-accordion-item" data-value="s-approve">
<summary>Can a page require approval before it goes live?</summary>
<div class="mv-accordion-content"><p>Set required reviewers per folder. Changes wait in a review until one of them approves, just like a protected branch.</p></div>
</details>
</div>
</mv-accordion>
</section>
</div>
</div>
</section>
</div>
<!-- ═════════ Grid ═════════ -->
<div role="tabpanel" data-value="grid">
<section class="mv-faq" data-variant="grid" aria-labelledby="faq-g-title" style="--mv-faq-bg:var(--mv-bg-subtle)">
<div class="mv-faq-inner">
<header class="mv-faq-header">
<p class="mv-faq-eyebrow">Good to know</p>
<h2 class="mv-faq-title" id="faq-g-title">The short version</h2>
<p class="mv-faq-lead">Six answers we give on almost every call, all in one place.</p>
</header>
<dl class="mv-faq-grid">
<div><dt>How long does a migration take?</dt><dd>Most teams import, review and publish in one afternoon. The importer handles the page tree and links; you mostly check the result.</dd></div>
<div><dt>Does it work with our CI?</dt><dd>Every pull request gets a preview site and a link checker run. GitHub Actions, GitLab CI and Buildkite are supported out of the box.</dd></div>
<div><dt>Can we theme the published site?</dt><dd>Colors, fonts and logo from the dashboard; full control with a custom CSS file or your own layout components.</dd></div>
<div><dt>Is search included?</dt><dd>Yes, instant full-text search with typo tolerance on every site, plus an optional “Ask the docs” answer box.</dd></div>
<div><dt>How are versions handled?</dt><dd>Each Git tag or branch can become a version with its own URL, and readers can switch versions from any page.</dd></div>
<div><dt>What about uptime?</dt><dd>Published sites are served from a global CDN with a 99.99% uptime commitment on Business and Enterprise.</dd></div>
</dl>
<p class="mv-faq-footer">Can’t find your answer?<a class="mv-button" data-variant="secondary" data-size="sm" href="#faq-demo">Browse the help center</a></p>
</div>
</section>
</div>
</mv-tabs>API
Attributes
| Name | Type | Default | Description |
|---|---|---|---|
data-variant | split | grid | (numbered index) | (default) header with title and lead side by side from 48rem, numbered accordion below; split: sticky side column (header, .mv-faq-toc topic index, .mv-faq-contact) next to .mv-faq-groups from 56rem; grid: numbered <dl>, nothing collapsed. |
Content structure
| Name | Description |
|---|---|
.mv-faq-header | -eyebrow (accent square, optional .mv-faq-count), -title, -lead; in split also nav > ul.mv-faq-toc and .mv-faq-contact. |
.mv-faq-list | On <mv-accordion> (or .mv-accordion): questions numbered automatically (01, 02…) across the whole section; use data-icon="plus" on the .mv-accordion. .mv-faq-meta for a mono line under an answer. |
ul.mv-faq-toc | Split variant: topic links (<a href="#group">label <span class="mv-faq-toc-count">03</span></a>) joined to their count by a dotted leader; aria-current="true" highlights one. |
.mv-faq-groups > section.mv-faq-group | Split variant: h3.mv-faq-group-title (mono) + one .mv-faq-list per topic; the title turns accent when the group is :target. |
dl.mv-faq-grid | Grid variant: <div><dt>question</dt><dd>answer</dd></div>, each prefixed with Q.01, Q.02… |
.mv-faq-footer | Closing line: text, button, optional .mv-faq-meta pushed to the end. |
CSS classes
| Name | Description |
|---|---|
mv-faq | Root section, mv-faq query container and numbering scope. |
CSS variables
| Name | Default | Description |
|---|---|---|
--mv-faq-sticky-top | var(--mv-space-8) | Sticky side column offset and group scroll margin (your navbar height). |
--mv-faq-max | 64rem | Max width. |
--mv-faq-columns | 2 | Grid variant columns from 44rem. |
--mv-faq-bg | transparent | Section background. |
Accessibility
Native <details>/<summary> accordion via the accordion component (keyboard, screen readers, Ctrl+F opens matches), exclusive opening with type="single" and ↑/↓/Home/End between questions. Numbers are CSS-generated with empty alternative text, so screen readers skip them. The topic index is a labeled <nav>; groups are labeled sections. The grid variant uses a semantic <dl>. An h2 title labels the section.