mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-19 12:24:46 +08:00
feat: rewording and add initial animation
This commit is contained in:
@@ -58,11 +58,13 @@ export function Hero({ className }: { className?: string }) {
|
|||||||
</h1>
|
</h1>
|
||||||
<p
|
<p
|
||||||
className="mt-8 scale-105 text-center text-2xl text-shadow-sm"
|
className="mt-8 scale-105 text-center text-2xl text-shadow-sm"
|
||||||
style={{ color: "rgb(182,182,188)" }}
|
style={{ color: "rgb(184,184,192)" }}
|
||||||
>
|
>
|
||||||
An open-source SuperAgent harness that researches, codes, and creates.
|
An open-source SuperAgent harness that researches, codes, and creates.
|
||||||
|
With
|
||||||
<br />
|
<br />
|
||||||
With the help of sandboxes, memories, tools and skills, it handles
|
the help of sandboxes, memories, tools, skills and subagents, it
|
||||||
|
handles
|
||||||
<br />
|
<br />
|
||||||
different levels of tasks that could take minutes to hours.
|
different levels of tasks that could take minutes to hours.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -16,8 +16,9 @@ const features: BentoCardProps[] = [
|
|||||||
{
|
{
|
||||||
color: COLOR,
|
color: COLOR,
|
||||||
label: "Long Task Running",
|
label: "Long Task Running",
|
||||||
title: "Planning and Reasoning",
|
title: "Planning and Sub-tasking",
|
||||||
description: "Plans ahead, reasons through complexity, then acts",
|
description:
|
||||||
|
"Plans ahead, reasons through complexity, then executes sequentially or in parallel",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
color: COLOR,
|
color: COLOR,
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useSearchParams } from "next/navigation";
|
import { useSearchParams } from "next/navigation";
|
||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import { useI18n } from "@/core/i18n/hooks";
|
import { useI18n } from "@/core/i18n/hooks";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
|
let waved = false;
|
||||||
|
|
||||||
export function Welcome({ className }: { className?: string }) {
|
export function Welcome({ className }: { className?: string }) {
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const searchParams = useSearchParams();
|
const searchParams = useSearchParams();
|
||||||
|
useEffect(() => {
|
||||||
|
waved = true;
|
||||||
|
}, []);
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
@@ -16,9 +22,16 @@ export function Welcome({ className }: { className?: string }) {
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<div className="text-2xl font-bold">
|
<div className="text-2xl font-bold">
|
||||||
{searchParams.get("mode") === "skill"
|
{searchParams.get("mode") === "skill" ? (
|
||||||
? `✨ ${t.welcome.createYourOwnSkill} ✨`
|
`✨ ${t.welcome.createYourOwnSkill} ✨`
|
||||||
: t.welcome.greeting}
|
) : (
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<div className={cn("inline-block", !waved ? "animate-wave" : "")}>
|
||||||
|
👋
|
||||||
|
</div>
|
||||||
|
<div>{t.welcome.greeting}</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
{searchParams.get("mode") === "skill" ? (
|
{searchParams.get("mode") === "skill" ? (
|
||||||
<div className="text-muted-foreground text-sm">
|
<div className="text-muted-foreground text-sm">
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export const enUS: Translations = {
|
|||||||
|
|
||||||
// Welcome
|
// Welcome
|
||||||
welcome: {
|
welcome: {
|
||||||
greeting: "👋 Hello, again!",
|
greeting: "Hello, again!",
|
||||||
description:
|
description:
|
||||||
"Welcome to 🦌 DeerFlow, an open source super agent. With built-in and custom skills, DeerFlow helps you search on the web, analyze data, and generate artifacts like slides, web pages and do almost anything.",
|
"Welcome to 🦌 DeerFlow, an open source super agent. With built-in and custom skills, DeerFlow helps you search on the web, analyze data, and generate artifacts like slides, web pages and do almost anything.",
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ export const enUS: Translations = {
|
|||||||
subtask: "Subtask",
|
subtask: "Subtask",
|
||||||
executing: (count: number) =>
|
executing: (count: number) =>
|
||||||
`Executing ${count} subtask${count === 1 ? "" : "s"} in parallel`,
|
`Executing ${count} subtask${count === 1 ? "" : "s"} in parallel`,
|
||||||
running: "Running subtask",
|
in_progress: "Running subtask",
|
||||||
completed: "Subtask completed",
|
completed: "Subtask completed",
|
||||||
failed: "Subtask failed",
|
failed: "Subtask failed",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ export interface Translations {
|
|||||||
subtasks: {
|
subtasks: {
|
||||||
subtask: string;
|
subtask: string;
|
||||||
executing: (count: number) => string;
|
executing: (count: number) => string;
|
||||||
running: string;
|
in_progress: string;
|
||||||
completed: string;
|
completed: string;
|
||||||
failed: string;
|
failed: string;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export const zhCN: Translations = {
|
|||||||
|
|
||||||
// Welcome
|
// Welcome
|
||||||
welcome: {
|
welcome: {
|
||||||
greeting: "👋 你好,欢迎回来!",
|
greeting: "你好,欢迎回来!",
|
||||||
description:
|
description:
|
||||||
"欢迎使用 🦌 DeerFlow,一个完全开源的超级智能体。通过内置和\n自定义的 Skills,DeerFlow 可以帮你搜索网络、分析数据,\n还能为你生成幻灯片、网页等作品,几乎可以做任何事情。",
|
"欢迎使用 🦌 DeerFlow,一个完全开源的超级智能体。通过内置和\n自定义的 Skills,DeerFlow 可以帮你搜索网络、分析数据,\n还能为你生成幻灯片、网页等作品,几乎可以做任何事情。",
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ export const zhCN: Translations = {
|
|||||||
subtasks: {
|
subtasks: {
|
||||||
subtask: "子任务",
|
subtask: "子任务",
|
||||||
executing: (count: number) => `并行执行 ${count} 个子任务`,
|
executing: (count: number) => `并行执行 ${count} 个子任务`,
|
||||||
running: "子任务运行中",
|
in_progress: "子任务运行中",
|
||||||
completed: "子任务已完成",
|
completed: "子任务已完成",
|
||||||
failed: "子任务失败",
|
failed: "子任务失败",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -127,6 +127,23 @@
|
|||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--animate-wave: wave 0.6s ease-in-out 2;
|
||||||
|
@keyframes wave {
|
||||||
|
0%,
|
||||||
|
100% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
25% {
|
||||||
|
transform: rotate(20deg);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
transform: rotate(20deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@theme inline {
|
@theme inline {
|
||||||
|
|||||||
Reference in New Issue
Block a user