Mermaid.js — Create Charts and Diagrams With Markdown-like Syntax

Mermaid.js is a simple markdown-like script language for generating charts from text via JavaScript

Trevor I. Lasn Trevor I. Lasn
· 4 min read
Founder & CEO of 0xinsider.com — the Bloomberg terminal for prediction markets.

As developers, we often need to explain complex ideas visually. Whether it’s showing how an algorithm works or mapping out a project timeline, diagrams can be a lifesaver. That’s where Mermaid comes in. It’s a tool that lets you create charts and diagrams using a simple, Markdown-like syntax. Best part? It’s free, open-source, and works with just text.

What is Mermaid?

Mermaid allows you to generate charts directly from text using JavaScript. You don’t need to deal with heavy diagramming tools or drag-and-drop interfaces. Just write a few lines of text, and Mermaid turns it into a chart.

I personally love this tool because it keeps my documentation lightweight. No need to juggle different tools just to explain a flow or concept. Plus, since it’s open-source, you can easily integrate it into your own projects.

Examples

Here are some practical examples of what you can create with Mermaid. Note: Click on the charts to open them in Live Editor!

Flowchart

A flowchart is great for showing how processes or algorithms work. It’s a simple way to represent a sequence of steps.

graph TD;
A-->B;
A-->C;
B-->D;
C-->D;

This flowchart shows a basic process where “A” can lead to both “B” and “C”, and both “B” and “C” lead to “D”. With just a few lines of text, you’ve got a clear visual representation.

Sequence Diagram

If you’re working on a system with multiple interactions between components or people, a sequence diagram can help.

sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!

This shows a conversation between Alice, Bob, and John. Sequence diagrams are perfect when you want to depict how different actors interact with each other in a specific order.

Gantt Chart

If you’re managing a project, Gantt charts help you visualize timelines and dependencies.

gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram to Mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d

This chart shows tasks with start and end dates, as well as which tasks depend on others. It’s useful for project planning and tracking.

Class Diagram (Experimental)

If you work with object-oriented programming, a class diagram shows relationships between classes.

classDiagram
Class01 <|-- AveryLongClass : Cool
<<interface>> Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10 {
<<service>>
int id
size()
}

This diagram shows how different classes relate to one another. You can visualize inheritance, composition, and method declarations.

Git Graph (Experimental)

Working on a Git project? A Git graph visualizes commits, merges, and branches in a clear and concise way.

---
title: Git diagram
---
gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit

This graph makes it easy to track how branches and merges happen over time.

How to Install Mermaid

You can install Mermaid in a couple of ways:

  • For projects using npm or Yarn, just run:
Terminal window
npm i mermaid

Terminal window
yarn add mermaid
  • You can also include Mermaid in your project via a CDN:

Simple Usage on a Web Page

To use Mermaid on a webpage, include it like this:

Then, define a chart like this:

<div class="mermaid">
graph LR
A --- B
B-->C[fa:fa-ban forbidden]
B-->D(fa:fa-spinner);
</div>

When the page loads, Mermaid will automatically convert the chart definition into an SVG.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<div class="mermaid">
graph LR
A --- B
B-->C[fa:fa-ban forbidden]
B-->D(fa:fa-spinner);
</div>
</body>
</html>

Usage with Webpack

Mermaid fully supports Webpack. This allows you to bundle Mermaid into your existing projects easily. Just install it with npm and import it into your project.

Conclusion

Mermaid is a powerful tool for generating diagrams without leaving your code editor. Whether you’re explaining a workflow, modeling classes, or planning a project, Mermaid makes it simple. If you want to dive deeper, check out the official Mermaid documentation.


Trevor I. Lasn

Founder & CEO of 0xinsider.com — the Bloomberg terminal for prediction markets. Product engineer based in Tartu, Estonia, building and shipping for over a decade.


Found this article helpful? You might enjoy my free newsletter. I share dev tips and insights to help you grow your coding skills and advance your tech career.


Check out these related articles that might be useful for you. They cover similar topics and provide additional insights.

Webdev
3 min read

Form Validation That Doesn't Annoy Users: CSS :user-valid and :user-invalid

The new pseudo-classes :user-valid and :user-invalid give us a smarter way to style form validation states based on user interaction

Dec 12, 2024
Read article
Webdev
4 min read

Open Dyslexic Font: Improve Your Web Accessibility

How to implement the Open-Dyslexic font to enhance readability for users with dyslexia

Oct 12, 2024
Read article
Webdev
2 min read

link rel='modulepreload': Optimize JavaScript Module Loading

The rel='modulepreload' indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution

Dec 4, 2024
Read article
Webdev
36 min read

IndexNow: Get your content indexed instantly by AI search engines and traditional search

Stop waiting weeks for crawlers. Learn how to notify Bing, DuckDuckGo, ChatGPT, and Perplexity instantly when you publish new content using the free IndexNow protocol

Oct 27, 2025
Read article
Webdev
12 min read

Frontend Security Checklist

Tips for Keeping All Frontend Applications Secure

Jul 30, 2024
Read article
Webdev
5 min read

SecretLint — A Linter for Preventing Committing Credentials

A guide to catching and preventing credential leaks in your code using Secretlint

Oct 22, 2024
Read article
Webdev
4 min read

HTTP CONNECT: Building Secure Tunnels Through Proxies

Understand how HTTP CONNECT enables HTTPS traffic through proxies

Nov 28, 2024
Read article
Webdev
3 min read

scrollbar-width & scrollbar-gutter: CSS Properties for Layout Control

Prevent content shifts and refine scrollable UIs with scrollbar-width and scrollbar-gutter

Dec 19, 2024
Read article
Webdev
7 min read

How to Land Your First Tech Job

A developer's guide to tech interviews - from someone who sits on both sides of the table

Oct 24, 2024
Read article

This article was originally published on https://www.trevorlasn.com/blog/mermaid-create-charts-and-diagrams-with-markdown. It was written by a human and polished using grammar tools for clarity.