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.

BodyThe quick brown fox jumps over the lazy dog, then files an expense report.
LinkA sentence with an inline link in it.
BoldUse bold for UI names like buttons and menu items.
Inline codeRefer to literal values as JOYSUITE_API_KEY.
H2Section heading
H3Subsection 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 heading

Lists

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
  1. Open the admin panel
  2. Choose Members
  3. 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.

PlanKnowledge basesMembers
Starter3Up to 25
Team20Up to 250
EnterpriseUnlimitedCustom
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.

Placeholder screenshot
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.

Questions answered per week
0 80 160 240 236 W1 W2 W3 W4 W5 W6
View as table
WeekQuestions answered
Week 1132
Week 2158
Week 3149
Week 4176
Week 5210
Week 6236
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.

Top questions this week
How do I reset my password?312
What's covered under warranty?268
How do I export a report?241
Where are my invoices?198
How do I add a teammate?154
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.

Self-serve rate over time
0 20 40 60 80 W1 W2 W3 W4 W5 W6 W7 W8
View as table
WeekSelf-serve rate
Week 142%
Week 248%
Week 351%
Week 455%
Week 560%
Week 663%
Week 767%
Week 871%
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.

Answers by source
8,410 answers
  • 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.

When questions are asked
Hover a cell for the count.FewerMore
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.

1,240 Questions answered ▲ 18% vs last week
68% Self-served ▲ 5 pts
2.3s Median answer time ▼ 0.4s
94% Answers with a citation No change
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.

Joy
JoyGrounded to: Knowledge Center

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.

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.

  1. 1Authorize
  2. 2Choose folders
  3. 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.

Markup
{% include "docs-demos/wizard.njk" %}

Source browser

An expandable file tree of the Knowledge Center. Native <details>, so it works even without JavaScript.

Knowledge Center
  • 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.

CapabilityAdminEditorViewer
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.

Not started
In progress
Warning
Overdue
Completed

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.

Annotated screenshot of the workspace
Hover, tap, or focus a pin to see what it points to.
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.

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.

Keyword search
  • refund-policy-2024-final.pdf
  • refund-policy-DRAFT.pdf
  • pricing-faq.docx
  • terms-v3.pdf
  • …14 more results
Grounded answer

Annual plans refund in full within 30 days; after that, refunds are prorated to the next quarter. (Billing Policy §4.2)

Drag to compare a raw keyword search with a grounded answer.
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).

Ink#1c1622Headings, primary text
Plum accent#43265fLinks, active states
Chart data#7c4dbbData marks in demos
Muted#4e5d78Body-muted, captions
Hairline#e6e3ecBorders, dividers
Surface#faf9fbCallouts, code chrome

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:

Series 1#7c4dbbPlum
Series 2#c77b1eAmber
Series 3#2f6fd0Blue
Series 4#4a7a3fGreen

Sequential ramp (heatmap intensity) — a single plum hue, light→dark: #f3eef8 · #d8c9ea · #b79cd6 · #8a5cc9 · #5e3099.