Zum Hauptinhalt springen

Mermaid Flussdiagramm: Spickzettel

Flussdiagramme verbinden Aktionen und Entscheidungen. Nutze Untergruppen für Zuständigkeiten oder Sequenzdiagramme, wenn Nachrichten zwischen Systemen im Mittelpunkt stehen.

Mit dem Mermaid-Flussdiagramm-Editor erstellen →

Schnellstart

Behalte feste Ids und setze Beschriftungen in Anführungszeichen; Kanten verbinden die Ids.

Mermaid
flowchart LR
  D["Anleitung entwerfen"] --> R{"Genehmigt?"}
  R -->|Ja| P["Anleitung veröffentlichen"]
  R -->|Nein| D

Wird geladen…

Syntaxreferenz

Syntaxreferenz
SyntaxBedeutung
flowchart / graph / LR / RL / TB / TD / BTDeklariert Diagramm und Richtung; TD entspricht TB.
A[Text] / A(Text) / A([Text]) / A[[Text]] / A[(Text)]Klassisch: Rechteck, abgerundetes Rechteck, Stadion, Unterroutine und Zylinder.
A((Text)) / A{Text} / A{{Text}} / A>Text] / A(((Text)))Kreis, Raute, Sechseck, asymmetrische Form und Doppelkreis.
A[/Text/] / A[\Text\] / A[/Text\] / A[\Text/]Parallelogramme und Trapeze in beiden Richtungen.
A@{ shape: rect, label: "Text" }Wählt einen kanonischen Namen oder Alias aus dem Katalog.
--> / --- / -.-> / -.- / ==> / === / ~~~Pfeile, einfache, gestrichelte, dicke und unsichtbare Verbindungen.
<--> / o--o / x--x / --o / --xBeidseitige, kreisförmige und gekreuzte Enden.
A -->|Label| B / A -- Label --> B / A ----> BText und zusätzliche Striche erhöhen den Mindestabstand zwischen Rängen, ohne Pixel festzulegen.
subgraph id [Label] / direction TB / endGruppiert Knoten; externe Verbindungen können die interne Richtung übersteuern.
classDef / class A,B name / A:::nameDefiniert und verwendet wiederverwendbare Stile.
style A / linkStyle 0 / e1@--> / class e1 nameGestaltet Knoten, Kanten nach nullbasiertem Index oder Id; Id-Kanten lassen sich auch animieren.
click A href "URL" / click A callback "Tooltip"Klicks hängen vom Host ab und sind unter strikter Sicherheit deaktiviert.
A["`**Bold** and *italic*`"]Markdown-Texte erlauben Hervorhebung und automatischen Umbruch.
A@{ icon: "fa:user", form: "square", pos: "t", h: 60 }Icons benötigen ein registriertes Paket; quadratische, runde und abgerundete Formen sind möglich.
A@{ img: "/favicon.svg", label: "Text", w: 60, h: 60, constraint: "on" }Bilder benötigen eine erreichbare URL und unterstützen Größe und Seitenverhältnis.
config.layout: elk / config.flowchart.defaultRenderer: elkELK ist optional und muss vom Host installiert und registriert werden.
%% / accTitle: / accDescr:Kommentare und zugängliche Beschreibungen.
@{ shape: rect } / proc / process / rectangleProzess
@{ shape: rounded } / eventEreignis
@{ shape: stadium } / terminal / pillEndpunkt
@{ shape: fr-rect } / subprocess / subproc / framed-rectangle / subroutineTeilprozess
@{ shape: cyl } / db / database / cylinderDatenbank
@{ shape: datastore } / data-storeDatenspeicher
@{ shape: circle } / circStart
@{ shape: bang } / bangExplosion
@{ shape: cloud } / cloudWolke
@{ shape: diam } / decision / diamond / questionEntscheidung
@{ shape: hex } / hexagon / prepareBedingung vorbereiten
@{ shape: lean-r } / lean-right / in-outDatenein-/ausgabe
@{ shape: lean-l } / lean-left / out-inDatenein-/ausgabe
@{ shape: trap-b } / priority / trapezoid-bottom / trapezoidPrioritätsaktion
@{ shape: trap-t } / manual / trapezoid-top / inv-trapezoidManueller Vorgang
@{ shape: dbl-circ } / double-circleEnde
@{ shape: text }Textblock
@{ shape: notch-rect } / card / notched-rectangleKarte
@{ shape: lin-rect } / lined-rectangle / lined-process / lin-proc / shaded-processSchraffierter Prozess
@{ shape: sm-circ } / start / small-circleStart
@{ shape: fr-circ } / stop / framed-circleEnde
@{ shape: fork } / joinVerzweigung/Zusammenführung
@{ shape: hourglass } / hourglass / collateZusammenstellen
@{ shape: brace } / comment / brace-lKommentar
@{ shape: brace-r }Kommentar rechts
@{ shape: braces }Kommentar mit beidseitigen Klammern
@{ shape: bolt } / com-link / lightning-boltKommunikationsverbindung
@{ shape: doc } / doc / documentDokument
@{ shape: delay } / half-rounded-rectangleVerzögerung
@{ shape: h-cyl } / das / horizontal-cylinderDirektzugriffsspeicher
@{ shape: lin-cyl } / disk / lined-cylinderPlattenspeicher
@{ shape: curv-trap } / curved-trapezoid / displayAnzeige
@{ shape: div-rect } / div-proc / divided-rectangle / divided-processGeteilter Prozess
@{ shape: tri } / extract / triangleExtraktion
@{ shape: win-pane } / internal-storage / window-paneInterner Speicher
@{ shape: f-circ } / junction / filled-circleKnotenpunkt
@{ shape: notch-pent } / loop-limit / notched-pentagonSchleifengrenze
@{ shape: flip-tri } / manual-file / flipped-triangleManuelle Ablage
@{ shape: sl-rect } / manual-input / sloped-rectangleManuelle Eingabe
@{ shape: docs } / documents / st-doc / stacked-documentMehrere Dokumente
@{ shape: st-rect } / procs / processes / stacked-rectangleMehrere Prozesse
@{ shape: bow-rect } / stored-data / bow-tie-rectangleGespeicherte Daten
@{ shape: cross-circ } / summary / crossed-circleZusammenfassung
@{ shape: tag-doc } / tag-doc / tagged-documentMarkiertes Dokument
@{ shape: tag-rect } / tagged-rectangle / tag-proc / tagged-processMarkierter Prozess
@{ shape: flag } / paper-tapePapierband
@{ shape: odd }Asymmetrische Form
@{ shape: lin-doc } / lined-documentLiniertes Dokument

