From ea8eb8a8d7f6d8ea374834b570504d8382dab70f Mon Sep 17 00:00:00 2001 From: shrimbly Date: Mon, 20 Apr 2026 06:54:05 +1200 Subject: [PATCH] fix: unify video handle, label, and edge colors to pink (#ec4899) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Video handles/edges/labels were inconsistent — using white, green, blue, and hardcoded purple across different files. Standardize all to pink and use the CSS variable var(--handle-color-video) for labels. Also adds the missing .react-flow__handle[data-handletype="video"] CSS rule. Co-Authored-By: Claude Opus 4.6 --- src/app/globals.css | 7 ++++++- src/components/edges/EditableEdge.tsx | 2 +- src/components/edges/SharedEdgeGradients.tsx | 2 +- src/components/nodes/EaseCurveNode.tsx | 4 ++-- src/components/nodes/GenerateAudioNode.tsx | 4 ++-- src/components/nodes/GenerateImageNode.tsx | 2 +- src/components/nodes/GenerateVideoNode.tsx | 4 ++-- src/components/nodes/OutputGalleryNode.tsx | 2 +- src/components/nodes/RouterNode.tsx | 2 +- src/components/nodes/SwitchNode.tsx | 2 +- src/components/nodes/VideoFrameGrabNode.tsx | 2 +- src/components/nodes/VideoStitchNode.tsx | 4 ++-- src/components/nodes/VideoTrimNode.tsx | 4 ++-- 13 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index ad237135..d856f46a 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -12,7 +12,7 @@ --handle-color-text: #3b82f6; --handle-color-3d: #f97316; --handle-color-audio: #a855f7; - --handle-color-video: #a855f7; + --handle-color-video: #ec4899; } html { @@ -125,6 +125,11 @@ body { background: #a855f7; } +/* Video handles - pink */ +.react-flow__handle[data-handletype="video"] { + background: #ec4899; +} + /* 3D handles - orange */ .react-flow__handle[data-handletype="3d"] { background: #f97316; diff --git a/src/components/edges/EditableEdge.tsx b/src/components/edges/EditableEdge.tsx index 7d78d9e9..246c84ab 100644 --- a/src/components/edges/EditableEdge.tsx +++ b/src/components/edges/EditableEdge.tsx @@ -24,7 +24,7 @@ const EDGE_COLORS: Record = { default: "#64748b", // Gray for unknown pause: "#ea580c", // Orange for paused edges reference: "#52525b", // Gray for reference connections - video: "#a855f7", // Purple for video connections + video: "#ec4899", // Pink for video connections audio: "#f97316", // Orange for audio connections text: "#2563eb", // Blue for text connections "3d": "#06b6d4", // Cyan for 3D connections diff --git a/src/components/edges/SharedEdgeGradients.tsx b/src/components/edges/SharedEdgeGradients.tsx index cfb32751..bf55b26a 100644 --- a/src/components/edges/SharedEdgeGradients.tsx +++ b/src/components/edges/SharedEdgeGradients.tsx @@ -10,7 +10,7 @@ const EDGE_COLORS: Record = { default: "#64748b", pause: "#ea580c", reference: "#52525b", - video: "#a855f7", + video: "#ec4899", audio: "#f97316", text: "#2563eb", "3d": "#06b6d4", diff --git a/src/components/nodes/EaseCurveNode.tsx b/src/components/nodes/EaseCurveNode.tsx index 9e2abce5..238f2c01 100644 --- a/src/components/nodes/EaseCurveNode.tsx +++ b/src/components/nodes/EaseCurveNode.tsx @@ -57,7 +57,7 @@ export function EaseCurveNode({ id, data, selected }: NodeProps - + {/* Video Out (source, right, 35%) */} - + {/* Settings In (target, left, 75%) */} ); }); - }, [nodeData.inputSchema]); + }, [nodeData.inputSchema, showLabels]); return ( <> @@ -429,7 +429,7 @@ export function GenerateAudioNode({ id, data, selected }: NodeProps downloadMedia(nodeData.outputAudio!, "audio")} + onClick={() => downloadMedia(nodeData.outputAudio!, "audio").catch(() => {})} className="absolute top-1 right-7 w-5 h-5 bg-black/60 hover:bg-black/80 text-white rounded text-xs opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center" title="Download audio" > diff --git a/src/components/nodes/GenerateImageNode.tsx b/src/components/nodes/GenerateImageNode.tsx index 9eef87ef..f42f5dd3 100644 --- a/src/components/nodes/GenerateImageNode.tsx +++ b/src/components/nodes/GenerateImageNode.tsx @@ -782,7 +782,7 @@ export function GenerateImageNode({ id, data, selected }: NodeProps