doc-mermaid-ascii
SKILL.md
beautiful-mermaid
Render Mermaid diagrams to SVG or ASCII using the doc-mermaid-ascii npm package. Zero DOM dependencies, 15 built-in themes, works in Node.js/Bun without a browser.
Prerequisites
npm install beautiful-mermaid
# or
bun add beautiful-mermaid
Quick Render
Use the bundled render script for one-shot rendering:
# SVG output (default)
node ~/.claude/skills/beautiful-mermaid/scripts/render.mjs diagram.mmd -o diagram.svg
# ASCII output
node ~/.claude/skills/beautiful-mermaid/scripts/render.mjs diagram.mmd --ascii
# With theme
node ~/.claude/skills/beautiful-mermaid/scripts/render.mjs diagram.mmd -o diagram.svg --theme tokyo-night
# From inline text
node ~/.claude/skills/beautiful-mermaid/scripts/render.mjs --inline "graph LR; A --> B --> C" --ascii
# From stdin
echo "graph TD; A --> B" | node ~/.claude/skills/beautiful-mermaid/scripts/render.mjs --ascii
Programmatic API
SVG Rendering (async)
import { renderMermaid, THEMES } from 'beautiful-mermaid'
// Default (white bg, dark fg)
const svg = await renderMermaid('graph TD\n A --> B')
// With theme
const svg = await renderMermaid(diagram, THEMES['tokyo-night'])
// Custom colors (mono mode — just 2 colors)
const svg = await renderMermaid(diagram, { bg: '#1a1b26', fg: '#a9b1d6' })
// Enriched colors
const svg = await renderMermaid(diagram, {
bg: '#1a1b26', fg: '#a9b1d6',
line: '#3d59a1', accent: '#7aa2f7', muted: '#565f89',
})
ASCII Rendering (sync)
import { renderMermaidAscii } from 'beautiful-mermaid'
// Unicode box-drawing (default)
const text = renderMermaidAscii('graph LR\n A --> B --> C')
// ┌───┐ ┌───┐ ┌───┐
// │ A │────►│ B │────►│ C │
// └───┘ └───┘ └───┘
// Pure ASCII
const text = renderMermaidAscii('graph LR\n A --> B', { useAscii: true })
// +---+ +---+
// | A |---->| B |
// +---+ +---+
Supported Diagram Types
5 types (use the existing doc-mermaid skill's syntax references for full syntax):
| Type | Header | SVG | ASCII |
|---|---|---|---|
| Flowchart | graph TD / flowchart LR |
Yes | Yes |
| State | stateDiagram-v2 |
Yes | Yes |
| Sequence | sequenceDiagram |
Yes | Yes |
| Class | classDiagram |
Yes | Yes |
| ER | erDiagram |
Yes | Yes |
For C4, Gantt, timeline, user journey, mindmap, pie, git graph — use the doc-mermaid skill with mmdc instead.
Theming
See references/themes.md for the full theme catalog.
Mono Mode (2 colors)
Provide just bg and fg. All other colors auto-derive via color-mix():
- Text: fg at 100%
- Secondary text: fg at 60%
- Edge labels: fg at 40%
- Connectors: fg at 30%
- Arrow heads: fg at 50%
- Node fill: fg at 3%
- Node stroke: fg at 20%
Built-in Themes
import { THEMES } from 'beautiful-mermaid'
// THEMES['tokyo-night'], THEMES['dracula'], THEMES['github-dark'], etc.
15 themes: zinc-light, zinc-dark, tokyo-night, tokyo-night-storm, tokyo-night-light, catppuccin-mocha, catppuccin-latte, nord, nord-light, dracula, github-light, github-dark, solarized-light, solarized-dark, one-dark
Shiki VS Code Theme
import { fromShikiTheme } from 'beautiful-mermaid'
const colors = fromShikiTheme(shikiHighlighter.getTheme('vitesse-dark'))
RenderOptions
| Option | Type | Default | Description |
|---|---|---|---|
bg |
string | #FFFFFF |
Background color |
fg |
string | #27272A |
Foreground/text color |
line |
string? | derived | Edge/connector color |
accent |
string? | derived | Arrow heads, highlights |
muted |
string? | derived | Secondary text, labels |
surface |
string? | derived | Node fill tint |
border |
string? | derived | Node stroke |
font |
string | Inter |
Font family |
padding |
number | 40 |
Canvas padding (px) |
nodeSpacing |
number | 24 |
Horizontal node spacing |
layerSpacing |
number | 40 |
Vertical layer spacing |
transparent |
boolean | false |
Transparent background |
AsciiRenderOptions
| Option | Type | Default | Description |
|---|---|---|---|
useAscii |
boolean | false |
ASCII chars vs Unicode box-drawing |
paddingX |
number | 5 |
Horizontal node spacing |
paddingY |
number | 5 |
Vertical node spacing |
boxBorderPadding |
number | 1 |
Padding inside node boxes |
When to Use This vs doc-mermaid Skill
| Need | Use |
|---|---|
| SVG/ASCII for flowchart, sequence, class, state, ER | doc-mermaid-ascii |
| C4, Gantt, timeline, journey, mindmap, pie, git graph | doc-mermaid (mmdc) |
| Terminal/ASCII output | doc-mermaid-ascii |
| Editor-themed diagrams (tokyo-night, dracula, etc.) | doc-mermaid-ascii |
| Server-side rendering without Puppeteer | doc-mermaid-ascii |
| Full Mermaid syntax compatibility | doc-mermaid (mmdc) |
Weekly Installs
1
Repository
molechowski/agent-skillsFirst Seen
2 days ago
Security Audits
Installed on
claude-code1