调整创作主页顶部与左侧栏

更新 /creation 顶部栏和左侧功能栏的参考图规格

接入创作主页 image2 陶土风背景、图标和按钮素材

保留创作主页现有文案、搜索、登录、钱包、导航与项目创建逻辑

补充创作主页改版文档和移动端直达验证
This commit is contained in:
2026-06-19 17:35:40 +08:00
parent 98545d74d1
commit e13f7e99c2
28 changed files with 833 additions and 120 deletions
@@ -133,6 +133,8 @@ Tab
- 实现首屏主视觉、九大功能区、最近项目区和陶泥儿精选素材瀑布流。
- 桌面端复用现有平台壳层,保留上方栏和左侧导航栏。
- 主页整体采用浅色布局,避免外站品牌文案。
- 视觉排版参考陶土质感创作工具工作台:首屏标题居中、主按钮与社区按钮使用大号圆角胶囊尺寸,九大创作工具以 3 列大卡片展示,卡片左侧保留大号陶土感图标区域,右侧展示原有标题与描述;`/creation` 场景下的平台顶部栏和左侧导航压平成单层工作台 chrome,避免外框套内框;桌面端顶部栏按“左侧品牌区 / 中部搜索框 / 右侧钱包与账号区”固定分区,左侧栏保持接近参考图的宽侧栏、横向图标按钮和单层导航胶囊,不回退为窄图标栏;只调整样式与布局,不改文案、搜索、登录、导航、项目创建、社区弹层、最近项目、精选素材 Tab 或数据读取逻辑。
- 背景、顶部品牌小陶偶、左侧导航、按钮和九大创作工具图标使用 `gpt-image-2` / image2 生成资源,统一保存在 `public/creation-home/`;资源只作为装饰图标或背景纹理接入,不包含图内文字,不替换或隐藏现有 UI 文案和交互。
- 社群入口复用现有玩家社区弹层,点击后必须停留在 `/creation`
- 不在 UI 中放规则说明、实现说明或“暂不实装”提示。
- 未登录时不渲染最近项目区;需要创建项目时走登录弹窗和登录后重试。
+117
View File
@@ -0,0 +1,117 @@
{
"generatedBy": "VectorEngine gpt-image-2",
"generatedFor": "/creation 创作工具主页 image2 风格资源",
"styleReference": "用户提供参考图 codex-clipboard-5ee77a57-5ceb-46c7-a309-f6c8e374d989.png",
"constraints": [
"无图内文字",
"不替换现有 UI 文案",
"只作为视觉资源接入"
],
"assets": [
{
"file": "/creation-home/background-clay-workspace.png",
"subject": "暖白陶泥纸感工作台背景纹理",
"bytes": 1253141
},
{
"file": "/creation-home/brand-mascot.png",
"subject": "陶泥儿品牌小陶偶头像",
"bytes": 265352
},
{
"file": "/creation-home/feature-character.png",
"subject": "游戏角色",
"bytes": 257922
},
{
"file": "/creation-home/feature-coding.png",
"subject": "游戏功能编码",
"bytes": 280325
},
{
"file": "/creation-home/feature-effects.png",
"subject": "游戏特效",
"bytes": 246466
},
{
"file": "/creation-home/feature-export.png",
"subject": "一键导出",
"bytes": 230725
},
{
"file": "/creation-home/feature-marketing.png",
"subject": "游戏美宣",
"bytes": 272968
},
{
"file": "/creation-home/feature-music.png",
"subject": "游戏音乐",
"bytes": 258027
},
{
"file": "/creation-home/feature-scene.png",
"subject": "游戏场景",
"bytes": 284949
},
{
"file": "/creation-home/feature-ui.png",
"subject": "游戏 UI",
"bytes": 280537
},
{
"file": "/creation-home/feature-visual-spec.png",
"subject": "游戏视觉规范",
"bytes": 297305
},
{
"file": "/creation-home/hero-community.png",
"subject": "玩家社区按钮图标",
"bytes": 250131
},
{
"file": "/creation-home/hero-create.png",
"subject": "开始创作按钮图标",
"bytes": 242745
},
{
"file": "/creation-home/nav-create.png",
"subject": "左侧导航创作",
"bytes": 278377
},
{
"file": "/creation-home/nav-discover.png",
"subject": "左侧导航发现",
"bytes": 261177
},
{
"file": "/creation-home/nav-profile.png",
"subject": "左侧导航我的",
"bytes": 288027
},
{
"file": "/creation-home/nav-projects.png",
"subject": "左侧导航项目 / 草稿兜底",
"bytes": 247891
},
{
"file": "/creation-home/nav-recommend.png",
"subject": "左侧导航推荐",
"bytes": 284543
},
{
"file": "/creation-home/project-new.png",
"subject": "新建项目",
"bytes": 260908
},
{
"file": "/creation-home/topbar-search.png",
"subject": "顶部搜索",
"bytes": 241211
},
{
"file": "/creation-home/topbar-wallet.png",
"subject": "顶部泥点余额",
"bytes": 280555
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

@@ -1,16 +1,3 @@
import {
Box,
Code2,
Gamepad2,
Image as ImageIcon,
Layers3,
Megaphone,
Music,
Palette,
Plus,
Sparkles,
Wand2,
} from 'lucide-react';
import { useCallback, useEffect, useMemo, useState } from 'react';
import {
@@ -56,7 +43,7 @@ type ShowcaseTabId =
type CreationFeatureItem = {
title: string;
description: string;
icon: typeof Palette;
iconSrc: string;
};
type ShowcaseAssetItem = {
@@ -70,51 +57,57 @@ type ShowcaseAssetItem = {
cost: string;
};
const CREATION_HOME_ASSETS = {
heroCreate: '/creation-home/hero-create.png',
heroCommunity: '/creation-home/hero-community.png',
projectNew: '/creation-home/project-new.png',
} as const;
const CREATION_FEATURES: CreationFeatureItem[] = [
{
title: '游戏视觉规范',
description: '轻松约束多类素材视觉一致性',
icon: Palette,
iconSrc: '/creation-home/feature-visual-spec.png',
},
{
title: '游戏角色',
description: '整套高完成度2D/3D角色素材及动画',
icon: Box,
iconSrc: '/creation-home/feature-character.png',
},
{
title: '游戏UI',
description: '轻松生成高一致性的UI素材',
icon: Layers3,
iconSrc: '/creation-home/feature-ui.png',
},
{
title: '游戏音乐',
description: '轻松制作游戏背景音乐、音效',
icon: Music,
iconSrc: '/creation-home/feature-music.png',
},
{
title: '游戏特效',
description: '低成本生成精品游戏特效',
icon: Sparkles,
iconSrc: '/creation-home/feature-effects.png',
},
{
title: '游戏场景',
description: '轻松生成各类游戏场景素材',
icon: ImageIcon,
iconSrc: '/creation-home/feature-scene.png',
},
{
title: '游戏美宣',
description: '轻松生成游戏上架所需图片和视频',
icon: Megaphone,
iconSrc: '/creation-home/feature-marketing.png',
},
{
title: '游戏功能编码',
description: '自然语言驱动游戏生成',
icon: Code2,
iconSrc: '/creation-home/feature-coding.png',
},
{
title: '一键导出',
description: '支持导出为微抖小游戏、Godot、Unity、UE工程',
icon: Gamepad2,
iconSrc: '/creation-home/feature-export.png',
},
];
@@ -479,18 +472,35 @@ export function CreationLandingView({
<div className="creation-landing__hero-actions">
<PlatformActionButton
size="md"
shape="pill"
className="creation-landing__hero-action creation-landing__hero-action--primary"
onClick={createProject}
disabled={isCreatingProject}
>
<Wand2 className="h-4 w-4" />
<img
src={CREATION_HOME_ASSETS.heroCreate}
alt=""
aria-hidden="true"
draggable={false}
className="creation-landing__button-art"
/>
</PlatformActionButton>
{onOpenCommunity ? (
<PlatformActionButton
tone="secondary"
size="md"
shape="pill"
className="creation-landing__hero-action creation-landing__hero-action--secondary"
onClick={onOpenCommunity}
>
<img
src={CREATION_HOME_ASSETS.heroCommunity}
alt=""
aria-hidden="true"
draggable={false}
className="creation-landing__button-art"
/>
</PlatformActionButton>
) : null}
@@ -510,18 +520,26 @@ export function CreationLandingView({
</div>
</div>
<div className="creation-landing__feature-grid">
{CREATION_FEATURES.map((feature) => {
const Icon = feature.icon;
return (
<article key={feature.title} className="creation-landing__feature">
{CREATION_FEATURES.map((feature) => (
<article key={feature.title} className="creation-landing__feature">
<span className="creation-landing__feature-figure">
<span className="creation-landing__feature-icon">
<Icon className="h-5 w-5" />
<img
src={feature.iconSrc}
alt=""
aria-hidden="true"
loading="lazy"
draggable={false}
className="creation-landing__feature-art"
/>
</span>
</span>
<span className="creation-landing__feature-copy">
<h3>{feature.title}</h3>
<p>{feature.description}</p>
</article>
);
})}
</span>
</article>
))}
</div>
</section>
@@ -552,7 +570,13 @@ export function CreationLandingView({
disabled={isCreatingProject}
>
<span>
<Plus className="h-5 w-5" />
<img
src={CREATION_HOME_ASSETS.projectNew}
alt=""
aria-hidden="true"
draggable={false}
className="creation-landing__project-new-art"
/>
</span>
</button>
@@ -15268,6 +15268,7 @@ export function PlatformEntryFlowShellImpl({
? 'create'
: platformBootstrap.platformTab
}
allowHiddenActiveTab={selectionStage === 'creation-home'}
onTabChange={handlePlatformHomeTabChange}
hasSavedGame={hasSavedGame}
savedSnapshot={savedSnapshot}
@@ -15428,7 +15429,7 @@ export function PlatformEntryFlowShellImpl({
initial={{ opacity: 0, y: 12 }}
animate={{ opacity: 1, y: 0 }}
exit={{ opacity: 0, y: -12 }}
className="flex h-full min-h-0 min-w-0 flex-col overflow-hidden"
className="creation-home-stage flex h-full min-h-0 min-w-0 flex-col overflow-hidden"
>
{platformHomeView}
</motion.div>

Some files were not shown because too many files have changed in this diff Show More