-
Notifications
You must be signed in to change notification settings - Fork 45
components overview
The building blocks you reach for when authoring documentation — in prose
(your README, tutorials, and docs files) and in JSDoc / TypeDoc doc comments.
They come in two flavours:
- Visual components — markup you drop into prose or a comment that renders as a richer UI element (callouts, steppers, tabs, live embeds, runnable playgrounds).
- Custom tags — doc-comment block tags base JSDoc/TypeDoc don't define, which the theme reads to shape the sidebar or embed live content from your code.
Authored the same way in prose and inside doc-comment descriptions (they flow through one converter):
| Component | What it does | Page |
|---|---|---|
| Callouts | Note / tip / warning / error admonitions (GitHub-style > [!TIP]). |
Callouts |
| Steps | A numbered <steps> / <step> stepper. |
Steps |
| Tabs | A tabbed <tabs> / <tab> view. |
Tabs |
| Embeds | A sandboxed <iframe> live demo — a ```iframe fence or the @iframe tag. |
Embeds |
| Playgrounds | "Open in CodePen / JSFiddle / CodeSandbox" from an @example or a code fence. |
Playground |
Block tags base JSDoc and TypeDoc don't define — the theme reads them from your source comments. Two shape the sidebar; two embed live content (and have prose equivalents):
| Tag | What it does | Page |
|---|---|---|
@category <path> [order=N] |
Put a symbol's page in an explicit sidebar group (and optionally order it). | @category |
@order N |
A standalone within-group sort key for any symbol. | @order |
@iframe <url> key=value |
Embed a sandboxed live demo from a source comment. | Embeds |
@playground <providers> [filename=] [highlight=] |
Open an @example in a live playground. |
Playground |
There's one setup step, and it's the single most common reason these tags
"don't work": base JSDoc strips any tag it doesn't recognize before the theme
ever runs. Turn on unknown tags in your jsdoc.json:
{
"tags": { "allowUnknownTags": true }
}Without it, @category collapses to the default kind sections, @order does
nothing, and @iframe / @playground never render — silently. This site's
jsdoc.json
sets it.
Note
TypeDoc needs no such flag — it passes these tags through. The
allowUnknownTags requirement is JSDoc-only.
The custom tags are the source-comment form. When you're writing prose
instead (a README, a tutorial, or a docs file), the same capabilities are
available without tags:
-
group/orderfrontmatter mirror@category/@orderon a guide page (see Build a guides site). - the
```iframefence mirrors@iframe(see Embeds). - the
```js playgroundfence and the<playground>container mirror@playground(see Playground).
-
Structure your sidebar — how
@category/@ordercombine withsectionOrder,docGroups,clubSidebarItems, andmenu. -
Embeds — the shared
@iframe/```iframeconfig grammar in full. -
Playground — the full
@playgroundfeature:opts.playground, prose forms, and per-provider options.
This wiki is auto-generated from docs-site/docs. Edit there — changes sync automatically. Full docs: https://ankdev.me/clean-jsdoc-theme/