feat: redesign market-facing ui surfaces

This commit is contained in:
2026-04-23 14:29:41 +08:00
parent 2e5344618a
commit 1f5c452a30
9 changed files with 1767 additions and 1572 deletions

View File

@@ -1,6 +1,189 @@
import { redirect } from "next/navigation";
import {
ArrowRight,
CirclePlay,
Coins,
FolderKanban,
ImagePlus,
ShieldCheck,
Sparkles,
} from "lucide-react";
import Link from "next/link";
const productHighlights = [
{
title: "生成工作台",
copy: "把模型、提示词、时长、比例和素材引用收进一个创作面板。",
icon: Sparkles,
},
{
title: "素材系统",
copy: "图片、视频、音频参考素材统一入库,创作时直接调用。",
icon: ImagePlus,
},
{
title: "任务追踪",
copy: "生成状态实时刷新,结果视频、积分消耗和任务详情一屏可见。",
icon: FolderKanban,
},
{
title: "积分与增长",
copy: "充值、兑换码、注册奖励和邀请关系形成完整的商业闭环。",
icon: Coins,
},
];
export default function HomePage() {
redirect("/workspace/create");
}
return (
<main className="marketing-home">
<header className="marketing-nav">
<div className="marketing-logo">AIVideo</div>
<nav className="marketing-nav-links">
<a href="#product"></a>
<a href="#workflow"></a>
<a href="#ops"></a>
</nav>
<div className="marketing-nav-actions">
<Link href="/login" className="marketing-link-button">
</Link>
<Link href="/register" className="marketing-primary-button">
</Link>
</div>
</header>
<section className="marketing-hero">
<div className="marketing-hero-copy">
<span className="marketing-kicker">AI VIDEO PLATFORM</span>
<h1></h1>
<p>
AIVideo
</p>
<div className="marketing-hero-actions">
<Link href="/register" className="marketing-primary-button">
<ArrowRight size={16} />
</Link>
<Link href="/login" className="marketing-secondary-button">
</Link>
</div>
<div className="marketing-stat-row">
<div>
<strong></strong>
<span></span>
</div>
<div>
<strong></strong>
<span></span>
</div>
<div>
<strong></strong>
<span></span>
</div>
</div>
</div>
<div className="marketing-stage">
<div className="marketing-stage-card marketing-stage-card-dark">
<div className="marketing-stage-label">Creator Workspace</div>
<h2> AI </h2>
<p>
</p>
<div className="marketing-chip-row">
<span>Text to video</span>
<span>Asset references</span>
<span>Task polling</span>
</div>
</div>
<div className="marketing-stage-grid">
<div className="marketing-stage-card">
<CirclePlay size={18} />
<strong></strong>
<span></span>
</div>
<div className="marketing-stage-card">
<Coins size={18} />
<strong></strong>
<span></span>
</div>
</div>
</div>
</section>
<section className="marketing-section marketing-section-light" id="product">
<div className="marketing-section-copy">
<span className="marketing-kicker">Product Capabilities</span>
<h2></h2>
<p>
DEMO
</p>
</div>
<div className="marketing-tile-grid">
{productHighlights.map((item) => {
const Icon = item.icon;
return (
<article className="marketing-tile" key={item.title}>
<div className="marketing-tile-icon">
<Icon size={20} />
</div>
<h3>{item.title}</h3>
<p>{item.copy}</p>
</article>
);
})}
</div>
</section>
<section className="marketing-section marketing-section-dark" id="workflow">
<div className="marketing-section-copy">
<span className="marketing-kicker">Workflow</span>
<h2></h2>
</div>
<div className="marketing-flow-grid">
<div className="marketing-flow-card">
<span>01</span>
<strong></strong>
<p></p>
</div>
<div className="marketing-flow-card">
<span>02</span>
<strong></strong>
<p></p>
</div>
<div className="marketing-flow-card">
<span>03</span>
<strong></strong>
<p></p>
</div>
</div>
</section>
<section className="marketing-section marketing-section-light" id="ops">
<div className="marketing-ops-shell">
<div className="marketing-section-copy">
<span className="marketing-kicker">Operations Console</span>
<h2></h2>
<p>
</p>
</div>
<div className="marketing-ops-card">
<ShieldCheck size={20} />
<strong></strong>
<p>
AIVideo
</p>
<Link href="/admin/login" className="marketing-link-inline">
<ArrowRight size={14} />
</Link>
</div>
</div>
</section>
</main>
);
}