From 8a2351593cd9609f0ef5177ffe18c62c1b838183 Mon Sep 17 00:00:00 2001 From: Henry Li Date: Sun, 8 Feb 2026 23:22:51 +0800 Subject: [PATCH] feat: add special effect for Ultra mode --- .../workspace/messages/subtask-card.tsx | 186 +++++++++--------- frontend/src/styles/globals.css | 19 +- 2 files changed, 115 insertions(+), 90 deletions(-) diff --git a/frontend/src/components/workspace/messages/subtask-card.tsx b/frontend/src/components/workspace/messages/subtask-card.tsx index 3ffc60d..772bc9c 100644 --- a/frontend/src/components/workspace/messages/subtask-card.tsx +++ b/frontend/src/components/workspace/messages/subtask-card.tsx @@ -53,103 +53,113 @@ export function SubtaskCard({ className={cn("relative w-full gap-2 rounded-lg border py-0", className)} open={!collapsed} > +
{task.status === "in_progress" && ( - + <> + + )} -
-
- - - - - {task.prompt && ( - - {task.prompt} - - } - > - )} - {task.status === "in_progress" && - task.latestMessage && - hasToolCalls(task.latestMessage) && ( - } - > - {explainLastToolCall(task.latestMessage, t)} - - )} - {task.status === "completed" && ( - <> - } - > + + + + {task.prompt && ( {task.result} + + {task.prompt} + } > - - )} - {task.status === "failed" && ( - {task.error}} - icon={} - > - )} - + )} + {task.status === "in_progress" && + task.latestMessage && + hasToolCalls(task.latestMessage) && ( + } + > + {explainLastToolCall(task.latestMessage, t)} + + )} + {task.status === "completed" && ( + <> + } + > + {task.result} + } + > + + )} + {task.status === "failed" && ( + {task.error}} + icon={} + > + )} + + ); } diff --git a/frontend/src/styles/globals.css b/frontend/src/styles/globals.css index 7b9b651..0e91524 100644 --- a/frontend/src/styles/globals.css +++ b/frontend/src/styles/globals.css @@ -316,9 +316,16 @@ } } + .ambilight { + pointer-events: none; + opacity: 0; + transition: opacity 1s ease-in-out; + } + .ambilight:before, .ambilight:after { content: ""; + pointer-events: none; position: absolute; left: 0; top: 0; @@ -339,9 +346,17 @@ width: 100%; height: 100%; border-radius: 10px; - opacity: 0.75; z-index: -1; - animation: ambilight 60s ease-in-out infinite; + animation: ambilight 40s ease-in-out infinite; + } + + .ambilight.enabled { + opacity: 1; + } + + .dark .ambilight:before, + .dark .ambilight:after { + opacity: 0.85; } @keyframes ambilight {