From f9b6cfdc0d8605ca9ac5b6795390fc4251220bf3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 24 Apr 2026 16:49:02 +0800 Subject: [PATCH] fix: improve canvas chat dark mode --- components/canvas/CanvasChatPanel.tsx | 171 +++++++++++++------------- 1 file changed, 87 insertions(+), 84 deletions(-) diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index 9b097e441..d4363255e 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -9018,7 +9018,7 @@ export function CanvasChatPanel({ "w-[238px] max-h-[340px] overflow-hidden p-1.5", isVideoWorkspace ? "rounded-[18px] border border-border/60 bg-background/95 shadow-[0_18px_40px_-24px_rgba(15,23,42,0.35)] backdrop-blur-xl" - : "rounded-[18px] border border-[#cfd4dc] bg-[#f3f4f6]/90 shadow-[0_8px_20px_rgba(15,23,42,0.13)]" + : "rounded-[18px] border border-[#cfd4dc] bg-[#f3f4f6]/90 shadow-[0_8px_20px_rgba(15,23,42,0.13)] dark:border-white/10 dark:bg-zinc-900/95" )} >
@@ -9030,7 +9030,7 @@ export function CanvasChatPanel({ "h-[34px] rounded-xl px-2.5 [&>span:first-child]:hidden [&>span:last-child]:block [&>span:last-child]:w-full", isVideoWorkspace ? "text-foreground focus:bg-background focus:text-foreground data-[state=checked]:bg-background data-[state=checked]:text-foreground" - : "text-[#2f3640] focus:bg-[#e7ebf0] focus:text-[#1f2937] data-[state=checked]:bg-[#e7ebf0] data-[state=checked]:text-[#1f2937]" + : "text-[#2f3640] focus:bg-[#e7ebf0] focus:text-[#1f2937] data-[state=checked]:bg-[#e7ebf0] data-[state=checked]:text-[#1f2937] dark:text-zinc-100 dark:focus:bg-white/10 dark:focus:text-white dark:data-[state=checked]:bg-white/10 dark:data-[state=checked]:text-white" )} > @@ -9040,7 +9040,7 @@ export function CanvasChatPanel({ "h-5 w-5 overflow-hidden rounded-full", isVideoWorkspace ? "border border-border/60 bg-background" - : "border border-[#d4d9df] bg-white" + : "border border-[#d4d9df] bg-white dark:border-white/10 dark:bg-white/10" )} > {model.avatarUrl ? ( @@ -9473,9 +9473,9 @@ export function CanvasChatPanel({
{canvasSkillTags.length > 0 && ( -
+
-

{canvasSkillTagsTitle}

+

{canvasSkillTagsTitle}

{canvasSkillTags.map((tag) => { @@ -9493,8 +9493,8 @@ export function CanvasChatPanel({ className={cn( "inline-flex min-w-0 items-center justify-center gap-1.5 rounded-2xl border px-2 py-1.5 text-[13px] font-medium transition-colors", isActive - ? "border-[#6d7fff] bg-[#eef1ff] text-[#3341a9]" - : "border-[#e4e7ec] bg-white text-[#30343b] hover:border-[#d6dae3] hover:bg-[#fafbfc]" + ? "border-[#6d7fff] bg-[#eef1ff] text-[#3341a9] dark:border-blue-400/40 dark:bg-blue-500/15 dark:text-blue-200" + : "border-[#e4e7ec] bg-white text-[#30343b] hover:border-[#d6dae3] hover:bg-[#fafbfc] dark:border-white/10 dark:bg-white/5 dark:text-zinc-200 dark:hover:border-white/20 dark:hover:bg-white/10" )} > {tag.iconUrl ? ( @@ -9790,7 +9790,7 @@ export function CanvasChatPanel({ ? renderPlainText(analysisSection.before, `before-${i}`) : null} setAnalysisCollapseState((prev) => ({ @@ -9801,7 +9801,7 @@ export function CanvasChatPanel({ > - + - + 图片分析 {shouldShowDoneSummary ? ( -

+

{CANVAS_IMAGE_DONE_SUMMARY}

) : null} @@ -9927,7 +9927,7 @@ export function CanvasChatPanel({ {videoUrls.map((url, idx) => (
)} @@ -10888,19 +10891,19 @@ export function CanvasChatPanel({ "mb-2 rounded-2xl px-3 py-2", isVideoWorkspace ? "border border-border/60 bg-background/72 shadow-sm" - : "border border-[#dbe3ff] bg-[#f6f8ff]" + : "border border-[#dbe3ff] bg-[#f6f8ff] dark:border-blue-400/20 dark:bg-blue-500/10" )} >
当前工作流设定 @@ -10908,7 +10911,7 @@ export function CanvasChatPanel({
{workflowContext.summaryText} @@ -10963,8 +10966,8 @@ export function CanvasChatPanel({ className={cn( "inline-flex items-center gap-2 rounded-full px-3 py-1.5 text-sm font-medium transition-colors", !isPresetAgentSelection - ? "bg-[#eef2ff] text-[#4338ca]" - : "bg-[#f4f5f7] text-[#5b6472] hover:bg-[#eceef2]" + ? "bg-[#eef2ff] text-[#4338ca] dark:bg-blue-500/15 dark:text-blue-200" + : "bg-[#f4f5f7] text-[#5b6472] hover:bg-[#eceef2] dark:bg-white/8 dark:text-zinc-300 dark:hover:bg-white/12" )} > @@ -10976,8 +10979,8 @@ export function CanvasChatPanel({ className={cn( "inline-flex items-center gap-2 rounded-full px-3 py-1.5 text-sm font-medium transition-colors", isPresetAgentSelection - ? "bg-[#eef2ff] text-[#4338ca]" - : "bg-[#f4f5f7] text-[#5b6472] hover:bg-[#eceef2]" + ? "bg-[#eef2ff] text-[#4338ca] dark:bg-blue-500/15 dark:text-blue-200" + : "bg-[#f4f5f7] text-[#5b6472] hover:bg-[#eceef2] dark:bg-white/8 dark:text-zinc-300 dark:hover:bg-white/12" )} > @@ -10985,21 +10988,21 @@ export function CanvasChatPanel({ ) : ( -
+
Auto Agent
)} {!isPresetAgentSelection ? ( -
+
直接对话即可,也可上传图片让我分析、修图或继续生成
) : selectedAgentPreset?.type === "text" ? ( -
+
可上传图片做分析,也可直接输入文案需求
) : hasAgentUploadSlots ? ( -
+
{isWorkspacePresentation ? "请确认产品图1、产品图2、模特图槽位" : "请上传产品图1、产品图2、模特图"}
) : null} @@ -11010,10 +11013,10 @@ export function CanvasChatPanel({ className={cn( "mb-2 rounded-2xl border px-3 py-3 shadow-sm", activeAgentProgress.stage === "failed" - ? "border-rose-200 bg-rose-50/80" + ? "border-rose-200 bg-rose-50/80 dark:border-rose-500/25 dark:bg-rose-500/10" : activeAgentProgress.stage === "clarify" - ? "border-amber-200 bg-amber-50/80" - : "border-sky-200 bg-sky-50/75" + ? "border-amber-200 bg-amber-50/80 dark:border-amber-500/25 dark:bg-amber-500/10" + : "border-sky-200 bg-sky-50/75 dark:border-sky-500/25 dark:bg-sky-500/10" )} >
@@ -11021,10 +11024,10 @@ export function CanvasChatPanel({ className={cn( "mt-0.5 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-xl", activeAgentProgress.stage === "failed" - ? "bg-rose-100 text-rose-700" + ? "bg-rose-100 text-rose-700 dark:bg-rose-500/15 dark:text-rose-300" : activeAgentProgress.stage === "clarify" - ? "bg-amber-100 text-amber-700" - : "bg-sky-100 text-sky-700" + ? "bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300" + : "bg-sky-100 text-sky-700 dark:bg-sky-500/15 dark:text-sky-300" )} > {activeAgentProgress.stage === "failed" ? ( @@ -11039,16 +11042,16 @@ export function CanvasChatPanel({
- + {agentProgressTitle} - + {AGENT_PROGRESS_STEPS.find( (step) => step.key === activeAgentProgress.currentStep )?.label || "处理中"}
-
+
{agentProgressMessage}
@@ -11058,12 +11061,12 @@ export function CanvasChatPanel({ className={cn( "rounded-xl border px-2 py-2 text-center", step.state === "completed" - ? "border-emerald-200 bg-emerald-50/80" + ? "border-emerald-200 bg-emerald-50/80 dark:border-emerald-500/25 dark:bg-emerald-500/10" : step.state === "current" - ? "border-sky-200 bg-white/90" + ? "border-sky-200 bg-white/90 dark:border-sky-500/25 dark:bg-sky-500/10" : step.state === "failed" - ? "border-rose-200 bg-rose-50/80" - : "border-white/70 bg-white/55" + ? "border-rose-200 bg-rose-50/80 dark:border-rose-500/25 dark:bg-rose-500/10" + : "border-white/70 bg-white/55 dark:border-white/10 dark:bg-white/5" )} >
@@ -11074,10 +11077,10 @@ export function CanvasChatPanel({ ) : step.state === "current" ? ( ) : ( - + )}
-
+
{step.label}
@@ -11092,8 +11095,8 @@ export function CanvasChatPanel({ className={cn( "mb-2 rounded-2xl border px-3 py-3 shadow-sm", activeAgentTargetLock.stage === "clarify" - ? "border-amber-200 bg-amber-50/80" - : "border-[#dbe3ff] bg-[#f6f8ff]" + ? "border-amber-200 bg-amber-50/80 dark:border-amber-500/25 dark:bg-amber-500/10" + : "border-[#dbe3ff] bg-[#f6f8ff] dark:border-blue-500/25 dark:bg-blue-500/10" )} >
@@ -11101,8 +11104,8 @@ export function CanvasChatPanel({ className={cn( "mt-0.5 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-xl", activeAgentTargetLock.stage === "clarify" - ? "bg-amber-100 text-amber-700" - : "bg-[#e8eeff] text-[#4f46e5]" + ? "bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300" + : "bg-[#e8eeff] text-[#4f46e5] dark:bg-blue-500/15 dark:text-blue-300" )} > {activeAgentTargetLock.stage === "clarify" ? ( @@ -11115,14 +11118,14 @@ export function CanvasChatPanel({
- + {agentTargetLockTitle} - + {agentTargetResolutionLabel} {Number(activeAgentTargetLock.confidence || 0) > 0 ? ( - + 置信度 {Math.max(0, Math.round(Number(activeAgentTargetLock.confidence || 0)))}% ) : null} @@ -11131,14 +11134,14 @@ export function CanvasChatPanel({ className={cn( "mt-1 whitespace-pre-wrap text-xs leading-5", activeAgentTargetLock.stage === "clarify" - ? "text-[#8a5a14]" - : "text-[#5b6472]" + ? "text-[#8a5a14] dark:text-amber-200" + : "text-[#5b6472] dark:text-zinc-300" )} > {agentTargetLockPrimaryMessage}
{agentTargetLockSecondaryMessage ? ( -
+
系统依据:{agentTargetLockSecondaryMessage}
) : null} @@ -11156,7 +11159,7 @@ export function CanvasChatPanel({ : item.positionLabel || `第${index + 1}张` } > -
+
{item.title @@ -11496,7 +11499,7 @@ export function CanvasChatPanel({ "w-[156px] rounded-xl p-1.5", isVideoWorkspace ? "border border-border/60 bg-background/95 shadow-[0_18px_36px_-24px_rgba(15,23,42,0.35)] backdrop-blur-xl" - : "border border-[#d6d9df] bg-[#f4f5f7]/90 shadow-[0_8px_18px_rgba(15,23,42,0.14)]" + : "border border-[#d6d9df] bg-[#f4f5f7]/90 shadow-[0_8px_18px_rgba(15,23,42,0.14)] dark:border-white/10 dark:bg-zinc-900/95" )} > {effectiveAgentEnabled ? ( @@ -11506,14 +11509,14 @@ export function CanvasChatPanel({ "h-8 cursor-pointer rounded-lg px-2 text-[13px] font-medium", isVideoWorkspace ? "text-foreground" - : "text-[#2e3238]", + : "text-[#2e3238] dark:text-zinc-100", activeComposerMode === "agent" ? isVideoWorkspace ? "bg-background" - : "bg-white/80" + : "bg-white/80 dark:bg-white/10" : isVideoWorkspace ? "hover:bg-background/80" - : "hover:bg-white/70" + : "hover:bg-white/70 dark:hover:bg-white/8" )} > setDeepThinkingEnabled((prev) => !prev)} disabled={isSubmitting} @@ -11723,14 +11726,14 @@ export function CanvasChatPanel({ "h-8 w-8 rounded-full p-0 justify-center [&>svg]:hidden", isVideoWorkspace ? "border border-border/60 bg-background" - : "border border-[#cfd4dc] bg-white" + : "border border-[#cfd4dc] bg-white dark:border-white/10 dark:bg-white/8" )} title={getToolbarItem("chatModelSelector").label} > {getToolbarItem("chatModelSelector").iconUrl ? (