Formen und Texte

Der Katalog enthält alle 48 Standardformen des Renderers 11.15 mit Aliasnamen. Nutze @{ shape: ... } für neue Formen; die klassische Notation bleibt gültig.

Mermaid
flowchart TB
  A@{ shape: sl-rect, label: "Titel eingeben" }
  B@{ shape: doc, label: "Dokumententwurf" }
  C@{ shape: diam, label: "Vollständig?" }
  D@{ shape: cyl, label: "Archiv" }
  A --> B --> C
  C -->|Ja| D
  C -->|Nein| A

Wird geladen…

Untergruppen

Interne Richtung kann bei Verbindungen nach außen verloren gehen. Verbinde ganze Untergruppen, wenn du ihre Richtung erhalten möchtest.

Mermaid
flowchart LR
  subgraph prep ["Vorbereitung"]
    direction TB
    A["Gliederung"] --> B["Entwurf"]
  end
  subgraph review ["Prüfung"]
    direction TB
    C["Prüfen"] --> D["Genehmigen"]
  end
  prep --> review

Wird geladen…

Stile und Markdown

classDef definiert Stile; class oder ::: wendet sie an. style betrifft einen Knoten, linkStyle den Deklarationsindex und Ids einzelne Kanten.

Mermaid
flowchart LR
  A["`**Anleitung** entwerfen`"]:::focus e1@--> B["Prüfung"]
  B --> C["Veröffentlichen"]
  classDef focus fill:#d3e5ff,stroke:#0070f3,color:#171717
  class B focus
  style C stroke-width:2px
  linkStyle 1 stroke:#0070f3,stroke-width:2px
  classDef edge stroke:#0070f3
  class e1 edge

Wird geladen…

Abstände und Layout-Renderer

nodeSpacing und rankSpacing passen Abstände an. ELK und Iconpakete erfordern Host-Registrierung; gewöhnliche Formen brauchen diese Erweiterungen nicht.

Mermaid
---
config:
  flowchart:
    nodeSpacing: 35
    rankSpacing: 60
---
flowchart LR
  A["Schreiben"] --> B["Prüfung"] --> C["Veröffentlichen"]

Wird geladen…

Häufige Fehler

Eine Form offen lassen

Schließe die Klammern und setze den Text in Anführungszeichen.

Ungültige Syntax: Korrektur weiter unten

flowchart LR
  A[Draft

end als Id verwenden

end schließt Untergruppen; nutze eine andere Id und end nur als geschützte Beschriftung.

Klicks im strikten Modus erwarten

Diese Website deaktiviert Rückrufe; nutze die externen Editorlinks.

Einschränkungen

  • Das automatische Layout setzt Positionen; zusätzliche Striche definieren keine Pixelabstände.
  • Externe Kanten können die Untergruppenrichtung übersteuern.
  • Icons brauchen Pakete, Bilder erreichbare Ressourcen und ELK eine Registrierung.

Häufig gestellte Fragen

Wie wähle ich eine neue Form?
Nutze A@{ shape: name, label: "Text" } mit einem Namen oder Alias aus dem Katalog.
Warum wird die Untergruppenrichtung ignoriert?
Kanten zwischen inneren und äußeren Knoten können die Untergruppe zur globalen Richtung zwingen.
Wie gestalte ich nur eine Kante?
Nutze linkStyle mit nullbasiertem Index oder eine visuelle Klasse für eine Kanten-Id.