Documentation style guide
Every style and content pattern a documentation article can use, shown rendered with the exact markup that produces it. This is the reference the content import builds against — once we agree on what's here, imported articles are assembled from these blocks.
Each example below shows the finished result. Expand Markup under any example to see — and copy — the source an author writes.
How articles are written
Articles are Markdown files at src/docs/<lang>/<section>/<slug>.md. Each begins with front matter that drives the sidebar, hub cards, ordering, and search:
---
title: Ask your first question
description: One-line summary shown on section pages and in search.
order: 2
---
Body content starts here…
The section a file lives in (its folder) and the section titles/order come from src/_data/docsSections.json. Everything below is what goes in the body.
Typography
Body text uses the site's sans at a comfortable reading measure. Headings, links, bold, and inline code all get consistent treatment.
| Body | The quick brown fox jumps over the lazy dog, then files an expense report. |
| Link | A sentence with an inline link in it. |
| Bold | Use bold for UI names like buttons and menu items. |
| Inline code | Refer to literal values as JOYSUITE_API_KEY. |
| H2 | Section heading |
| H3 | Subsection heading |
A paragraph with an inline link, bold for a UI label, and inline code.
Markup
A paragraph with [an inline link](/docs/), **bold for a UI label**, and `inline code`.Second- and third-level headings structure the page; H2s appear in the "On this page" panel and get a rule above them. Only use one H1 (the title, set in front matter).
A second-level heading
A third-level heading
Markup
## A second-level heading
### A third-level headingLists
Unordered lists for collections; ordered lists for loose sequences that don't warrant full step blocks.
- Knowledge bases hold your documents
- Connectors keep live systems in sync
- Recipes automate repeatable work
Markup
- Knowledge bases hold your documents
- Connectors keep live systems in sync
- Recipes automate repeatable work- Open the admin panel
- Choose Members
- Select Invite
Markup
1. Open the admin panel
2. Choose **Members**
3. Select **Invite**Callouts
Four kinds, each with a fixed label and color. The label comes from the class; add data-label="…" to override it (used for translated docs).
A plain note adds useful-but-not-critical context.
Markup
<div class="dx-callout"><p>A plain note adds useful-but-not-critical context.</p></div>A tip shows a faster or smarter way to do something.
Markup
<div class="dx-callout tip"><p>A tip shows a faster or smarter way to do something.</p></div>A warning flags something that could cause data loss or surprise.
Markup
<div class="dx-callout warning"><p>A warning flags something that could cause data loss or surprise.</p></div>An important callout marks something the reader must know first.
Markup
<div class="dx-callout important"><p>An important callout marks something the reader must know first.</p></div>Numbered steps
For real procedures. Each step auto-numbers and reads as one visual thread. The first line is the step's action; following lines explain it, and a step can carry a screenshot.
Name the step in one short line
Then explain it in a sentence or two. Keep each step to one action.
Show, don't just tell
Steps can carry screenshots or live demos.
End with the result
Tell the reader what they should now see, so they know it worked.
Markup
<div class="dx-steps">
<div class="dx-step">
<p>Name the step in one short line</p>
<p>Then explain it in a sentence or two. Keep each step to one action.</p>
</div>
<div class="dx-step">
<p>Show, don't just tell</p>
<p>Steps can carry screenshots or live demos.</p>
</div>
<div class="dx-step">
<p>End with the result</p>
<p>Tell the reader what they should now see, so they know it worked.</p>
</div>
</div>Tables
Standard Markdown tables. They scroll horizontally on small screens automatically.
| Plan | Knowledge bases | Members |
|---|---|---|
| Starter | 3 | Up to 25 |
| Team | 20 | Up to 250 |
| Enterprise | Unlimited | Custom |
Markup
| Plan | Knowledge bases | Members |
| ---- | --------------- | ------- |
| Starter | 3 | Up to 25 |
| Team | 20 | Up to 250 |
| Enterprise | Unlimited | Custom |Code
Inline code sits in running text; fenced blocks handle longer samples.
curl -X POST https://api.joysuite.com/v1/ask \
-H "Authorization: Bearer $JOYSUITE_API_KEY" \
-d '{"question": "What is our refund window?"}'Markup
```
curl -X POST https://api.joysuite.com/v1/ask \
-H "Authorization: Bearer $JOYSUITE_API_KEY" \
-d '{"question": "What is our refund window?"}'
```Images & screenshots
Images get the redesign's flat framed "product shot" treatment automatically. Always include width, height, and descriptive alt text.
Markup
<img src="/images/docs/upload-area.png" alt="The document upload area" width="1200" height="600">Video embeds
Wrap an iframe in .dx-video for a responsive 16:9 frame.
Markup
<div class="dx-video"><iframe src="https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ" title="Placeholder video" loading="lazy" allowfullscreen></iframe></div>Interactive demos
The pattern that replaces screenshots with live, interactive pieces of the product. Each demo is a self-contained component in src/_includes/docs-demos/; an author embeds one with a single include line (shown under each). They're grouped below by the job they do.
Charts & analytics
For measuring-success, admin, and reporting articles. Charts follow the dataviz discipline — a validated palette, one axis, direct labels, and a table fallback.
Bar chart
Inline SVG with hover tooltips, bar highlighting, a selective value label, and a table-view fallback for accessibility.
View as table
| Week | Questions answered |
|---|---|
| Week 1 | 132 |
| Week 2 | 158 |
| Week 3 | 149 |
| Week 4 | 176 |
| Week 5 | 210 |
| Week 6 | 236 |
Markup
{% include "docs-demos/chart-questions.njk" %}Horizontal bar ranking
A ranked list with proportional bars — top questions, most-cited sources. Reads better than vertical bars when the categories carry long labels.
Markup
{% include "docs-demos/chart-bar-ranking.njk" %}Line / trend chart
A single-series trend with a crosshair tooltip that snaps to the nearest week, plus a table view. For usage, adoption, and rate-over-time stories.
View as table
| Week | Self-serve rate |
|---|---|
| Week 1 | 42% |
| Week 2 | 48% |
| Week 3 | 51% |
| Week 4 | 55% |
| Week 5 | 60% |
| Week 6 | 63% |
| Week 7 | 67% |
| Week 8 | 71% |
Markup
{% include "docs-demos/chart-trend.njk" %}Donut composition
Parts of a whole — answers by source, license usage. Uses a validated categorical palette (non-adjacent hues), a legend with values, and a center total.
- SharePoint42%
- Google Drive28%
- Confluence18%
- Uploads12%
Markup
{% include "docs-demos/chart-donut.njk" %}Activity heatmap
Volume across two dimensions — day of week × time of day. A sequential plum ramp (light→dark) with a legend and per-cell tooltips.
Markup
{% include "docs-demos/heatmap.njk" %}Stat tiles (KPI row)
Big hero numbers for the top of an analytics or admin page. Deltas pair a color with an arrow glyph and words, so meaning never rests on color alone.
Markup
{% include "docs-demos/stat-tiles.njk" %}Product recreations
Live, clickable miniatures of the product — the alternative to a screenshot sequence. Canned data, no backend, but the interactions are real.
Mini Joy assistant
A fully fabricated chat UI — app chrome, message thread, typing state, and a scripted multi-turn conversation with citations and context-aware follow-up chips. The conversation graph is a plain object in the partial, so each article can ship its own script.
Hi! I'm Joy. Ask me anything your company knowledge can answer. Every answer comes with its source.
Markup
{% include "docs-demos/joy-assistant.njk" %}Ask bar
The ask experience with suggested-question chips, a thinking state, and a canned grounded answer plus citation.
Markup
{% include "docs-demos/ask-bar.njk" %}Grounded answer with citations
A grounded answer whose inline citation markers open the exact source passage they came from — JoySuite's core value made tangible.
How long does customer onboarding take?
A standard onboarding runs two to three weeks, covering workspace setup and connectors in week one and team training by week three.
"Most teams complete onboarding in two to three weeks, depending on how many sources they connect on day one."
"Week one covers workspace setup and connectors; team training is scheduled for week three once knowledge is in place."
Select a citation to open its source.
Markup
{% include "docs-demos/answer-citation.njk" %}Setup wizard
A multi-step flow — authorize → choose folders → sync — with a progress indicator and Back/Next. Collapses a long screenshot sequence into one walkthrough.
- 1Authorize
- 2Choose folders
- 3Sync
Connect your account. Sign in to the source once so JoySuite can read the content you choose. You can revoke access at any time.
Pick what to sync. Only the folders you select are indexed. Everything else stays untouched.
Syncing your sources. First runs can take a few minutes; later syncs only pick up changes.
✓ 2 folders connected and indexed.
Markup
{% include "docs-demos/wizard.njk" %}Source browser
An expandable file tree of the Knowledge Center. Native <details>, so it works even without JavaScript.
Policies
- Refund policy.pdf
- Security whitepaper.pdf
- Data residency.md
Product docs
- Connectors overview.md
- Commands reference.md
Onboarding
- Playbook.docx
- Timeline.xlsx
- Company FAQ.md
Markup
{% include "docs-demos/source-browser.njk" %}Permission matrix
Roles × capabilities with toggleable cells, so readers can feel how permissions combine. Ideal for admin and security docs.
| Capability | Admin | Editor | Viewer |
|---|---|---|---|
| Ask questions | |||
| Add & edit sources | |||
| Manage users | |||
| Billing |
Select a cell to toggle the permission.
Markup
{% include "docs-demos/permission-matrix.njk" %}Command runner
Pick a command, run it, and see the formatted output — shows what a command actually produces.
Markup
{% include "docs-demos/command-runner.njk" %}Task board (Kanban)
A recreation of the Tasks page: columns for each stage, task cards, and click-to-complete that moves a card to Completed. For task-management and assignment articles.
Select an open task to mark it complete.
Markup
{% include "docs-demos/task-board.njk" %}Instructional components
Reusable teaching patterns that aren't tied to a specific product surface.
Annotated screenshot
Numbered pins over a screenshot that reveal a caption on hover, tap, or keyboard focus — a guided screenshot instead of a static one.
Markup
{% include "docs-demos/hotspots.njk" %}Tabbed panels
The same instructions in per-connector or per-platform variants, without stacking every version on the page. Arrow-key navigable.
In Google Drive, share the folders you want to sync with your JoySuite service account, then paste each folder link when you add the connector. New files sync automatically.
For SharePoint, an admin authorizes JoySuite once, then you pick the sites and document libraries to include. Permissions are respected per user.
For Confluence, connect with an API token and select the spaces to sync. Page trees and attachments are indexed together.
Markup
{% include "docs-demos/tabs.njk" %}Pipeline diagram
How a question becomes a grounded answer: query → retrieve → ground → cite → answer. Hover or focus a stage to reveal what it does.
You ask in plain language, no keywords or syntax required.
Markup
{% include "docs-demos/pipeline.njk" %}Before / after slider
Drag to wipe between two states — here a raw keyword search versus a grounded answer. Keyboard-operable via the range control.
- refund-policy-2024-final.pdf
- refund-policy-DRAFT.pdf
- pricing-faq.docx
- terms-v3.pdf
- …14 more results
Annual plans refund in full within 30 days; after that, refunds are prorated to the next quarter. (Billing Policy §4.2)
Markup
{% include "docs-demos/before-after.njk" %}FAQ accordion
Collapsible question/answer pairs; only one opens at a time. Native <details> underneath.
Is my data used to train AI models?
No. Your content is used only to answer your team's questions and is never used to train shared models.
What happens when a source document changes?
Connected sources re-sync automatically, so answers reflect the latest version. Manual uploads are replaced when you upload a new copy.
Can different teams see different knowledge?
Yes. Knowledge bases scope what each group can ask about, and source permissions are respected per user.
Markup
{% include "docs-demos/accordion.njk" %}Decision tree
Branching choices that guide a reader to a recommendation — which plan, which connector. The tree is data-driven, so it's easy to extend.
Markup
{% include "docs-demos/decision-tree.njk" %}Design tokens
The colors these patterns draw from. Ink and hairline carry the design-v2 look; plum is the single accent. The chart data color is a lighter, validated plum (the brand plum is too dark to read as a data mark).
Status hues used by callouts: tip green #3f9a6a, warning amber #c77b1e.
Categorical series (donut and other multi-series charts) — a validated set of non-adjacent hues, assigned in this fixed order and never cycled:
Sequential ramp (heatmap intensity) — a single plum hue, light→dark: #f3eef8 · #d8c9ea · #b79cd6 · #8a5cc9 · #5e3099.