调整创作主页顶部与左侧栏
更新 /creation 顶部栏和左侧功能栏的参考图规格 接入创作主页 image2 陶土风背景、图标和按钮素材 保留创作主页现有文案、搜索、登录、钱包、导航与项目创建逻辑 补充创作主页改版文档和移动端直达验证
@@ -133,6 +133,8 @@ Tab:
|
||||
- 实现首屏主视觉、九大功能区、最近项目区和陶泥儿精选素材瀑布流。
|
||||
- 桌面端复用现有平台壳层,保留上方栏和左侧导航栏。
|
||||
- 主页整体采用浅色布局,避免外站品牌文案。
|
||||
- 视觉排版参考陶土质感创作工具工作台:首屏标题居中、主按钮与社区按钮使用大号圆角胶囊尺寸,九大创作工具以 3 列大卡片展示,卡片左侧保留大号陶土感图标区域,右侧展示原有标题与描述;`/creation` 场景下的平台顶部栏和左侧导航压平成单层工作台 chrome,避免外框套内框;桌面端顶部栏按“左侧品牌区 / 中部搜索框 / 右侧钱包与账号区”固定分区,左侧栏保持接近参考图的宽侧栏、横向图标按钮和单层导航胶囊,不回退为窄图标栏;只调整样式与布局,不改文案、搜索、登录、导航、项目创建、社区弹层、最近项目、精选素材 Tab 或数据读取逻辑。
|
||||
- 背景、顶部品牌小陶偶、左侧导航、按钮和九大创作工具图标使用 `gpt-image-2` / image2 生成资源,统一保存在 `public/creation-home/`;资源只作为装饰图标或背景纹理接入,不包含图内文字,不替换或隐藏现有 UI 文案和交互。
|
||||
- 社群入口复用现有玩家社区弹层,点击后必须停留在 `/creation`。
|
||||
- 不在 UI 中放规则说明、实现说明或“暂不实装”提示。
|
||||
- 未登录时不渲染最近项目区;需要创建项目时走登录弹窗和登录后重试。
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 310 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 328 KiB |
|
After Width: | Height: | Size: 286 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 320 KiB |
|
After Width: | Height: | Size: 304 KiB |
|
After Width: | Height: | Size: 332 KiB |
|
After Width: | Height: | Size: 329 KiB |
|
After Width: | Height: | Size: 348 KiB |
|
After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 285 KiB |
|
After Width: | Height: | Size: 324 KiB |
|
After Width: | Height: | Size: 304 KiB |
|
After Width: | Height: | Size: 335 KiB |
|
After Width: | Height: | Size: 295 KiB |
|
After Width: | Height: | Size: 327 KiB |
|
After Width: | Height: | Size: 309 KiB |
|
After Width: | Height: | Size: 287 KiB |
|
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>
|
||||
|
||||