From f281f8406e9f3526f036f4365b51817ef67485a6 Mon Sep 17 00:00:00 2001 From: Kaz Wesley Date: Fri, 24 Jan 2025 14:39:44 -0800 Subject: [PATCH] Component status colors (#12124) https://github.com/user-attachments/assets/865f3be3-e963-4f27-97aa-419a66d04d73 Fixes #12001 - Component color reflects pending status - Edges from component reflect pending/selected status --- .../project-view/edgeRendering.spec.ts | 4 +- app/gui/src/project-view/assets/base.css | 13 ++++++- .../components/GraphEditor/GraphEdge.vue | 37 ++++++++++--------- .../components/GraphEditor/GraphNode.vue | 25 ++++--------- .../composables/componentColors.ts | 27 ++++++++++++++ .../stores/graph/unconnectedEdges.ts | 2 - 6 files changed, 68 insertions(+), 40 deletions(-) create mode 100644 app/gui/src/project-view/composables/componentColors.ts diff --git a/app/gui/integration-test/project-view/edgeRendering.spec.ts b/app/gui/integration-test/project-view/edgeRendering.spec.ts index f1de01f3dc58..dfcd8ada7ac6 100644 --- a/app/gui/integration-test/project-view/edgeRendering.spec.ts +++ b/app/gui/integration-test/project-view/edgeRendering.spec.ts @@ -65,8 +65,8 @@ test('Hover behaviour of edges', async ({ page }) => { // Expect the top edge part to be dimmed const topEdge = page.locator('svg.behindNodes g:nth-child(2) path:nth-child(1)') - await expect(topEdge).toHaveClass('edge visible dimmed') + await expect(topEdge).toHaveClass('edge define-node-colors visible dimmed pending') // Expect the bottom edge part not to be dimmed const bottomEdge = page.locator('svg.behindNodes g:nth-child(2) path:nth-child(3)') - await expect(bottomEdge).toHaveClass('edge visible') + await expect(bottomEdge).toHaveClass('edge define-node-colors visible pending') }) diff --git a/app/gui/src/project-view/assets/base.css b/app/gui/src/project-view/assets/base.css index 135bc3587525..3154fc2209d7 100644 --- a/app/gui/src/project-view/assets/base.css +++ b/app/gui/src/project-view/assets/base.css @@ -88,9 +88,15 @@ #aaa 40% ); --color-node-text-missing-value: white; + --color-edge-from-node: color-mix( + in oklab, + var(--node-group-color) 85%, + white 15% + ); &.pending { - --color-node-primary: var(--color-node-pending); + --color-node-background: var(--color-node-pending); + --color-edge-from-node: var(--color-node-pending); } &.selected { @@ -109,6 +115,11 @@ var(--color-node-primary) 70%, black 30% ); + --color-edge-from-node: color-mix( + in oklab, + var(--color-node-primary) 40%, + white 60% + ); } } diff --git a/app/gui/src/project-view/components/GraphEditor/GraphEdge.vue b/app/gui/src/project-view/components/GraphEditor/GraphEdge.vue index 4818af27cf3c..eb5659f8767b 100644 --- a/app/gui/src/project-view/components/GraphEditor/GraphEdge.vue +++ b/app/gui/src/project-view/components/GraphEditor/GraphEdge.vue @@ -1,5 +1,6 @@