Skip to content

Commit def6f19

Browse files
committed
Unify diagram color scheme across all diagram types
- Updated section diagrams, model diagrams, and verification trace diagrams - userRequirement: fill:#f9d6d6, stroke:#f55f5f - systemRequirement: fill:#fce4e4, stroke:#e68a8a - verification: fill:#d6f9d6, stroke:#5fd75f - Updated test expectations to match new color scheme
1 parent 0be6446 commit def6f19

File tree

4 files changed

+84
-63
lines changed

4 files changed

+84
-63
lines changed

core/src/diagrams.rs

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use log::debug;
99
use crate::relation;
1010
use crate::element::ElementType;
1111
use crate::element::RequirementType;
12-
use crate::element::VerificationType;
1312
use crate::git_commands;
1413
use crate::filesystem;
1514
use std::path::Path;
@@ -82,9 +81,9 @@ fn generate_section_diagram(
8281

8382
// Define Mermaid graph styles
8483
diagram.push_str(" %% Graph styling\n");
85-
diagram.push_str(" classDef requirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;\n");
84+
diagram.push_str(" classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;\n");
85+
diagram.push_str(" classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;\n");
8686
diagram.push_str(" classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;\n");
87-
diagram.push_str(" classDef externalLink fill:#d0e0ff,stroke:#3080ff,stroke-width:1px;\n");
8887
diagram.push_str(" classDef default fill:#f5f5f5,stroke:#333333,stroke-width:1px;\n\n");
8988

9089
let mut included_elements = HashSet::new();
@@ -198,9 +197,9 @@ fn add_element_to_diagram(
198197
let label = element.name.replace('"', """);
199198

200199
let class=match &element.element_type {
201-
ElementType::Requirement(RequirementType::User) => "requirement",
202-
ElementType::Requirement(RequirementType::System) =>"requirement",
203-
ElementType::Verification(_) =>"verification",
200+
ElementType::Requirement(RequirementType::User) => "userRequirement",
201+
ElementType::Requirement(RequirementType::System) =>"systemRequirement",
202+
ElementType::Verification(_) =>"verification",
204203
_ => "default"
205204
};
206205

@@ -256,10 +255,10 @@ fn add_element_to_diagram(
256255
let class = match registry.get_element(&target) {
257256
Some(existing_element)=>{
258257
match existing_element.element_type {
259-
ElementType::Requirement(RequirementType::User) => "requirement",
260-
ElementType::Requirement(RequirementType::System) => "requirement",
261-
ElementType::Verification(_) => "verification",
262-
_ => "default"
258+
ElementType::Requirement(RequirementType::User) => "userRequirement",
259+
ElementType::Requirement(RequirementType::System) => "systemRequirement",
260+
ElementType::Verification(_) => "verification",
261+
_ => "default"
263262
}
264263
},
265264
_ => "default"
@@ -585,14 +584,11 @@ pub fn generate_model_diagram(registry: &GraphRegistry) -> Result<String, Reqvir
585584
// Add auto-generation marker
586585
diagram.push_str(&format!(" %% {}\n", AUTOGEN_DIAGRAM_MARKER));
587586

588-
// Enhanced color scheme for different element types
587+
// Define Mermaid graph styles (matching section diagrams)
589588
diagram.push_str(" %% Graph styling\n");
590-
diagram.push_str(" classDef userRequirement fill:#ffe6e6,stroke:#ff4444,stroke-width:2px;\n");
591-
diagram.push_str(" classDef systemRequirement fill:#fff0e6,stroke:#ff8800,stroke-width:2px;\n");
592-
diagram.push_str(" classDef testVerification fill:#e6ffe6,stroke:#44ff44,stroke-width:2px;\n");
593-
diagram.push_str(" classDef analysisVerification fill:#e6f5ff,stroke:#4488ff,stroke-width:2px;\n");
594-
diagram.push_str(" classDef inspectionVerification fill:#f0e6ff,stroke:#8844ff,stroke-width:2px;\n");
595-
diagram.push_str(" classDef demonstrationVerification fill:#ffe6f5,stroke:#ff44aa,stroke-width:2px;\n");
589+
diagram.push_str(" classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;\n");
590+
diagram.push_str(" classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;\n");
591+
diagram.push_str(" classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;\n");
596592
diagram.push_str(" classDef folder fill:#f0f0f0,stroke:#666666,stroke-width:3px;\n");
597593
diagram.push_str(" classDef file fill:#ffffff,stroke:#999999,stroke-width:2px;\n");
598594
diagram.push_str(" classDef section fill:#fafafa,stroke:#aaaaaa,stroke-width:1px;\n");
@@ -657,6 +653,9 @@ pub fn generate_model_diagram(registry: &GraphRegistry) -> Result<String, Reqvir
657653
let class = get_element_class(&element.element_type);
658654
diagram.push_str(&format!(" class {} {};\n", element_id, class));
659655

656+
// Add click link to element
657+
diagram.push_str(&format!(" click {} \"{}\";\n", element_id, element.identifier));
658+
660659
included_elements.insert(element.identifier.clone());
661660
}
662661

@@ -765,16 +764,12 @@ fn group_by_section<'a>(elements: &[&'a Element]) -> HashMap<String, Vec<&'a Ele
765764
result
766765
}
767766

768-
/// Get CSS class name for element type with enhanced colors
767+
/// Get CSS class name for element type (matching section diagrams)
769768
fn get_element_class(element_type: &ElementType) -> &str {
770769
match element_type {
771770
ElementType::Requirement(RequirementType::User) => "userRequirement",
772771
ElementType::Requirement(RequirementType::System) => "systemRequirement",
773-
ElementType::Verification(VerificationType::Test) => "testVerification",
774-
ElementType::Verification(VerificationType::Analysis) => "analysisVerification",
775-
ElementType::Verification(VerificationType::Inspection) => "inspectionVerification",
776-
ElementType::Verification(VerificationType::Demonstration) => "demonstrationVerification",
777-
ElementType::Verification(VerificationType::Default) => "testVerification",
772+
ElementType::Verification(_) => "verification",
778773
_ => "default"
779774
}
780775
}

core/src/verification_trace.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,12 +297,14 @@ impl<'a> VerificationTraceGenerator<'a> {
297297
&& !base_url.is_empty()
298298
&& !commit_hash.is_empty();
299299

300-
// Header with CSS classes (reused from diagrams.rs pattern)
300+
// Header with CSS classes (matching diagrams.rs color scheme)
301301
diagram.push_str("```mermaid\n");
302302
diagram.push_str("graph TD\n");
303-
diagram.push_str(" classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;\n");
304-
diagram.push_str(" classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;\n");
305-
diagram.push_str(" classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;\n");
303+
diagram.push_str(" classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;\n");
304+
diagram.push_str(" classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;\n");
305+
diagram.push_str(" classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;\n");
306+
diagram.push_str(" classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;\n");
307+
diagram.push_str(" classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;\n");
306308
diagram.push_str("\n");
307309

308310
// Add verification node at the top

tests/test-verification-traces/expected_output.md

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
```mermaid
1414
graph TD
15-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
16-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
17-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
15+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
16+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
17+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
18+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
19+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
1820
1921
bfd26e943c93f2b8["OAuth Flow Test<br>(test-verification)"]:::verification
2022
click bfd26e943c93f2b8 "specifications/Verifications/Tests.md#oauth-flow-test";
@@ -40,9 +42,11 @@ graph TD
4042

4143
```mermaid
4244
graph TD
43-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
44-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
45-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
45+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
46+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
47+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
48+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
49+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
4650
4751
473f7ef449cf9463["Session Timeout Test<br>(test-verification)"]:::verification
4852
click 473f7ef449cf9463 "specifications/Verifications/Tests.md#session-timeout-test";
@@ -68,9 +72,11 @@ graph TD
6872

6973
```mermaid
7074
graph TD
71-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
72-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
73-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
75+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
76+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
77+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
78+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
79+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
7480
7581
30572046e8226c8d["Encryption Coverage Test<br>(test-verification)"]:::verification
7682
click 30572046e8226c8d "specifications/Verifications/Tests.md#encryption-coverage-test";
@@ -93,9 +99,11 @@ graph TD
9399

94100
```mermaid
95101
graph TD
96-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
97-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
98-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
102+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
103+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
104+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
105+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
106+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
99107
100108
28383c90c121c4a5["Coverage Calculation Test<br>(test-verification)"]:::verification
101109
click 28383c90c121c4a5 "specifications/Verifications/Tests.md#coverage-calculation-test";
@@ -123,9 +131,11 @@ graph TD
123131

124132
```mermaid
125133
graph TD
126-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
127-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
128-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
134+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
135+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
136+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
137+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
138+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
129139
130140
ee61d9a254ace553["Security Analysis<br>(analysis-verification)"]:::verification
131141
click ee61d9a254ace553 "specifications/Verifications/Tests.md#security-analysis";
@@ -145,9 +155,11 @@ graph TD
145155

146156
```mermaid
147157
graph TD
148-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
149-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
150-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
158+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
159+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
160+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
161+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
162+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
151163
152164
cd126a6fddc2bd83["Code Inspection<br>(inspection-verification)"]:::verification
153165
click cd126a6fddc2bd83 "specifications/Verifications/Tests.md#code-inspection";

tests/test-verification-traces/expected_redundant_output.md

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
```mermaid
1414
graph TD
15-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
16-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
17-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
15+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
16+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
17+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
18+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
19+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
1820
1921
bfd26e943c93f2b8["OAuth Flow Test<br>(test-verification)"]:::verification
2022
click bfd26e943c93f2b8 "specifications/Verifications/Tests.md#oauth-flow-test";
@@ -40,9 +42,11 @@ graph TD
4042

4143
```mermaid
4244
graph TD
43-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
44-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
45-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
45+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
46+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
47+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
48+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
49+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
4650
4751
473f7ef449cf9463["Session Timeout Test<br>(test-verification)"]:::verification
4852
click 473f7ef449cf9463 "specifications/Verifications/Tests.md#session-timeout-test";
@@ -68,9 +72,11 @@ graph TD
6872

6973
```mermaid
7074
graph TD
71-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
72-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
73-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
75+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
76+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
77+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
78+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
79+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
7480
7581
30572046e8226c8d["Encryption Coverage Test<br>(test-verification)"]:::verification
7682
click 30572046e8226c8d "specifications/Verifications/Tests.md#encryption-coverage-test";
@@ -93,9 +99,11 @@ graph TD
9399

94100
```mermaid
95101
graph TD
96-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
97-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
98-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
102+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
103+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
104+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
105+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
106+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
99107
100108
28383c90c121c4a5["Coverage Calculation Test<br>(test-verification)"]:::verification
101109
click 28383c90c121c4a5 "specifications/Verifications/Tests.md#coverage-calculation-test";
@@ -123,9 +131,11 @@ graph TD
123131

124132
```mermaid
125133
graph TD
126-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
127-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
128-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
134+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
135+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
136+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
137+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
138+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
129139
130140
ee61d9a254ace553["Security Analysis<br>(analysis-verification)"]:::verification
131141
click ee61d9a254ace553 "specifications/Verifications/Tests.md#security-analysis";
@@ -145,9 +155,11 @@ graph TD
145155

146156
```mermaid
147157
graph TD
148-
classDef verified fill:#90EE90,stroke:#000,stroke-width:2px;
149-
classDef requirement fill:#87CEEB,stroke:#000,stroke-width:1px;
150-
classDef verification fill:#FFD700,stroke:#000,stroke-width:2px;
158+
classDef userRequirement fill:#f9d6d6,stroke:#f55f5f,stroke-width:1px;
159+
classDef systemRequirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
160+
classDef requirement fill:#fce4e4,stroke:#e68a8a,stroke-width:1px;
161+
classDef verified fill:#f9d6d6,stroke:#f55f5f,stroke-width:2px;
162+
classDef verification fill:#d6f9d6,stroke:#5fd75f,stroke-width:1px;
151163
152164
cd126a6fddc2bd83["Code Inspection<br>(inspection-verification)"]:::verification
153165
click cd126a6fddc2bd83 "specifications/Verifications/Tests.md#code-inspection";

0 commit comments

Comments
 (0)