Skip to content

Commit e9d4c11

Browse files
authored
Merge pull request #7501 from mermaid-js/feature/neo-look-base
feature: implement neo look and themes for mermaid diagrams
1 parent 00aef12 commit e9d4c11

124 files changed

Lines changed: 7243 additions & 628 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/dirty-dryers-glow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look styling for state diagrams

.changeset/easy-rules-smile.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look support for sequence diagrams with drop shadows, and enhanced styling

.changeset/lazy-moles-greet.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look styling for ER diagrams

.changeset/legal-rockets-train.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look styling for requirement diagrams

.changeset/pretty-lemons-sip.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look styling for mindmap diagrams

.changeset/ready-areas-buy.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look for mermaid flowchart diagrams

.changeset/rich-roses-shake.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look and themes for class diagram

.changeset/three-falcons-hang.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look support for timeline diagram with drop shadows, additoinal redux themes and enhanced styling

.changeset/twelve-mice-bow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'mermaid': minor
3+
---
4+
5+
feat: implement neo look and themes for gitGraph diagram
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
import { imgSnapshotTest } from '../../helpers/util.ts';
2+
3+
const themes = [
4+
{ theme: 'neo', label: 'neo' },
5+
{ theme: 'neo-dark', label: 'neo-dark' },
6+
{ theme: 'redux', label: 'redux' },
7+
{ theme: 'redux-dark', label: 'redux-dark' },
8+
];
9+
10+
const diagrams = {
11+
allRelationships: `
12+
classDiagram
13+
Class01 <|-- AveryLongClass : Cool
14+
&lt;&lt;interface&gt;&gt; Class01
15+
Class03 *-- Class04
16+
Class05 o-- Class06
17+
Class07 .. Class08
18+
Class09 --> C2 : Where am i?
19+
Class09 --* C3
20+
Class09 --|> Class07
21+
Class12 <|.. Class08
22+
Class11 ..>Class12
23+
Class07 : equals()
24+
Class07 : Object[] elementData
25+
Class01 : size()
26+
Class01 : int chimp
27+
Class01 : int gorilla
28+
Class01 : -int privateChimp
29+
Class01 : +int publicGorilla
30+
Class01 : #int protectedMarmoset
31+
Class08 <--> C2: Cool label
32+
class Class10 {
33+
&lt;&lt;service&gt;&gt;
34+
int id
35+
test()
36+
}
37+
`,
38+
39+
cardinality: `
40+
classDiagram
41+
Class01 "1" <|--|> "*" AveryLongClass : Cool
42+
&lt;&lt;interface&gt;&gt; Class01
43+
Class03 "1" *-- "*" Class04
44+
Class05 "1" o-- "many" Class06
45+
Class07 "1" .. "*" Class08
46+
Class09 "1" --> "*" C2 : Where am i?
47+
Class09 "*" --* "*" C3
48+
Class09 "1" --|> "1" Class07
49+
Class07 : equals()
50+
Class07 : Object[] elementData
51+
Class01 : size()
52+
Class01 : int chimp
53+
Class01 : int gorilla
54+
Class08 "1" <--> "*" C2: Cool label
55+
class Class10 {
56+
&lt;&lt;service&gt;&gt;
57+
int id
58+
test()
59+
}
60+
`,
61+
62+
genericClasses: `
63+
classDiagram
64+
class Class01~T~
65+
Class01 : size()
66+
Class01 : int chimp
67+
Class01 : int gorilla
68+
Class08 <--> C2: Cool label
69+
class Class10~T~ {
70+
&lt;&lt;service&gt;&gt;
71+
int id
72+
test()
73+
}
74+
`,
75+
76+
directionTB: `
77+
classDiagram
78+
direction TB
79+
class Student {
80+
-idCard : IdCard
81+
}
82+
class IdCard{
83+
-id : int
84+
-name : string
85+
}
86+
class Bike{
87+
-id : int
88+
-name : string
89+
}
90+
Student "1" --o "1" IdCard : carries
91+
Student "1" --o "1" Bike : rides
92+
`,
93+
94+
fullWithNotes: `
95+
classDiagram
96+
note "I love this diagram!\\nDo you love it?"
97+
Class01 <|-- AveryLongClass : Cool
98+
&lt;&lt;interface&gt;&gt; Class01
99+
Class03 "1" *-- "*" Class04
100+
Class05 "1" o-- "many" Class06
101+
Class07 "1" .. "*" Class08
102+
Class09 "1" --> "*" C2 : Where am i?
103+
Class09 "*" --* "*" C3
104+
Class09 "1" --|> "1" Class07
105+
Class12 <|.. Class08
106+
Class11 ..>Class12
107+
Class07 : equals()
108+
Class07 : Object[] elementData
109+
Class01 : size()
110+
Class01 : int chimp
111+
Class01 : int gorilla
112+
Class01 : -int privateChimp
113+
Class01 : +int publicGorilla
114+
Class01 : #int protectedMarmoset
115+
Class08 <--> C2: Cool label
116+
class Class10 {
117+
&lt;&lt;service&gt;&gt;
118+
int id
119+
test()
120+
}
121+
note for Class10 "Cool class\\nI said it's very cool class!"
122+
`,
123+
};
124+
125+
describe('Class diagram — Neo look with new themes', () => {
126+
// 1. All relationship types + interface + visibility modifiers
127+
themes.forEach(({ theme, label }) => {
128+
it(`NEO-1 [${label}]: should render all relationship types with neo look`, () => {
129+
imgSnapshotTest(diagrams.allRelationships, {
130+
logLevel: 1,
131+
htmlLabels: true,
132+
look: 'neo',
133+
theme,
134+
});
135+
});
136+
});
137+
138+
// 2. Cardinality on every relationship type
139+
themes.forEach(({ theme, label }) => {
140+
it(`NEO-2 [${label}]: should render cardinality with neo look`, () => {
141+
imgSnapshotTest(diagrams.cardinality, {
142+
logLevel: 1,
143+
htmlLabels: true,
144+
look: 'neo',
145+
theme,
146+
});
147+
});
148+
});
149+
150+
// 3. Generic classes
151+
themes.forEach(({ theme, label }) => {
152+
it(`NEO-3 [${label}]: should render generic classes with neo look`, () => {
153+
imgSnapshotTest(diagrams.genericClasses, {
154+
logLevel: 1,
155+
htmlLabels: true,
156+
look: 'neo',
157+
theme,
158+
});
159+
});
160+
});
161+
162+
// 4. Direction TB with aggregation
163+
themes.forEach(({ theme, label }) => {
164+
it(`NEO-4 [${label}]: should render direction TB diagram with neo look`, () => {
165+
imgSnapshotTest(diagrams.directionTB, {
166+
logLevel: 1,
167+
htmlLabels: true,
168+
look: 'neo',
169+
theme,
170+
});
171+
});
172+
});
173+
174+
// 5. Full diagram with global and per-class notes
175+
themes.forEach(({ theme, label }) => {
176+
it(`NEO-5 [${label}]: should render full diagram with notes using neo look`, () => {
177+
imgSnapshotTest(diagrams.fullWithNotes, {
178+
logLevel: 1,
179+
htmlLabels: true,
180+
look: 'neo',
181+
theme,
182+
});
183+
});
184+
});
185+
});

0 commit comments

Comments
 (0)