Skip to content

Commit b1b3510

Browse files
committed
fix(flowchart): sync node card theme with VS Code webview classes
- prioritize `body.vscode-*` theme classes for flowchart color tokens - prevent system `prefers-color-scheme` from overriding VS Code iframe theme - align flowchart canvas background with VS Code editor/panel background vars
1 parent 78786a7 commit b1b3510

1 file changed

Lines changed: 66 additions & 37 deletions

File tree

src/views/flowchart/styles/flowchartView.theme.css

Lines changed: 66 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,76 @@ body {
2727
--flowchart-chevron-stroke-width: 1;
2828
}
2929

30+
/* VS Code dark theme classes (and forced dark) should always use dark palette */
31+
body.vscode-dark:not(.force-light),
32+
body.vscode-high-contrast:not(.force-light),
33+
body.force-dark {
34+
--flowchart-success-bg: #1a3a2a;
35+
--flowchart-success-border: #18a058;
36+
--flowchart-success-text: #a0d8b0;
37+
--flowchart-running-bg: #3a331a;
38+
--flowchart-running-border: #f0a020;
39+
--flowchart-running-text: #f5d38f;
40+
--flowchart-failed-bg: #3a1a1a;
41+
--flowchart-failed-border: #d03050;
42+
--flowchart-failed-text: #d8a0a0;
43+
--flowchart-notexec-bg: #2a2a2a;
44+
--flowchart-notexec-border: #666;
45+
--flowchart-notexec-text: #888;
46+
--flowchart-badge-bg: rgba(255, 255, 255, 0.1);
47+
--flowchart-badge-text: #aaa;
48+
--flowchart-hover-ring: rgba(24, 160, 88, 0.5);
49+
--flowchart-selected-ring: rgba(24, 160, 88, 0.9);
50+
--flowchart-nav-hover: rgba(255, 255, 255, 0.06);
51+
--flowchart-nav-active: rgba(24, 160, 88, 0.2);
52+
--flowchart-popover-bg: var(--vscode-editorWidget-background, #2a2a2a);
53+
--flowchart-popover-border: var(--vscode-widget-border, #444);
54+
--flowchart-popover-close: #888;
55+
--flowchart-popover-close-hover: #ddd;
56+
--flowchart-popover-secondary: #999;
57+
--flowchart-chevron-fill: #ffffff;
58+
--flowchart-chevron-stroke-width: 1;
59+
}
60+
61+
/* VS Code light theme classes (and forced light) should always use light palette */
62+
body.vscode-light:not(.force-dark),
63+
body.vscode-high-contrast-light:not(.force-dark),
64+
body.force-light {
65+
--flowchart-success-bg: #e8f5e9;
66+
--flowchart-success-border: #18a058;
67+
--flowchart-success-text: #1a3a1a;
68+
--flowchart-running-bg: #fff6e5;
69+
--flowchart-running-border: #f0a020;
70+
--flowchart-running-text: #5c3b00;
71+
--flowchart-failed-bg: #fdecea;
72+
--flowchart-failed-border: #d03050;
73+
--flowchart-failed-text: #3a1a1a;
74+
--flowchart-notexec-bg: #f5f5f5;
75+
--flowchart-notexec-border: #999;
76+
--flowchart-notexec-text: #888;
77+
--flowchart-badge-bg: rgba(0, 0, 0, 0.08);
78+
--flowchart-badge-text: #666;
79+
--flowchart-hover-ring: rgba(24, 160, 88, 0.4);
80+
--flowchart-selected-ring: rgba(24, 160, 88, 0.8);
81+
--flowchart-nav-hover: rgba(0, 0, 0, 0.04);
82+
--flowchart-nav-active: rgba(24, 160, 88, 0.1);
83+
--flowchart-popover-bg: var(--vscode-editorWidget-background, #fff);
84+
--flowchart-popover-border: var(--vscode-widget-border, #e0e0e0);
85+
--flowchart-popover-close: #999;
86+
--flowchart-popover-close-hover: #333;
87+
--flowchart-popover-secondary: #888;
88+
--flowchart-chevron-fill: #000000;
89+
--flowchart-chevron-stroke-width: 0;
90+
}
91+
3092
/* Vue Flow canvas: dark background (default) */
3193
.vue-flow {
32-
background: var(--vscode-panel-background);
94+
background: var(--vscode-editor-background, var(--vscode-panel-background));
3395
}
3496

3597
/* Light theme — system preference when not forced dark */
3698
@media (prefers-color-scheme: light) {
37-
body:not(.force-dark) {
99+
body:not(.force-dark):not(.vscode-light):not(.vscode-high-contrast-light):not(.vscode-dark):not(.vscode-high-contrast) {
38100
--flowchart-success-bg: #e8f5e9;
39101
--flowchart-success-border: #18a058;
40102
--flowchart-success-text: #1a3a1a;
@@ -62,40 +124,7 @@ body {
62124
--flowchart-chevron-stroke-width: 0;
63125
}
64126

65-
body:not(.force-dark) .vue-flow {
66-
background: var(--vscode-panel-background);
127+
body:not(.force-dark):not(.vscode-light):not(.vscode-high-contrast-light):not(.vscode-dark):not(.vscode-high-contrast) .vue-flow {
128+
background: var(--vscode-editor-background, var(--vscode-panel-background));
67129
}
68130
}
69-
70-
/* Forced light theme */
71-
body.force-light {
72-
--flowchart-success-bg: #e8f5e9;
73-
--flowchart-success-border: #18a058;
74-
--flowchart-success-text: #1a3a1a;
75-
--flowchart-running-bg: #fff6e5;
76-
--flowchart-running-border: #f0a020;
77-
--flowchart-running-text: #5c3b00;
78-
--flowchart-failed-bg: #fdecea;
79-
--flowchart-failed-border: #d03050;
80-
--flowchart-failed-text: #3a1a1a;
81-
--flowchart-notexec-bg: #f5f5f5;
82-
--flowchart-notexec-border: #999;
83-
--flowchart-notexec-text: #888;
84-
--flowchart-badge-bg: rgba(0, 0, 0, 0.08);
85-
--flowchart-badge-text: #666;
86-
--flowchart-hover-ring: rgba(24, 160, 88, 0.4);
87-
--flowchart-selected-ring: rgba(24, 160, 88, 0.8);
88-
--flowchart-nav-hover: rgba(0, 0, 0, 0.04);
89-
--flowchart-nav-active: rgba(24, 160, 88, 0.1);
90-
--flowchart-popover-bg: #fff;
91-
--flowchart-popover-border: #e0e0e0;
92-
--flowchart-popover-close: #999;
93-
--flowchart-popover-close-hover: #333;
94-
--flowchart-popover-secondary: #888;
95-
--flowchart-chevron-fill: #000000;
96-
--flowchart-chevron-stroke-width: 0;
97-
}
98-
99-
body.force-light .vue-flow {
100-
background: var(--vscode-panel-background);
101-
}

0 commit comments

Comments
 (0)