collab/mermaid/demos/classchart.htmlblame
View source
6dd74de1<!doctype html>
6dd74de2<html lang="en">
6dd74de3 <head>
6dd74de4 <meta charset="utf-8" />
6dd74de5 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
6dd74de6 <title>Class diagrams Mermaid Quick Test Page</title>
6dd74de7 <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
6dd74de8 <style>
6dd74de9 div.mermaid {
6dd74de10 /* font-family: 'trebuchet ms', verdana, arial; */
6dd74de11 font-family: 'Courier New', Courier, monospace !important;
6dd74de12 }
6dd74de13 </style>
6dd74de14 </head>
6dd74de15
6dd74de16 <body>
6dd74de17 <h1>Class diagram demos</h1>
6dd74de18
6dd74de19 <pre class="mermaid">
6dd74de20 ---
6dd74de21 title: Demo Class Diagram
6dd74de22 ---
6dd74de23 classDiagram
6dd74de24 accTitle: Demo Class Diagram
6dd74de25 accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
6dd74de26
6dd74de27 Animal <|-- Duck
6dd74de28 Animal <|-- Fish
6dd74de29 Animal <|-- Zebra
6dd74de30 Animal : +int age
6dd74de31 Animal : +String gender
6dd74de32 Animal: +isMammal()
6dd74de33 Animal: +mate()
6dd74de34
6dd74de35 class Duck{
6dd74de36 +String beakColor
6dd74de37 +swim()
6dd74de38 +quack()
6dd74de39 }
6dd74de40 class Fish{
6dd74de41 -Listint sizeInFeet
6dd74de42 -canEat()
6dd74de43 }
6dd74de44 class Zebra{
6dd74de45 +bool is_wild
6dd74de46 +run(List~T~, List~OT~)
6dd74de47 %% +run-composite(List~T, K~)
6dd74de48 +run-nested(List~List~OT~~)
6dd74de49 }
6dd74de50
6dd74de51 </pre>
6dd74de52 <hr />
6dd74de53
6dd74de54 <pre class="mermaid">
6dd74de55 classDiagram
6dd74de56 Class01 <|-- AveryLongClass : Cool
6dd74de57
6dd74de58 &lt;&lt;interface&gt;&gt; Class01
6dd74de59 Class03 "0" *-- "0..n" Class04
6dd74de60 Class05 "1" o-- "many" Class06
6dd74de61 Class07 .. Class08
6dd74de62 Class09 "many" --> "1" C2 : Where am i?
6dd74de63 Class09 "0" --* "1..n" C3
6dd74de64 Class09 --|> Class07
6dd74de65 Class07 : equals()
6dd74de66 Class07 : Object[] elementData
6dd74de67 Class01 : #size()
6dd74de68 Class01 : -int chimp
6dd74de69 Class01 : +int gorilla
6dd74de70 Class08 <--> C2: Cool label
6dd74de71 class Class10 {
6dd74de72 &lt;&lt;service&gt;&gt;
6dd74de73 int id
6dd74de74 size()
6dd74de75 }
6dd74de76 </pre>
6dd74de77 <hr />
6dd74de78
6dd74de79 <pre class="mermaid">
6dd74de80 classDiagram
6dd74de81 class Class01~T~
6dd74de82 Class01 : #size()
6dd74de83 Class01 : -int chimp
6dd74de84 Class01 : +int gorilla
6dd74de85 Class01 : +abstractAttribute string*
6dd74de86 class Class10~T~ {
6dd74de87 &lt;&lt;service&gt;&gt;
6dd74de88 int id
6dd74de89 size()
6dd74de90 }
6dd74de91 </pre>
6dd74de92 <hr />
6dd74de93
6dd74de94 <pre class="mermaid">
6dd74de95 classDiagram
6dd74de96 Class01~T~ <|-- AveryLongClass : Cool
6dd74de97 &lt;&lt;interface&gt;&gt; Class01
6dd74de98 Class03~T~ "0" *-- "0..n" Class04
6dd74de99 Class05 "1" o-- "many" Class06
6dd74de100 Class07~T~ .. Class08
6dd74de101 Class09 "many" --> "1" C2 : Where am i?
6dd74de102 Class09 "0" --* "1..n" C3
6dd74de103 Class09 --|> Class07
6dd74de104 Class07 : equals()
6dd74de105 Class07 : Object[] elementData
6dd74de106 Class01 : #size()
6dd74de107 Class01 : -int chimp
6dd74de108 Class01 : +int gorilla
6dd74de109 Class08 <--> C2: Cool label
6dd74de110 class Class10 {
6dd74de111 &lt;&lt;service&gt;&gt;
6dd74de112 int id
6dd74de113 size()
6dd74de114 }
6dd74de115 </pre>
6dd74de116 <hr />
6dd74de117
6dd74de118 <pre class="mermaid">
6dd74de119 classDiagram
6dd74de120 Interface1 ()-- Interface1Impl
6dd74de121 </pre>
6dd74de122 <hr />
6dd74de123
6dd74de124 <pre class="mermaid">
6dd74de125 classDiagram
6dd74de126 direction LR
6dd74de127 Animal ()-- Dog
6dd74de128 Animal ()-- Cat
6dd74de129 note for Cat "should have no members area"
6dd74de130 Dog : bark()
6dd74de131 Dog : species()
6dd74de132 </pre>
6dd74de133 <hr />
6dd74de134
6dd74de135 <pre class="mermaid">
6dd74de136 classDiagram
6dd74de137 direction RL
6dd74de138 Fruit ()-- Apple
6dd74de139 Apple : color()
6dd74de140 Apple : -int leafCount()
6dd74de141 Fruit ()-- Pineapple
6dd74de142 Pineapple : color()
6dd74de143 Pineapple : -int leafCount()
6dd74de144 Pineapple : -int spikeCount()
6dd74de145 </pre>
6dd74de146 <hr />
6dd74de147
6dd74de148 <pre class="mermaid">
6dd74de149 classDiagram
6dd74de150 class Person {
6dd74de151 +ID : Guid
6dd74de152 +FirstName : string
6dd74de153 +LastName : string
6dd74de154 -privateProperty : string
6dd74de155 #ProtectedProperty : string
6dd74de156 ~InternalProperty : string
6dd74de157 ~AnotherInternalProperty : List~List~string~~
6dd74de158 }
6dd74de159 class People List~List~Person~~
6dd74de160 </pre>
6dd74de161 <hr />
6dd74de162 <pre class="mermaid">
6dd74de163 classDiagram
6dd74de164 namespace Company.Project.Module {
6dd74de165 class GenericClass~T~ {
6dd74de166 +addItem(item: T)
6dd74de167 +getItem() T
6dd74de168 }
6dd74de169 }
6dd74de170 </pre>
6dd74de171 <hr />
6dd74de172 <pre class="mermaid">
6dd74de173 classDiagram
6dd74de174 namespace Company.Project.Module.SubModule {
6dd74de175 class Report {
6dd74de176 +generatePDF(data: List)
6dd74de177 +generateCSV(data: List)
6dd74de178 }
6dd74de179 }
6dd74de180 namespace Company.Project.Module {
6dd74de181 class Admin {
6dd74de182 +generateReport()
6dd74de183 }
6dd74de184 }
6dd74de185 Admin --> Report : generates
6dd74de186 </pre>
6dd74de187 <hr />
6dd74de188 <pre class="mermaid">
6dd74de189 classDiagram
6dd74de190 namespace Company.Project.Module {
6dd74de191 class User {
6dd74de192 +login(username: String, password: String)
6dd74de193 +logout()
6dd74de194 }
6dd74de195 class Admin {
6dd74de196 +addUser(user: User)
6dd74de197 +removeUser(user: User)
6dd74de198 +generateReport()
6dd74de199 }
6dd74de200 class Report {
6dd74de201 +generatePDF(reportData: List)
6dd74de202 +generateCSV(reportData: List)
6dd74de203 }
6dd74de204 }
6dd74de205 Admin --> User : manages
6dd74de206 Admin --> Report : generates
6dd74de207 </pre>
6dd74de208 <hr />
6dd74de209 <pre class="mermaid">
6dd74de210 classDiagram
6dd74de211 namespace Shapes {
6dd74de212 class Shape {
6dd74de213 +calculateArea() double
6dd74de214 }
6dd74de215 class Circle {
6dd74de216 +double radius
6dd74de217 }
6dd74de218 class Square {
6dd74de219 +double side
6dd74de220 }
6dd74de221 }
6dd74de222
6dd74de223 Shape <|-- Circle
6dd74de224 Shape <|-- Square
6dd74de225
6dd74de226 namespace Vehicles {
6dd74de227 class Vehicle {
6dd74de228 +String brand
6dd74de229 }
6dd74de230 class Car {
6dd74de231 +int horsepower
6dd74de232 }
6dd74de233 class Bike {
6dd74de234 +boolean hasGears
6dd74de235 }
6dd74de236 }
6dd74de237
6dd74de238 Vehicle <|-- Car
6dd74de239 Vehicle <|-- Bike
6dd74de240 Car --> Circle : "Logo Shape"
6dd74de241 Bike --> Square : "Logo Shape"
6dd74de242
6dd74de243 </pre>
6dd74de244 <hr />
6dd74de245 <pre class="mermaid">
6dd74de246 classDiagram
6dd74de247 note "This is a outer note"
6dd74de248 note for Class1 "This is a outer note for Class1"
6dd74de249 namespace ns {
6dd74de250 note "This is a inner note"
6dd74de251 note for Class1 "This is a inner note for Class1"
6dd74de252 class Class1
6dd74de253 class Class2
6dd74de254 }
6dd74de255 </pre>
6dd74de256 <hr />
6dd74de257
6dd74de258 <script type="module">
6dd74de259 import mermaid from './mermaid.esm.mjs';
6dd74de260 mermaid.initialize({
6dd74de261 theme: 'default',
6dd74de262 // themeCSS: '.node rect { fill: red; }',
6dd74de263 logLevel: 3,
6dd74de264 securityLevel: 'loose',
6dd74de265 flowchart: { curve: 'basis' },
6dd74de266 gantt: { axisFormat: '%m/%d/%Y' },
6dd74de267 sequence: { actorMargin: 50 },
6dd74de268 // sequenceDiagram: { actorMargin: 300 } // deprecated
6dd74de269 });
6dd74de270 </script>
6dd74de271 </body>
6dd74de272</html>