Skip to content

Mermaid

The Mermaid plugin renders diagrams and flowcharts from Mermaid syntax.

Powered by Mermaid.js

Your diagram syntax is native Mermaid—no FloImg abstraction layer. See their syntax docs for all diagram types.

Terminal window
pnpm add @teamflojo/floimg-mermaid
import createClient from '@teamflojo/floimg';
import mermaid from '@teamflojo/floimg-mermaid';
const floimg = createClient();
floimg.registerGenerator(mermaid());
const diagram = await floimg.generate({
generator: 'mermaid',
params: {
code: `
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[End]
D --> E
`
}
});
ParameterTypeRequiredDescription
codestringYesMermaid diagram definition
themestringNoTheme: ‘default’, ‘dark’, ‘forest’, ‘neutral’
backgroundColorstringNoBackground color (default: white)
widthnumberNoMax width in pixels
await floimg.generate({
generator: 'mermaid',
params: {
code: `
flowchart LR
A[Input] --> B[Process]
B --> C[Output]
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
sequenceDiagram
participant Client
participant Server
participant Database
Client->>Server: Request
Server->>Database: Query
Database-->>Server: Results
Server-->>Client: Response
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
classDiagram
class Animal {
+name: string
+age: int
+makeSound()
}
class Dog {
+breed: string
+bark()
}
Animal <|-- Dog
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
stateDiagram-v2
[*] --> Idle
Idle --> Processing: Start
Processing --> Complete: Success
Processing --> Error: Failure
Complete --> [*]
Error --> Idle: Retry
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "ordered in"
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Phase 1
Design :a1, 2024-01-01, 30d
Development :a2, after a1, 60d
section Phase 2
Testing :a3, after a2, 20d
Launch :a4, after a3, 10d
`
}
});
await floimg.generate({
generator: 'mermaid',
params: {
code: `
pie title Browser Market Share
"Chrome" : 65
"Safari" : 19
"Firefox" : 10
"Other" : 6
`
}
});
// Dark theme
await floimg.generate({
generator: 'mermaid',
params: {
code: `graph TD; A-->B;`,
theme: 'dark'
}
});
// Forest theme
await floimg.generate({
generator: 'mermaid',
params: {
code: `graph TD; A-->B;`,
theme: 'forest'
}
});

Want to experiment visually? Try Mermaid in floimg-studio →