{"id":13394544,"url":"https://github.com/mermaid-js/mermaid","last_synced_at":"2026-10-18T21:06:00.380Z","repository":{"id":37269779,"uuid":"26066727","full_name":"mermaid-js/mermaid","owner":"mermaid-js","description":"Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown","archived":false,"fork":false,"pushed_at":"2026-10-13T21:36:11.000Z","size":282358,"stargazers_count":90649,"open_issues_count":1877,"forks_count":9345,"subscribers_count":645,"default_branch":"develop","last_synced_at":"2026-10-13T22:00:11.189Z","etag":null,"topics":["diagrams","diagrams-as-code","documentation","flowchart","javascript","mindmap","typescript","uml-diagrams"],"latest_commit_sha":null,"homepage":"https://mermaid.ai/open-source/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mermaid-js.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"accessibility":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":["knsv","sidharthv96"]}},"created_at":"2014-11-01T23:52:32.000Z","updated_at":"2026-10-13T21:14:17.000Z","dependencies_parsed_at":"2026-10-13T08:55:05.432Z","dependency_job_id":null,"html_url":"https://github.com/mermaid-js/mermaid","commit_stats":{"total_commits":8230,"total_committers":688,"mean_commits":"11.962209302325581","dds":0.823086269744836,"last_synced_commit":"b3dee343d1536c8425539643c345a63ff58f59f4"},"previous_names":["knsv/mermaid"],"tags_count":243,"template":false,"template_full_name":null,"purl":"pkg:github/mermaid-js/mermaid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermaid-js%2Fmermaid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermaid-js%2Fmermaid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermaid-js%2Fmermaid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermaid-js%2Fmermaid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mermaid-js","download_url":"https://codeload.github.com/mermaid-js/mermaid/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermaid-js%2Fmermaid/sbom","scorecard":{"id":355670,"data":{"date":"2025-08-17T15:35:22Z","repo":{"name":"github.com/mermaid-js/mermaid","commit":"1f46c9e9bb556f9c321118407d0fa6788746e8b9"},"scorecard":{"version":"v5.1.1","commit":"cd152cb6742c5b8f2f3d2b5193b41d9c50905198"},"score":6.7,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: renovate.json:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#dependency-update-tool"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:22","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:23","Info: jobLevel 'contents' permission set to 'read': .github/workflows/link-checker.yml:30","Info: jobLevel 'contents' permission set to 'read': .github/workflows/pr-labeler.yml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/release-preview.yml:21","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:17","Info: topLevel 'contents' permission set to 'read': .github/workflows/autofix.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/build-docs.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/check-readme-in-sync.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/e2e-applitools.yml:17","Warn: topLevel 'contents' permission set to 'write': .github/workflows/e2e-timings.yml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/e2e.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/issue-triage.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/link-checker.yml:23","Warn: topLevel 'contents' permission set to 'write': .github/workflows/lint.yml:12","Info: topLevel 'contents' permission set to 'read': .github/workflows/pr-labeler.yml:15","Info: topLevel 'contents' permission set to 'read': .github/workflows/publish-docs.yml:11","Warn: no topLevel permission defined: .github/workflows/release-preview-publish.yml:1","Warn: topLevel 'actions' permission set to 'write': .github/workflows/release-preview.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/release-preview.yml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/release.yml:11","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:6","Warn: no topLevel permission defined: .github/workflows/unlock-reopened-issues.yml:1","Warn: no topLevel permission defined: .github/workflows/update-browserlist.yml:1","Warn: no topLevel permission defined: .github/workflows/validate-lockfile.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/validate-lockfile.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/mermaid-js/mermaid/validate-lockfile.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/validate-lockfile.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/mermaid-js/mermaid/validate-lockfile.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/validate-lockfile.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/mermaid-js/mermaid/validate-lockfile.yml/develop?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/release-preview-publish.yml:32","Info:  45 out of  47 GitHub-owned GitHubAction dependencies pinned","Info:  35 out of  36 third-party GitHubAction dependencies pinned","Info:   1 out of   1 containerImage dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 28 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#sast"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/mermaid-js/.github/SECURITY.md:1","Info: Found linked content: github.com/mermaid-js/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/mermaid-js/.github/SECURITY.md:1","Info: Found text in security policy: github.com/mermaid-js/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch 'release/10.9.3'","Warn: branch protection not enabled for branch 'release/10.9.2'","Info: 'allow deletion' disabled on branch 'develop'","Info: 'force pushes' disabled on branch 'develop'","Warn: branch 'develop' does not require approvers","Warn: codeowners review is not required on branch 'develop'","Info: status check found to merge onto on branch 'develop'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":9,"reason":"11 out of 12 merged PRs checked by a CI test -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests"}},{"name":"Contributors","score":10,"reason":"project has 15 contributing companies or organizations","details":["Info: found contributions from: Mermaid-Chart, OSDKDev, argoproj, check-spelling, evolutionizer, fossgect, garnercorp, gecthrissur, john deere, mermaid chart, mermaid-chart, mermaid-js, plantuml-stdlib, ringcentral, sarva"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#contributors"}},{"name":"Vulnerabilities","score":0,"reason":"23 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-mg2h-6x62-wpwc","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T09:31:17.427Z","repository_id":37269779,"created_at":"2025-08-18T09:31:17.427Z","updated_at":"2025-08-18T09:31:17.427Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":343843146,"owners_count":38291827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-13T02:00:04.984Z","response_time":52,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagrams","diagrams-as-code","documentation","flowchart","javascript","mindmap","typescript","uml-diagrams"],"created_at":"2024-07-30T17:01:23.352Z","updated_at":"2026-10-18T21:06:00.374Z","avatar_url":"https://github.com/mermaid-js.png","language":"TypeScript","funding_links":["https://github.com/sponsors/knsv","https://github.com/sponsors/sidharthv96"],"categories":["Data Visualization","JavaScript","TypeScript","HarmonyOS","Libraries","Documentation as Code","Figures","Uncategorized","Javascript Libraries","Applications","Productivity Tools","📊 Data \u0026 Analytics","Open Source Contributions","documentation","Chart \u0026 Data Visualization","语言资源库","Diagramming and Visualization as Code","Credits","📦 Modules/Packages","typescript","Repository","🛠️ Dev Tools (开发效能与工具)","Graphics and Media","Visualization \u0026 Output","Developer Tools","Utility Libraries","General Tools","Linux生态圈用户工具","Web Frontend","🎨 დიზაინი და UI","Miscellaneous"],"sub_categories":["Windows Manager","Flowchart","Design Patterns","Online tools","Uncategorized","Misc","Design Tool (e.g. Figma, Excalidraw)","Documentation \u0026 Diagramming","Playgrounds","JavaScript","9. Modifying Element Usage","Documentation","Data Visualization","Graphics and Rendering","Visualization","Diagramming","Data Visualization \u0026 Charts","Diagrams and Math"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/mermaid-js/mermaid/develop/docs/public/favicon.svg\" height=\"150\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e\nMermaid\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\nGenerate diagrams from Markdown-like text.\n\u003cp\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/mermaid\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/mermaid?color=ff3670\u0026label=\"\u003e\u003c/a\u003e\n\u003cp\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://mermaid.ai/live/\"\u003e\u003cb\u003eLive Editor!\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://mermaid.ai/open-source/\"\u003e📖 Documentation\u003c/a\u003e | \u003ca href=\"https://mermaid.ai/open-source/intro/\"\u003e🚀 Getting Started\u003c/a\u003e | \u003ca href=\"https://www.jsdelivr.com/package/npm/mermaid\"\u003e🌐 CDN\u003c/a\u003e | \u003ca href=\"https://discord.gg/sKeNQX4Wtj\" title=\"Discord invite\"\u003e🙌 Join Us\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"./README.zh-CN.md\"\u003e简体中文\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\nTry Live Editor previews of future releases: \u003ca href=\"https://develop.git.mermaid.live/\" title=\"Try the mermaid version from the develop branch.\"\u003eDevelop\u003c/a\u003e | \u003ca href=\"https://next.git.mermaid.live/\" title=\"Try the mermaid version from the next branch.\"\u003eNext\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n[![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid)\n[![Build CI Status](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml/badge.svg)](https://github.com/mermaid-js/mermaid/actions/workflows/build.yml)\n[![npm minified gzipped bundle size](https://img.shields.io/bundlephobia/minzip/mermaid)](https://bundlephobia.com/package/mermaid)\n[![Coverage Status](https://codecov.io/github/mermaid-js/mermaid/branch/develop/graph/badge.svg)](https://app.codecov.io/github/mermaid-js/mermaid/tree/develop)\n[![CDN Status](https://img.shields.io/jsdelivr/npm/hm/mermaid)](https://www.jsdelivr.com/package/npm/mermaid)\n[![NPM Downloads](https://img.shields.io/npm/dm/mermaid)](https://www.npmjs.com/package/mermaid)\n[![Join our Discord!](https://img.shields.io/static/v1?message=join%20chat\u0026color=9cf\u0026logo=discord\u0026label=discord)](https://discord.gg/sKeNQX4Wtj)\n[![Twitter Follow](https://img.shields.io/badge/Social-mermaidjs__-blue?style=social\u0026logo=X)](https://twitter.com/mermaidjs_)\n[![Covered by Argos Visual Testing](https://argos-ci.com/badge.svg)](https://argos-ci.com?utm_source=mermaid\u0026utm_campaign=oss)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mermaid-js/mermaid/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mermaid-js/mermaid)\n\n\u003cimg src=\"./img/header.png\" alt=\"\" /\u003e\n\n:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category \"The most exciting use of technology\"!!!**\n\n**Thanks to all involved, people committing pull requests, people answering questions! 🙏**\n\n\u003ca href=\"https://mermaid.js.org/landing/\"\u003e\u003cimg src=\"https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg\" alt='Banner for \"The Official Guide to Mermaid.js\" book'\u003e\u003c/a\u003e\n\n## Table of content\n\n\u003cdetails\u003e\n\u003csummary\u003eExpand contents\u003c/summary\u003e\n\n- [About](#about)\n- [Examples](#examples)\n- [Release](#release)\n- [Related projects](#related-projects)\n- [Contributors](#contributors---)\n- [Security and safe diagrams](#security-and-safe-diagrams)\n- [Reporting vulnerabilities](#reporting-vulnerabilities)\n- [Appreciation](#appreciation)\n\n\u003c/details\u003e\n\n## About\n\n\u003c!-- \u003cMain description\u003e   --\u003e\n\nMermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.\n\n\u003e Doc-Rot is a Catch-22 that Mermaid helps to solve.\n\nDiagramming and documentation costs precious developer time and gets outdated quickly.\nBut not having diagrams or docs ruins productivity and hurts organizational learning.\u003cbr/\u003e\nMermaid addresses this problem by enabling users to create easily modifiable diagrams. It can also be made part of production scripts (and other pieces of code).\u003cbr/\u003e\n\u003cbr/\u003e\n\nMermaid allows even non-programmers to easily create detailed diagrams through the [Mermaid Live Editor](https://mermaid.live/).\u003cbr/\u003e\nFor video tutorials, visit our [Tutorials](https://mermaid.js.org/ecosystem/tutorials.html) page.\nUse Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](https://mermaid.js.org/ecosystem/integrations-community.html).\n\nYou can also use Mermaid within [GitHub](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/) as well many of your other favorite applications—check out the list of [Integrations and Usages of Mermaid](https://mermaid.js.org/ecosystem/integrations-community.html).\n\nFor a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](https://mermaid.js.org/intro/getting-started.html), [Usage](https://mermaid.js.org/config/usage.html) and [Tutorials](https://mermaid.js.org/ecosystem/tutorials.html).\n\nOur PR Visual Regression Testing is powered by [Argos](https://argos-ci.com/?utm_source=mermaid\u0026utm_campaign=oss) with their generous Open Source plan. It makes the process of reviewing PRs with visual changes a breeze.\n\n[![Covered by Argos Visual Testing](https://argos-ci.com/badge-large.svg)](https://argos-ci.com?utm_source=mermaid\u0026utm_campaign=oss)\n\nIn our release process we rely heavily on visual regression tests using [applitools](https://applitools.com/). Applitools is a great service which has been easy to use and integrate with our tests.\n\n\u003ca href=\"https://applitools.com/\"\u003e\n\u003csvg width=\"170\" height=\"32\" viewBox=\"0 0 170 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003cmask id=\"a\" maskUnits=\"userSpaceOnUse\" x=\"27\" y=\"0\" width=\"143\" height=\"32\"\u003e\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.732.227h141.391v31.19H27.733V.227z\" fill=\"#fff\"\u003e\u003c/path\u003e\u003c/mask\u003e\u003cg mask=\"url(#a)\"\u003e\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M153.851 22.562l1.971-3.298c1.291 1.219 3.837 2.402 5.988 2.402 1.971 0 2.903-.753 2.903-1.829 0-2.832-10.253-.502-10.253-7.313 0-2.904 2.51-5.45 7.099-5.45 2.904 0 5.234 1.004 6.955 2.367l-1.829 3.226c-1.039-1.075-3.011-2.008-5.126-2.008-1.65 0-2.725.717-2.725 1.685 0 2.546 10.289.395 10.289 7.386 0 3.19-2.724 5.52-7.528 5.52-3.012 0-5.916-1.003-7.744-2.688zm-5.7 2.259h4.553V.908h-4.553v23.913zm-6.273-8.676c0-2.689-1.578-5.02-4.446-5.02-2.832 0-4.409 2.331-4.409 5.02 0 2.724 1.577 5.055 4.409 5.055 2.868 0 4.446-2.33 4.446-5.055zm-13.588 0c0-4.912 3.442-9.07 9.142-9.07 5.736 0 9.178 4.158 9.178 9.07 0 4.911-3.442 9.106-9.178 9.106-5.7 0-9.142-4.195-9.142-9.106zm-5.628 0c0-2.689-1.577-5.02-4.445-5.02-2.832 0-4.41 2.331-4.41 5.02 0 2.724 1.578 5.055 4.41 5.055 2.868 0 4.445-2.33 4.445-5.055zm-13.587 0c0-4.912 3.441-9.07 9.142-9.07 5.736 0 9.178 4.158 9.178 9.07 0 4.911-3.442 9.106-9.178 9.106-5.701 0-9.142-4.195-9.142-9.106zm-8.425 4.338v-8.999h-2.868v-3.98h2.868V2.773h4.553v4.733h3.514v3.979h-3.514v7.78c0 1.111.574 1.936 1.578 1.936.681 0 1.326-.251 1.577-.538l.968 3.478c-.681.609-1.9 1.11-3.8 1.11-3.191 0-4.876-1.648-4.876-4.767zm-8.962 4.338h4.553V7.505h-4.553V24.82zm-.43-21.905a2.685 2.685 0 012.688-2.69c1.506 0 2.725 1.184 2.725 2.69a2.724 2.724 0 01-2.725 2.724c-1.47 0-2.688-1.219-2.688-2.724zM84.482 24.82h4.553V.908h-4.553v23.913zm-6.165-8.676c0-2.976-1.793-5.02-4.41-5.02-1.47 0-3.119.825-3.908 1.973v6.094c.753 1.111 2.438 2.008 3.908 2.008 2.617 0 4.41-2.044 4.41-5.055zm-8.318 6.453v8.82h-4.553V7.504H70v2.187c1.327-1.685 3.227-2.618 5.342-2.618 4.446 0 7.672 3.299 7.672 9.07 0 5.773-3.226 9.107-7.672 9.107-2.043 0-3.907-.86-5.342-2.653zm-10.718-6.453c0-2.976-1.793-5.02-4.41-5.02-1.47 0-3.119.825-3.908 1.973v6.094c.753 1.111 2.438 2.008 3.908 2.008 2.617 0 4.41-2.044 4.41-5.055zm-8.318 6.453v8.82H46.41V7.504h4.553v2.187c1.327-1.685 3.227-2.618 5.342-2.618 4.446 0 7.672 3.299 7.672 9.07 0 5.773-3.226 9.107-7.672 9.107-2.043 0-3.908-.86-5.342-2.653zm-11.758-1.936V18.51c-.753-1.004-2.187-1.542-3.657-1.542-1.793 0-3.263.968-3.263 2.617 0 1.65 1.47 2.582 3.263 2.582 1.47 0 2.904-.502 3.657-1.506zm0 4.159v-1.829c-1.183 1.434-3.227 2.259-5.485 2.259-2.761 0-5.988-1.864-5.988-5.736 0-4.087 3.227-5.593 5.988-5.593 2.33 0 4.337.753 5.485 2.115V13.85c0-1.756-1.506-2.904-3.8-2.904-1.829 0-3.55.717-4.984 2.044L28.63 9.8c2.115-1.901 4.84-2.726 7.564-2.726 3.98 0 7.6 1.578 7.6 6.561v11.186h-4.588z\" fill=\"#00A298\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.934 16.177c0 1.287-.136 2.541-.391 3.752-1.666-1.039-3.87-2.288-6.777-3.752 2.907-1.465 5.11-2.714 6.777-3.753.255 1.211.39 2.466.39 3.753m4.6-7.666V4.486a78.064 78.064 0 01-4.336 3.567c-1.551-2.367-3.533-4.038-6.14-5.207C11.1 4.658 12.504 6.7 13.564 9.262 5.35 15.155 0 16.177 0 16.177s5.35 1.021 13.564 6.915c-1.06 2.563-2.463 4.603-4.507 6.415 2.607-1.169 4.589-2.84 6.14-5.207a77.978 77.978 0 014.336 3.568v-4.025s-.492-.82-2.846-2.492c.6-1.611.93-3.354.93-5.174a14.8 14.8 0 00-.93-5.174c2.354-1.673 2.846-2.492 2.846-2.492\" fill=\"#00A298\"\u003e\u003c/path\u003e\u003c/svg\u003e\n\u003c/a\u003e\n\n\u003c!-- \u003c/Main description\u003e --\u003e\n\n## Features\n\n- **20+ Diagram Types** – Flowchart, Sequence, Class, State, ER, Gantt, Pie, Git Graph, Mindmap, Timeline, Sankey, and more\n- **Markdown-Inspired Syntax** – Write diagrams as text, no drag-and-drop required\n- **No Design Tool Needed** – Generate professional diagrams straight from code\n- **Live Editor** – Prototype instantly at [mermaid.live](https://mermaid.live)\n- **Version-Control Friendly** – Diagrams live as text, so diffs and reviews just work\n- **Native GitHub Rendering** – Mermaid code blocks render directly in Markdown on GitHub\n- **Highly Customizable** – Themes, colors, fonts, and layout directions\n- **Security First** – Built-in sanitization plus a sandboxed rendering mode\n- **Lightweight** – Small footprint, no heavy dependencies\n- **Active Community** – Frequent releases and thousands of contributors\n- **Open Source** – MIT licensed\n\n## Examples\n\n**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid.js.org/intro/syntax-reference.html).**\n\n\u003c!-- \u003cFlowchart\u003e --\u003e\n\n### Flowchart [\u003ca href=\"https://mermaid.js.org/syntax/flowchart.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNpNkMtqwzAQRX9FzKqFJK7t1km8KDQP6KJQSLOLvZhIY1tgS0GWmgbb_165IaFaiXvOFTPqgGtBkEJR6zOv0Fj2scsU8-ft8I5G5Gw6fe339GN7tnrYaafE45WvRsLW3Ya4bKVWwzVe_xU-FfVsc9hR62rLwvw_2591z7Y3FuUwgYZMg1L4ObrRzMBW1FAGqb8KKtCLGWRq8Ko7CbS0FdJqA2mBdUsTQGf110VxSK1xdJM2EkuDzd2qNQrypQ7s5TQuXcrW-ie5VoUsx9yZ2seVtac2DYIRz0ppK3eccd0ErRTjD1XfyyRIomSBUUzJPMaXOBb8GC4XRfQcFmL-FEYIwzD8AggvcHE\"\u003elive editor\u003c/a\u003e]\n\n```\nflowchart LR\n\nA[Hard] --\u003e|Text| B(Round)\nB --\u003e C{Decision}\nC --\u003e|One| D[Result 1]\nC --\u003e|Two| E[Result 2]\n```\n\n```mermaid\nflowchart LR\n\nA[Hard] --\u003e|Text| B(Round)\nB --\u003e C{Decision}\nC --\u003e|One| D[Result 1]\nC --\u003e|Two| E[Result 2]\n```\n\n### Sequence diagram [\u003ca href=\"https://mermaid.js.org/syntax/sequenceDiagram.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNo9kMluwjAQhl_F-AykQMuSA1WrbuLQQ3v1ZbAnsVXHkzrjVhHi3etQwKfRv4w-z0FqMihL2eF3wqDxyUEdoVHhwTuNk-12RzaU4g29JzHMY2HpV0BE0VO6V8ETtdkGz1Zb1F8qiPyG5LX84mrLAmpwoWNh-5a0pWCiAxUwGBXeiVHEU4oq8V_6AHYUwAu2lLLTjVQ4bc1rT2yleI0IfJG320faZ9ABbk-Jz3hZnFxBduR9L2oiM5Jj2WBswJn8-cMArSRbbFDJMo8GK0ielVThmKOpNcD4bBxTlGUFvsOxhMT02QctS44JL6HzAS-iJzCYOwfJfTscunYd542aQuXqQU_RZ9kyt11ZFIM9rR3btJ9qaorOGQuR7c9mWSznyzXMF7hcLeBusTB6P9usq_ntrDKrm9kc5PF4_AMJE56Z\"\u003elive editor\u003c/a\u003e]\n\n```\nsequenceDiagram\nAlice-\u003e\u003eJohn: Hello John, how are you?\nloop HealthCheck\n    John-\u003e\u003eJohn: Fight against hypochondria\nend\nNote right of John: Rational thoughts!\nJohn--\u003e\u003eAlice: Great!\nJohn-\u003e\u003eBob: How about you?\nBob--\u003e\u003eJohn: Jolly good!\n```\n\n```mermaid\nsequenceDiagram\nAlice-\u003e\u003eJohn: Hello John, how are you?\nloop HealthCheck\n    John-\u003e\u003eJohn: Fight against hypochondria\nend\nNote right of John: Rational thoughts!\nJohn--\u003e\u003eAlice: Great!\nJohn-\u003e\u003eBob: How about you?\nBob--\u003e\u003eJohn: Jolly good!\n```\n\n### Gantt chart [\u003ca href=\"https://mermaid.js.org/syntax/gantt.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNp90cGOgyAQBuBXIZxtFbG29bbZ3fsmvXKZylhJEAyOTZrGd1_sto3xsHMBhu-HBO689hp5xS_giJQbsCbjHTv9jcp9-q63SKhZpb3DhMXSOIiE5ZkoNpnYZGXynh6U-4jBK7JnVfBYJo9QvgjtEya1cj8QwFq0TMz4lZqxTBg0hOF5m1jifI2Lf7Bc490CyxUu1rhc4GLGPOEdhg6Mjq92V44xxanFDhWv4lRjA6MlxZWbIh17DYTf2pAPvGrADphwGMmfbq7mFYURX-jLwCVA91bWg8YYunO69Y8vMgPFI2vvGnOZ-2Owsd0S9UOVpvP29mKoHc_b2nfpYHQLgdrrsUzLvDxALrHcS9hJqeuzOB6avBCN3mciBz5N0y_wxZ0J\"\u003elive editor\u003c/a\u003e]\n\n```\ngantt\n    section Section\n    Completed :done,    des1, 2014-01-06,2014-01-08\n    Active        :active,  des2, 2014-01-07, 3d\n    Parallel 1   :         des3, after des1, 1d\n    Parallel 2   :         des4, after des1, 1d\n    Parallel 3   :         des5, after des3, 1d\n    Parallel 4   :         des6, after des4, 1d\n```\n\n```mermaid\ngantt\n    section Section\n    Completed :done,    des1, 2014-01-06,2014-01-08\n    Active        :active,  des2, 2014-01-07, 3d\n    Parallel 1   :         des3, after des1, 1d\n    Parallel 2   :         des4, after des1, 1d\n    Parallel 3   :         des5, after des3, 1d\n    Parallel 4   :         des6, after des4, 1d\n```\n\n### Class diagram [\u003ca href=\"https://mermaid.js.org/syntax/classDiagram.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNpdkTFPwzAQhf-K5QlQ2zQJJG1UBaGWDYmBgYEwXO1LYuTEwXYqlZL_jt02asXm--690zvfgTLFkWaUSTBmI6DS0BTt2lfzkKx-p1PytEO9f1FtdaQkI2ulZNGuVqK1qEtgmOfk7BitSzKdOhg59XuNGgk0RDxed-_IOr6uf8cZ6UhTZ8bvHqS5ub1mr9svZPbjk6DEBlu7AQuXyBkx4gcvDk9cUMJq0XT_YaW0kNK5j-ufAoRzcihaQvLcoN4Jv50vvVxw_xrnD3RCG9QNCO4-8OgpqK1dpoJm7smxhF7agp6kfcfB4jMXVmmalW4tnFDorXrbt4xmVvc4is53GKFUwNF5DtTuO3-sShjrJjLVlqLyvNfS4drazmRB4NuzSti6386YagIjeA3a1rtlEiRRsoAoxiSN4SGOOduGy0UZ3YclT-dhBHQYhj8dc6_I\"\u003elive editor\u003c/a\u003e]\n\n```\nclassDiagram\nClass01 \u003c|-- AveryLongClass : Cool\n\u003c\u003cInterface\u003e\u003e Class01\nClass09 --\u003e C2 : Where am I?\nClass09 --* C3\nClass09 --|\u003e Class07\nClass07 : equals()\nClass07 : Object[] elementData\nClass01 : size()\nClass01 : int chimp\nClass01 : int gorilla\nclass Class10 {\n  \u003c\u003cservice\u003e\u003e\n  int id\n  size()\n}\n\n```\n\n```mermaid\nclassDiagram\nClass01 \u003c|-- AveryLongClass : Cool\n\u003c\u003cInterface\u003e\u003e Class01\nClass09 --\u003e C2 : Where am I?\nClass09 --* C3\nClass09 --|\u003e Class07\nClass07 : equals()\nClass07 : Object[] elementData\nClass01 : size()\nClass01 : int chimp\nClass01 : int gorilla\nclass Class10 {\n  \u003c\u003cservice\u003e\u003e\n  int id\n  size()\n}\n\n```\n\n### State diagram [\u003ca href=\"https://mermaid.js.org/syntax/stateDiagram.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNpdkEFvgzAMhf8K8nEqpYSNthx22Xbcqcexg0sCiZQQlDhIFeK_L8A6TfXp6fOz9ewJGssFVOAJSbwr7ByadGR1n8T6evpO0vQ1uZDSekOrXGFsPqJPO6q-2-imH8f_0TeHXm50lfelsAMjnEHFY6xpMdRAUhhRQxUlFy0GTTXU_RytYeAx-AdXZB1ULWovdoCB7OXWN1CRC-Ju-r3uz6UtchGHJqDbsPygU57iysb2reoWHpyOWBINvsqypb3vFMlw3TfWZF5xiY7keC6zkpUnZIUojwW-FAVvrvn51LLnvOXHQ84Q5nn-AVtLcwk\"\u003elive editor\u003c/a\u003e]\n\n```\nstateDiagram-v2\n[*] --\u003e Still\nStill --\u003e [*]\nStill --\u003e Moving\nMoving --\u003e Still\nMoving --\u003e Crash\nCrash --\u003e [*]\n```\n\n```mermaid\nstateDiagram-v2\n[*] --\u003e Still\nStill --\u003e [*]\nStill --\u003e Moving\nMoving --\u003e Still\nMoving --\u003e Crash\nCrash --\u003e [*]\n```\n\n### Pie chart [\u003ca href=\"https://mermaid.js.org/syntax/pie.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNo9jsFugzAMhl8F-VzBgEEh13Uv0F1zcYkTIpEEBadShXj3BU3dzf_n77e8wxQUgYDVkvQSbsFsEgpRtEN_5i_kvzx05XiC-xvUHVzAUXRoVe7v0heFBJ7JkQSRR0Ua08ISpD-ymlaFTN_KcoggNC4bXQATh5-Xn0BwTPSWbhZNRPdvLQEV5dIO_FrPZ43dOJ-cgtfWnDzFJeOZed1EVZ3r0lie06Ocgqs2q2aMPD_HvuqbfsCmpf7aYte2anrU46Cbz1qr60fdIBzH8QvW9lkl\"\u003elive editor\u003c/a\u003e]\n\n```\npie\n\"Dogs\" : 386\n\"Cats\" : 85.9\n\"Rats\" : 15\n```\n\n```mermaid\npie\n\"Dogs\" : 386\n\"Cats\" : 85.9\n\"Rats\" : 15\n```\n\n### Git graph [experimental - \u003ca href=\"https://mermaid.live/edit#pako:eNqNkMFugzAMhl8F-VyVAR1tOW_aA-zKxSSGRCMJCk6lCvHuNZPKZdM0n-zf3_8r8QIqaIIGMqnB8kfEybQ--y4VnLP8-9RF9Mpkmm40hmlnDKmvkPiH_kfS7nFo_VN0FAf6XwocQGgxa_nGsm1bYEOOWmik1dRjGrmF1q-Cpkkj07u2HCI0PY4zHQATh8-7V9BwTPSE3iwOEd1OjQE1iWkBvk_bzQY7s0Sq4Hs7bHqKo8iGeZqbPN_WR7mpSd1RHpvPVhuMbG7XOq_L-oJlRfW5wteq0qorrpe-PBW9Pr8UJcK6rg-BLYPQ\"\u003elive editor\u003c/a\u003e]\n\n```\ngitGraph\n  commit\n  commit\n  branch develop\n  checkout develop\n  commit\n  commit\n  checkout main\n  merge develop\n  commit\n  commit\n```\n\n```mermaid\ngitGraph\n  commit\n  commit\n  branch develop\n  checkout develop\n  commit\n  commit\n  checkout main\n  merge develop\n  commit\n  commit\n```\n\n### Bar chart (using gantt chart) [\u003ca href=\"https://mermaid.js.org/syntax/gantt.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNptkU1vhCAQhv8KIenNugiI4rkf6bmXpvEyFVxJFDYyNt1u9r8X63Z7WQ9m5pknLzieaBeMpQ3dg0dsPUkPOhwteXZIXmJcbCT3xMAxkuh8Z8kIEclyMIB209fqKcwTICFvG4IvFy_oLrZ-g9F26ILfQgvNFN94VaRXQ1iWqpumZBcu1J8p1E1TXDx59eQNr5LyEqjJn6hv5QnGNlxevZJmdLLpy5xJSzut45biYCfb0iaVxvawjNjS1p-TCguG16PvaIPzYjO67e3BwX6GiTY9jPFKH43DMF_hGMDY1J4oHg-_f8hFTJFd8L3br3yZx4QHxENsdrt1nO8dDstH3oVpF50ZYMbhU6ud4qoGLqyqBJRCmO6j0HXPZdGbihUc6Pmc0QP49xD-b5X69ZQv2gjO81IwzWqhC1lKrjJ6pA3nVS7SMiVjrKirWlYp5fs3osgrWeo00lorLWvOzz8JVbXm\"\u003elive editor\u003c/a\u003e]\n\n```\ngantt\n    title Git Issues - days since last update\n    dateFormat  X\n    axisFormat %s\n\n    section Issue19062\n    71   : 0, 71\n    section Issue19401\n    36   : 0, 36\n    section Issue193\n    34   : 0, 34\n    section Issue7441\n    9    : 0, 9\n    section Issue1300\n    5    : 0, 5\n```\n\n```mermaid\ngantt\n    title Git Issues - days since last update\n    dateFormat  X\n    axisFormat %s\n\n    section Issue19062\n    71   : 0, 71\n    section Issue19401\n    36   : 0, 36\n    section Issue193\n    34   : 0, 34\n    section Issue7441\n    9    : 0, 9\n    section Issue1300\n    5    : 0, 5\n```\n\n### User Journey diagram [\u003ca href=\"https://mermaid.js.org/syntax/userJourney.html\"\u003edocs\u003c/a\u003e - \u003ca href=\"https://mermaid.live/edit#pako:eNplkMFuwjAQRH9l5TMiTVIC-FqqnjhxzWWJN4khsSN7XRSh_HsdKBVt97R6Mzsj-yoqq0hIAXCywRkaSwNxWHNHsB_hYt1ZmwYUfiueKtbWwIcFtjf5zgH2eCZgQgkrCXt64GgMg2fUzkvIn5Xd_V5COtMFvCH_62ht_5yk7MU8sn61HDTfxD8VYiF6cj1qFd94nWkpuKWYKWRcFdUYOi5FaaZoDYNCpnel2Toha-w8LQQGtofRVEKyC_Qw7TQ2DvsfV2dRUTy6Ch6H-UMb7TlGVtbUupl5cF3ELfPgZZLM8rLR3IbjsrJ94rVq0XH7uS2SIis2mOVUrHNc5bmqjul2U2evaa3WL2mGYpqmL2BGiho\"\u003elive editor\u003c/a\u003e]\n\n```\n  journey\n    title My working day\n    section Go to work\n      Make tea: 5: Me\n      Go upstairs: 3: Me\n      Do work: 1: Me, Cat\n    section Go home\n      Go downstairs: 5: Me\n      Sit down: 3: Me\n```\n\n```mermaid\n  journey\n    title My working day\n    section Go to work\n      Make tea: 5: Me\n      Go upstairs: 3: Me\n      Do work: 1: Me, Cat\n    section Go home\n      Go downstairs: 5: Me\n      Sit down: 3: Me\n```\n\n### C4 diagram [\u003ca href=\"https://mermaid.js.org/syntax/c4.html\"\u003edocs\u003c/a\u003e]\n\n```\nC4Context\ntitle System Context diagram for Internet Banking System\n\nPerson(customerA, \"Banking Customer A\", \"A customer of the bank, with personal bank accounts.\")\nPerson(customerB, \"Banking Customer B\")\nPerson_Ext(customerC, \"Banking Customer C\")\nSystem(SystemAA, \"Internet Banking System\", \"Allows customers to view information about their bank accounts, and make payments.\")\n\nPerson(customerD, \"Banking Customer D\", \"A customer of the bank, \u003cbr/\u003e with personal bank accounts.\")\n\nEnterprise_Boundary(b1, \"BankBoundary\") {\n\n  SystemDb_Ext(SystemE, \"Mainframe Banking System\", \"Stores all of the core banking information about customers, accounts, transactions, etc.\")\n\n  System_Boundary(b2, \"BankBoundary2\") {\n    System(SystemA, \"Banking System A\")\n    System(SystemB, \"Banking System B\", \"A system of the bank, with personal bank accounts.\")\n  }\n\n  System_Ext(SystemC, \"E-mail system\", \"The internal Microsoft Exchange e-mail system.\")\n  SystemDb(SystemD, \"Banking System D Database\", \"A system of the bank, with personal bank accounts.\")\n\n  Boundary(b3, \"BankBoundary3\", \"boundary\") {\n    SystemQueue(SystemF, \"Banking System F Queue\", \"A system of the bank, with personal bank accounts.\")\n    SystemQueue_Ext(SystemG, \"Banking System G Queue\", \"A system of the bank, with personal bank accounts.\")\n  }\n}\n\nBiRel(customerA, SystemAA, \"Uses\")\nBiRel(SystemAA, SystemE, \"Uses\")\nRel(SystemAA, SystemC, \"Sends e-mails\", \"SMTP\")\nRel(SystemC, customerA, \"Sends e-mails to\")\n```\n\n```mermaid\nC4Context\ntitle System Context diagram for Internet Banking System\n\nPerson(customerA, \"Banking Customer A\", \"A customer of the bank, with personal bank accounts.\")\nPerson(customerB, \"Banking Customer B\")\nPerson_Ext(customerC, \"Banking Customer C\")\nSystem(SystemAA, \"Internet Banking System\", \"Allows customers to view information about their bank accounts, and make payments.\")\n\nPerson(customerD, \"Banking Customer D\", \"A customer of the bank, \u003cbr/\u003e with personal bank accounts.\")\n\nEnterprise_Boundary(b1, \"BankBoundary\") {\n\n  SystemDb_Ext(SystemE, \"Mainframe Banking System\", \"Stores all of the core banking information about customers, accounts, transactions, etc.\")\n\n  System_Boundary(b2, \"BankBoundary2\") {\n    System(SystemA, \"Banking System A\")\n    System(SystemB, \"Banking System B\", \"A system of the bank, with personal bank accounts.\")\n  }\n\n  System_Ext(SystemC, \"E-mail system\", \"The internal Microsoft Exchange e-mail system.\")\n  SystemDb(SystemD, \"Banking System D Database\", \"A system of the bank, with personal bank accounts.\")\n\n  Boundary(b3, \"BankBoundary3\", \"boundary\") {\n    SystemQueue(SystemF, \"Banking System F Queue\", \"A system of the bank, with personal bank accounts.\")\n    SystemQueue_Ext(SystemG, \"Banking System G Queue\", \"A system of the bank, with personal bank accounts.\")\n  }\n}\n\nBiRel(customerA, SystemAA, \"Uses\")\nBiRel(SystemAA, SystemE, \"Uses\")\nRel(SystemAA, SystemC, \"Sends e-mails\", \"SMTP\")\nRel(SystemC, customerA, \"Sends e-mails to\")\n```\n\n## Release\n\nFor those who have the permission to do so:\n\nUpdate version number in `package.json`.\n\n```sh\nnpm publish\n```\n\nThe above command generates files into the `dist` folder and publishes them to \u003chttps://www.npmjs.com\u003e.\n\n## Related projects\n\n- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli)\n- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor)\n- [HTTP Server](https://github.com/TomWright/mermaid-server)\n\n## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)\n\nMermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.\n\nDetailed information about how to contribute can be found in the [contribution guide](https://mermaid.js.org/community/contributing.html)\n\n## Security and safe diagrams\n\nFor public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.\n\nAs an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security.\n\n_Unfortunately you cannot have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._\n\n## Reporting vulnerabilities\n\nTo report a vulnerability, please e-mail \u003csecurity@mermaid.live\u003e with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.\n\n## Appreciation\n\nA quick note from Knut Sveidqvist:\n\n\u003e _Many thanks to the [d3](https://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!_\n\u003e\n\u003e _Thanks also to the [js-sequence-diagram](https://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering._\n\u003e\n\u003e _Thank you to [Tyler Long](https://github.com/tylerlong) who has been a collaborator since April 2017._\n\u003e\n\u003e _Thank you to the ever-growing list of [contributors](https://github.com/mermaid-js/mermaid/graphs/contributors) that brought the project this far!_\n\n---\n\n_Mermaid was created by Knut Sveidqvist for easier documentation._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmermaid-js%2Fmermaid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmermaid-js%2Fmermaid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmermaid-js%2Fmermaid/lists"}