mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-04 12:54:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			236 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="en" xmlns="http://www.w3.org/1999/html">
 | 
						|
  <head>
 | 
						|
    <meta charset="utf-8" />
 | 
						|
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
						|
    <title>States Mermaid Quick Test Page</title>
 | 
						|
    <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
 | 
						|
    <style>
 | 
						|
      div.mermaid {
 | 
						|
        /* font-family: 'trebuchet ms', verdana, arial; */
 | 
						|
        font-family: 'Courier New', Courier, monospace !important;
 | 
						|
      }
 | 
						|
    </style>
 | 
						|
  </head>
 | 
						|
 | 
						|
  <body>
 | 
						|
    <h1>State diagram demos</h1>
 | 
						|
    <h2>Very simple showing change from State1 to State2</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
    ---
 | 
						|
    title: Very simple diagram
 | 
						|
    ---
 | 
						|
    stateDiagram
 | 
						|
      accTitle: This is the accessible title
 | 
						|
      accDescr:This is an accessible description
 | 
						|
      State1 --> State2
 | 
						|
    </pre>
 | 
						|
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>This has classDef statements to apply style classes to specific states</h2>
 | 
						|
    <h4>Here are the <code>classDef</code> statements:</h4>
 | 
						|
    <p>
 | 
						|
      <code>
 | 
						|
        classDef notMoving fill:white<br />
 | 
						|
        classDef movement font-style:italic<br />
 | 
						|
        classDef badBadEvent
 | 
						|
        fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow<br />
 | 
						|
      </code>
 | 
						|
    </p>
 | 
						|
    <h4>And these are how they are applied:</h4>
 | 
						|
    <p>
 | 
						|
      <code>
 | 
						|
        class Still notMoving<br />
 | 
						|
        class Moving, Crash movement<br />
 | 
						|
        class Crash badBadEvent<br />
 | 
						|
      </code>
 | 
						|
    </p>
 | 
						|
    <pre class="mermaid">
 | 
						|
    ---
 | 
						|
    title: Very simple diagram
 | 
						|
    ---
 | 
						|
    stateDiagram
 | 
						|
      direction TB
 | 
						|
 | 
						|
      accTitle: This is the accessible title
 | 
						|
      accDescr: This is an accessible description
 | 
						|
 | 
						|
      classDef notMoving fill:white
 | 
						|
      classDef movement font-style:italic
 | 
						|
      classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
 | 
						|
 | 
						|
      [*]--> Still
 | 
						|
      Still --> [*]
 | 
						|
      Still --> Moving
 | 
						|
      Moving --> Still
 | 
						|
      Moving --> Crash
 | 
						|
      Crash --> [*]
 | 
						|
 | 
						|
      class Still notMoving
 | 
						|
      class Moving, Crash movement
 | 
						|
      class Crash badBadEvent
 | 
						|
      class end badBadEvent
 | 
						|
    </pre>
 | 
						|
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>Here is a diagram that uses the ::: operator to apply styles to states</h2>
 | 
						|
    <h4>Here are the <code>classDef</code> statements:</h4>
 | 
						|
    <p>
 | 
						|
      <code>
 | 
						|
        classDef notMoving fill:white<br />
 | 
						|
        classDef movement font-style:italic<br />
 | 
						|
        classDef badBadEvent
 | 
						|
        fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow<br />
 | 
						|
      </code>
 | 
						|
    </p>
 | 
						|
    <h4>And these are how they are applied:</h4>
 | 
						|
    <p>
 | 
						|
      <code>
 | 
						|
        [*] --> Still:::notMoving<br />
 | 
						|
        ...<br />
 | 
						|
        Still --> Moving:::movement<br />
 | 
						|
        ...<br />
 | 
						|
        Moving --> Crash:::movement<br />
 | 
						|
        Crash:::badBadEvent --> [*]<br />
 | 
						|
      </code>
 | 
						|
    </p>
 | 
						|
    <p>
 | 
						|
      Note that both the starting state and the end state have styles applied:<br />
 | 
						|
      The start state has the <i>start</i> classDef style<br />and the end state has the
 | 
						|
      <i>stop</i> classDef style applied.
 | 
						|
    </p>
 | 
						|
    <pre class="mermaid">
 | 
						|
    stateDiagram
 | 
						|
      direction TB
 | 
						|
 | 
						|
		  accTitle: This is the accessible title
 | 
						|
      accDescr: This is an accessible description
 | 
						|
 | 
						|
      classDef notMoving fill:white
 | 
						|
      classDef movement font-style:italic
 | 
						|
      classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
 | 
						|
 | 
						|
      [*] --> Still:::notMoving
 | 
						|
      Still --> [*]
 | 
						|
      Still --> Moving:::movement
 | 
						|
      Moving --> Still
 | 
						|
      Moving --> Crash:::movement
 | 
						|
      Crash:::badBadEvent --> [*]
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <pre class="mermaid">
 | 
						|
    stateDiagram-v2
 | 
						|
      accTitle: very very simple state
 | 
						|
      accDescr: This is a state diagram showing one state
 | 
						|
      State1
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>States with spaces in them</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
      stateDiagram
 | 
						|
        classDef yourState font-style:italic,font-weight:bold,fill:white
 | 
						|
 | 
						|
        yswsii: Your state with spaces in it
 | 
						|
        [*] --> yswsii:::yourState
 | 
						|
        [*] --> SomeOtherState
 | 
						|
        SomeOtherState --> YetAnotherState
 | 
						|
        yswsii --> YetAnotherState
 | 
						|
        YetAnotherState --> [*]
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>You can label the relationships</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
    stateDiagram-v2
 | 
						|
    [*] --> State1
 | 
						|
    State1 --> State2 : Transition 1
 | 
						|
    State1 --> State3 : Transition 2
 | 
						|
    State1 --> State4 : Transition 3
 | 
						|
    State1 --> [*]
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>This shows Composite states</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
    stateDiagram-v2
 | 
						|
    [*] --> First
 | 
						|
    First --> Second
 | 
						|
    First --> Third
 | 
						|
 | 
						|
    state "the first composite" as First {
 | 
						|
        [*] --> 1st
 | 
						|
        state innerFirst {
 | 
						|
          state "1 in innerFirst" as 1st1st
 | 
						|
          1st2nd: 2 in innerFirst
 | 
						|
          [*] --> 1st1st
 | 
						|
          1st1st --> 1st2nd
 | 
						|
          %% 1st2nd --> 1st
 | 
						|
        }
 | 
						|
        1st --> innerFirst
 | 
						|
        innerFirst --> 2nd
 | 
						|
    }
 | 
						|
    state Second {
 | 
						|
        2nd --> [*]
 | 
						|
    }
 | 
						|
    state Third {
 | 
						|
        [*] --> 3rd
 | 
						|
        3rd --> [*]
 | 
						|
    }
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>Composite states can link to themselves</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
      stateDiagram-v2
 | 
						|
            state Active {
 | 
						|
              Idle
 | 
						|
            }
 | 
						|
            Inactive --> Idle: ACT
 | 
						|
            Active --> Active: LOG
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>transition labels can span multiple lines using "br" tags or \n</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
      stateDiagram-v2
 | 
						|
      [*] --> S1
 | 
						|
      S1 --> S2: This long line uses a br tag<br />to create multiple<br />lines.
 | 
						|
      S1 --> S3: This transition description uses \na newline character\nto create multiple\nlines.
 | 
						|
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <h2>You can add Notes</h2>
 | 
						|
    <pre class="mermaid">
 | 
						|
    stateDiagram-v2
 | 
						|
      direction LR
 | 
						|
      State1: A state with a note
 | 
						|
      note right of State1
 | 
						|
        Important information!<br />You can write notes.<br />And\nthey\ncan\nbe\nmulti-\nline.
 | 
						|
      end note
 | 
						|
      State1 --> State2
 | 
						|
      note left of State2 : Notes can be to the left of a state\n(like this one).
 | 
						|
      note right of State2 : Notes can be to the right of a state\n(like this one).
 | 
						|
    </pre>
 | 
						|
    <hr />
 | 
						|
 | 
						|
    <script type="module">
 | 
						|
      import mermaid from './mermaid.esm.mjs';
 | 
						|
      mermaid.initialize({
 | 
						|
        theme: 'default',
 | 
						|
        // themeCSS: '.node rect { fill: red; }',
 | 
						|
        logLevel: 3,
 | 
						|
        securityLevel: 'loose',
 | 
						|
        flowchart: { curve: 'basis' },
 | 
						|
        gantt: { axisFormat: '%m/%d/%Y' },
 | 
						|
        sequence: { actorMargin: 50 },
 | 
						|
        // sequenceDiagram: { actorMargin: 300 } // deprecated
 | 
						|
      });
 | 
						|
    </script>
 | 
						|
  </body>
 | 
						|
</html>
 |