Crafter Station Docs

Render Mermaid diagrams without a browser

Ultra-lightweight, zero-dependency Mermaid rendering engine. Parse, lay out, and render Mermaid diagrams in 30.5KB min+gzip, with no headless browser required.

@crafter/mermaid is a Mermaid rendering engine built from scratch: it parses, lays out, and renders Mermaid diagrams in 30.5KB (min+gzip) with zero dependencies and a synchronous API. No headless browser, no 2MB bundle.

mermaid.js@crafter/mermaid
Bundle~2MB30.5KB gzipped
Dependencies50+Zero
APIAsyncSync

Install

bun add @crafter/mermaid

Quick start

import { render } from "@crafter/mermaid"

const svg = render(`
graph TD
  A[Start] --> B{Decision}
  B -->|Yes| C[Success]
  B -->|No| D[Failure]
`)

document.getElementById("diagram").innerHTML = svg

The suite

The umbrella package re-exports a set of small, focused packages. Use them individually when you only need one stage of the pipeline:

PackageSizeWhat it does
@crafter/mermaid<1KBUmbrella package
@crafter/mermaid-parser~8KBMermaid text to AST
@crafter/mermaid-layout~14KBAST to positioned graph
@crafter/mermaid-renderer~17KBPositioned graph to SVG
@crafter/mermaid-themes~2KB30 theme presets
@crafter/mermaid-cli<1KBTerminal renderer
@crafter/mermaid-player~3KBStep-through animation

Render from the terminal

npx @crafter/mermaid-cli diagram.mmd

On this page