openyida 2026.9.2 → 2026.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/lib/app/create-form/api-path.js +16 -2
- package/lib/app/create-form/args.js +14 -0
- package/lib/app/create-form/nav-icon-service.js +202 -0
- package/lib/app/create-form/nav-icon.js +267 -0
- package/lib/app/create-form.js +77 -3
- package/lib/app/nav-group.js +221 -53
- package/lib/app/page-template-guard.js +64 -0
- package/lib/app/publish.js +15 -1
- package/lib/app/services/canvas-page-schema-builder.js +1 -1
- package/lib/asset/ai-image.js +8 -9
- package/lib/asset/asset-cmd.js +3 -49
- package/lib/asset/asset-resolve.js +8 -10
- package/lib/asset/asset-status.js +7 -7
- package/lib/core/agent-capabilities.js +43 -1
- package/lib/core/cli-error.js +6 -1
- package/lib/core/command-contract.js +42 -1
- package/lib/core/command-manifest.js +73 -11
- package/lib/core/locales/en.js +5 -1
- package/lib/core/locales/zh.js +7 -3
- package/lib/core/query-data.js +126 -8
- package/lib/core/sample.js +51 -10
- package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +7 -7
- package/package.json +1 -1
- package/scripts/postinstall.js +5 -5
- package/yida-skills/SKILL.md +13 -13
- package/yida-skills/references/task-retrospective.md +4 -4
- package/yida-skills/skills/yida-app/SKILL.md +9 -8
- package/yida-skills/skills/yida-app/references/common-issues.md +1 -1
- package/yida-skills/skills/yida-app/workflow/step-2-design.md +42 -15
- package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +8 -1
- package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +13 -15
- package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +4 -2
- package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +26 -11
- package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +22 -11
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +8 -8
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-authoring-examples.md +1 -1
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +16 -16
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -1
- package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +1 -1
- package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +6 -7
- package/yida-skills/skills/yida-canvas-table-form/SKILL.md +2 -2
- package/yida-skills/skills/yida-create-app/SKILL.md +13 -7
- package/yida-skills/skills/yida-create-form-page/SKILL.md +15 -17
- package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +1 -4
- package/yida-skills/skills/yida-custom-page/SKILL.md +5 -5
- package/yida-skills/skills/yida-custom-page/references/coding-guide.md +2 -6
- package/yida-skills/skills/yida-custom-page/references/design-system.md +4 -4
- package/yida-skills/skills/yida-data-management/SKILL.md +6 -4
- package/yida-skills/skills/yida-data-management/references/data-format-guide.md +13 -5
- package/yida-skills/skills/yida-design/SKILL.md +36 -39
- package/yida-skills/skills/yida-design/references/asset-workflow.md +32 -85
- package/yida-skills/skills/yida-design/references/page-quality-gates.md +3 -3
- package/yida-skills/skills/yida-design/references/style-design-selection.md +4 -4
- package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +15 -24
- package/yida-skills/skills/yida-design/references/theme/theme-token-presets.md +8 -8
- package/yida-skills/skills/yida-design/references/visual-decision-engine.md +1 -1
- package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +2 -2
- package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +12 -13
- package/yida-skills/skills/yida-design/workflow/output-design.md +40 -26
- package/yida-skills/skills/yida-design/workflow/output-prd.md +8 -8
- package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +14 -0
- package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +23 -17
- package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +3 -3
- package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +5 -5
- package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -55
- package/yida-skills/skills/yida-nav-group/SKILL.md +3 -1
- package/yida-skills/skills/yida-page-config/SKILL.md +3 -1
- package/yida-skills/skills/yida-prd/SKILL.md +48 -0
- package/yida-skills/skills/yida-prd/references/app/blueprint.md +73 -0
- package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +43 -0
- package/yida-skills/skills/yida-prd/references/app/role-journey.md +30 -0
- package/yida-skills/skills/yida-prd/workflow/output-prd.md +188 -0
- package/yida-skills/skills/yida-prd/workflow/step-1-read-brief.md +15 -0
- package/yida-skills/skills/{yida-design/workflow/step-3-information-architecture.md → yida-prd/workflow/step-2-information-architecture.md} +2 -2
- package/yida-skills/skills/yida-publish-page/SKILL.md +1 -1
- package/yida-skills/skills/yida-requirement-analysis/SKILL.md +49 -0
- package/yida-skills/skills-index.json +36 -35
- package/yida-skills/skills/yida-design/workflow/step-1-positioning.md +0 -58
- package/yida-skills/skills/yida-form-detail/SKILL.md +0 -68
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
name: yida-design
|
|
3
3
|
description: >
|
|
4
4
|
当用户要做完整应用产品设计、单页 UI 改造、主页面视觉设计、应用主题色或全局换肤时使用。
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
完整应用场景读取共享需求简报,独立输出 prd/<项目名>/design.md;PRD 由 yida-prd 并行生成。
|
|
6
|
+
design.md 写主题 token、布局、材质、圆角、密度、呼吸感、组件和状态规则。
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# yida-design
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
宜搭应用和页面视觉设计技能。它是 Visual Design artifact 的唯一 owner,只输出 `design.md`,不写 PRD 或页面源码。
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -18,55 +18,54 @@ description: >
|
|
|
18
18
|
|
|
19
19
|
| 用户诉求 | 判定为 | 唯一动作 |
|
|
20
20
|
| --- | --- | --- |
|
|
21
|
-
| 完整应用、多个角色、多页面、导航分组、首页/入口页、官网 + 看板 + 后台 |
|
|
22
|
-
| 单个自定义页要求好看、高级、品牌化、去 AI 味、页面太丑、不够惊艳 | 单页设计 | 读 [page-design](sub_skill/page-design/SKILL.md)
|
|
23
|
-
| 应用主题色、品牌色、全局换肤、`--color-brand1-*`、自定义主题 CSS、`themeColor`、`navTheme` | 主题色和 token 设计 | 读
|
|
24
|
-
| 页面 / 主页面 / 首页 / 工作台 UI 设计 |
|
|
21
|
+
| 完整应用、多个角色、多页面、导航分组、首页/入口页、官网 + 看板 + 后台 | 完整应用视觉设计 | 读取共享需求简报,输出 `prd/<项目名>/design.md`;与 `yida-prd` 并行 |
|
|
22
|
+
| 单个自定义页要求好看、高级、品牌化、去 AI 味、页面太丑、不够惊艳 | 单页设计 | 读 [page-design](sub_skill/page-design/SKILL.md),确认当前页面和应用主题后输出设计补充 |
|
|
23
|
+
| 应用主题色、品牌色、全局换肤、`--color-brand1-*`、自定义主题 CSS、`themeColor`、`navTheme` | 主题色和 token 设计 | 读 `workflow/step-2-theme-system.md` 和 `workflow/step-6-handoff.md`,输出 themeProfile、应用主题文件和 token 契约 |
|
|
24
|
+
| 页面 / 主页面 / 首页 / 工作台 UI 设计 | 页面视觉设计 | 读取当前页面上下文,输出或更新 `design.md` |
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
28
|
## 标准流程
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
完整应用按以下步骤生成视觉 artifact。页面实现阶段仍必须同时读取并行生成的 `prd.md` 和本技能生成的 `design.md`。
|
|
31
31
|
|
|
32
32
|
| 步骤 | 名称 | 功能描述 | 产出物 |
|
|
33
33
|
| --- | --- | --- | --- |
|
|
34
|
-
| 1 | [
|
|
34
|
+
| 1 | [读取共享需求简报](workflow/step-1-read-brief.md) | 读取业务对象、页面场景、明确范围、品牌和色彩偏好 | 视觉输入摘要 |
|
|
35
35
|
| 2 | [选择主题色和 token](workflow/step-2-theme-system.md) | 确定主色、辅助色、中性色、字体层级、组件基调和宜搭 token 作用域 | `themeProfile` |
|
|
36
|
-
| 3 | [
|
|
37
|
-
| 4 | [
|
|
38
|
-
| 5 | [
|
|
39
|
-
| 6 | [写入 prd.md 和 design.md](workflow/step-6-handoff.md) | 汇总业务 PRD 与 `design.md` 视觉规则,分别写入 `prd.md` 和 `design.md` | `prd/<项目名>/prd.md` + `prd/<项目名>/design.md` |
|
|
36
|
+
| 3 | [页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 根据简报中的页面场景确定布局骨架、区块、主操作、状态和响应式规则 | 低保真结构 + 交互路径 |
|
|
37
|
+
| 4 | [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 从业务任务、信息拓扑和视觉 DNA 选择设计风格 | `design.md` 内容草稿 |
|
|
38
|
+
| 5 | [写入 design.md](workflow/step-6-handoff.md) | 写入唯一视觉事实源和稳定 `designRefs` | `prd/<项目名>/design.md` |
|
|
40
39
|
|
|
41
|
-
>
|
|
40
|
+
> 完整应用必须等共享需求简报 ready 后才 start。本技能 end 只代表 `design.md` 完整;它不代表并行 PRD 已完成。
|
|
42
41
|
|
|
43
|
-
>
|
|
42
|
+
> 本技能不读取本轮并行生成中的 `prd.md`,避免形成串行依赖或并发覆盖。两个 artifact 的引用一致性由 `yida-app` join 校验。
|
|
44
43
|
|
|
45
44
|
---
|
|
46
45
|
|
|
47
46
|
## 核心规则
|
|
48
47
|
|
|
49
48
|
1. **平台能力优先**:数据录入、提交、编辑、审批、权限、字段校验走宜搭表单/流程;自定义页负责展示数据、呈现分析结果、放置业务入口、打开详情页,并串联表单、流程、报表和导航入口。
|
|
50
|
-
2.
|
|
51
|
-
3.
|
|
52
|
-
4.
|
|
49
|
+
2. **共享需求简报是视觉输入**:完整应用的用户、目标、对象、页面场景、显式范围、品牌和色彩偏好只从 `requirement-brief.json` 读取。
|
|
50
|
+
3. **业务蓝图归 PRD owner**:表单、流程、报表、页面清单、字段语义和三种顺序由 `yida-prd` 生成;本技能只消费页面场景并设计视觉规则。
|
|
51
|
+
4. **并行产物互不覆盖**:本技能不写 `prd.md`,不等待本轮 PRD,也不把视觉推断写成新的业务范围。
|
|
53
52
|
5. **美感提升保持功能契约**:页面美化、视觉升级和页面重构默认只调整颜色、布局、密度、间距、视觉层级、素材和图标表达;现有数据源、字段映射、按钮动作、筛选逻辑、提交 URL、权限和业务状态保持原样。
|
|
54
53
|
6. **默认保留平台应用导航**:普通自定义页、页面内 tab、分段、筛选和快捷入口都不触发 `yida-nav-shell`。只有自定义页要做顶部导航、侧边导航、导航壳、自绘应用级导航,或用户明确隐藏应用导航时,才写 `appBlueprint.hideAppNav: 'y'` 并交给 `yida-nav-shell`。用户只说全屏、无导航或 `isRenderNav=false` 时,只写页面级隐藏配置。
|
|
55
54
|
7. **同应用页面入口归导航**:同应用页面优先放入平台导航或导航分组;自定义页内容区放当前页动作、原生表单新建/查看、外部链接和跨应用资源。
|
|
56
55
|
8. **表单入口响应式**:新增/提交页 URL 默认使用页面级隐藏导航的 `submission/{formUuid}?isRenderNav=false`;详情页 URL 默认使用 `formDetail/{formUuid}?formInstId={formInstId}&navConfig.layout=1180&isRenderNav=false`,且 `formInstId` 必须来自真实数据记录并优先取 `row.formInstId`;PC 端默认在侧边抽屉中用 iframe 承载宜搭原生表单,抽屉默认半屏 `50vw`,提交页和详情页使用同一宽度规则;移动端整页或新页打开。
|
|
57
|
-
9.
|
|
58
|
-
10. **默认主题先做业务判断**:工作台、门户、列表、详情、普通看板和数据大屏默认都是浅底 / light 模式,但主色不固定为 `podBlue` 或 #1677ff;先根据行业、品牌、业务情绪和视觉目标做创意色彩判断,主题色可以是任意合法 CSS
|
|
56
|
+
9. **主题文件先复制再修改**:先在 `design.md` 确定主题色。实现阶段执行 `openyida sample yida-design app-theme --output .cache/openyida/<项目名>/app-theme.css` 复制模板,再按主题色修改对应 token。严禁重新生成或覆盖整份 CSS。主色写入 `--color-brand1-6`;保留 `--color-brand1-1/2/3/5/6/9/10`、`--color-brand-1` 至 `--color-brand-4` 和 `--color-group`;严禁补造 `--color-brand1-4/7/8`。
|
|
57
|
+
10. **默认主题先做业务判断**:工作台、门户、列表、详情、普通看板和数据大屏默认都是浅底 / light 模式,但主色不固定为 `podBlue` 或 #1677ff;先根据行业、品牌、业务情绪和视觉目标做创意色彩判断,主题色可以是任意合法 CSS 颜色。只有用户明确说暗色/深色/夜间/高对比时才用深色沉浸。
|
|
59
58
|
11. **页面布局要到可实现粒度**:每个页面至少写清顶部/左侧/主体/右侧/底部区域、核心组件、信息密度、主操作位置、PC/移动端差异和空/载/错态。
|
|
60
59
|
12. **页面丰富度建议**:工作台、首页、门户、看板、展示页和业务入口页推荐规划 8-10 个有业务目的的区块以上,例如上下文标题、状态摘要、主操作、筛选、任务列表、最近记录、动态流、洞察、提醒、空态行动、右侧上下文和底部辅助信息。区块数量不是硬门槛,窄场景、单任务页面或用户明确要求精简时可以更少,但要写清每个区块的业务目的和取舍原因。计数按“区块组”算,不按子项算:`KPI 卡片: 学生总数, 课程总数, 出勤率, 平均分` 只能算 1 个状态摘要区块,`快捷入口: 录入学生/登记成绩/记录考勤/管理课程` 只能算 1 个动作区块;不能用重复 KPI 卡、重复快捷入口或大空白卡凑数量。
|
|
61
60
|
13. **工作台禁低密大卡片套路**:工作台 / 业务首页不能用“标题 + 4 个等宽大 KPI 白卡 + 图标快捷卡 + 大空态白卡”撑首屏。默认改成紧凑状态摘要条、任务/动态列表、最近记录、右侧上下文面板和高频动作;没有真实数据时也展示薄空态行 + 登记入口,不铺大块空白卡片。
|
|
62
61
|
14. **默认圆润高密且有呼吸感**:业务工具页默认使用圆润形状、紧凑信息密度和清晰呼吸节奏。`design.md` 必须写清 `roundedRule`、`densityRule` 和 `breathingRule`:卡片 padding 必须大于 20px(默认 22-28px),卡片与卡片的 gap 必须小于 20px(默认 12-18px),卡片圆角范围 0-32px(业务卡片默认 20-24px),控件 10-14px,状态摘要 64-88px,动作条 40-56px,列表行 44-56px,空态 88-120px 内;页面边距、卡片 gap 和卡片 padding 要形成可扫读的分组节奏。呼吸感来自对齐、分组、层级和节奏,不来自额外 margin、超宽空 KPI 框或空白卡撑页面。
|
|
63
62
|
15. **背景与卡片必须有层次对比**:默认业务页背景保持浅色调、清爽但不能与卡片相近或相同。`design.md` 必须写清 `surfaceContrast`:白色/浅色背景配有边框卡片;浅灰背景(如 `#F3F4F6`)配白色无边框卡片;浅彩色背景(如浅蓝、浅暖灰)配白色无边框卡片;渐变背景配玻璃感卡片。禁止浅底白卡无边框、同色背景同色卡片或只有阴影没有色差/边框的层次。
|
|
64
|
-
16.
|
|
65
|
-
17.
|
|
66
|
-
18. **design.md
|
|
67
|
-
19. **视觉设计规范只写 design.md**:`themeProfile
|
|
68
|
-
20.
|
|
69
|
-
21.
|
|
63
|
+
16. **设计风格先选后定制**:进入 UI 视觉和状态设计时,必须先从业务任务、信息拓扑和必需视觉 DNA 推演并选择唯一设计风格,再根据主题系统换肤。主题色只换 token 和强调色,不改变风格 DNA、布局机制和组件机制;不得按行业或颜色直接套风格。
|
|
64
|
+
17. **应用主题统一**:`app-theme.css` 只在应用级配置,由平台统一作用于应用壳、原生表单、详情页和自定义页面外层。`YidaCodeCanvas` 页面只在 `YidaComp` 内消费 `--color-brand1-*`、`--color-group` 和 `--pod-*`;严禁页面代码修改或向上层注入主题变量。
|
|
65
|
+
18. **design.md 是唯一视觉契约**:完整应用只产出一份应用级 `design.md`。页面技能读取与自身布局、交互和组件表达相关的设计结果。
|
|
66
|
+
19. **视觉设计规范只写 design.md**:`themeProfile`、应用主题文件交付、tokens、`visualScaffold`、`backgroundLayer`、`surfaceMaterial`、`surfaceContrast`、`colorRoles`、`depthRule`、`roundedRule`、`densityRule`、`breathingRule`、组件形态、空态规则和响应式规则写入 `design.md`;PRD 只引用这些视觉规则。
|
|
67
|
+
20. **稳定引用供 join 使用**:每个页面场景输出稳定 `sceneRecipes` / `designRefs`;`yida-app` 在两个 artifact end 后核对 PRD 的引用,不一致时回到对应 owner 修正。
|
|
68
|
+
21. **业务与视觉双事实源分工**:`prd.md` 写业务目标、资源、页面、数据来源、主操作和 `pageSpecHandoff`;`design.md` 写主题、布局、视觉结构、组件、图标、背景和状态规则。
|
|
70
69
|
22. **参考转成可执行选择**:参考 Dribbble / 优秀案例时,落到主色、背景素材、首屏构图、信息密度、动线、区块数量和反默认点。
|
|
71
70
|
23. **页面文案和图标使用专业表达**:渲染文案使用纯文本;图标只使用 `lucide-react` 或 `@ant-design/icons` 的具体组件,默认选择 `lucide-react`,并在 `design.md` 的 `iconSystem` 中写清业务动作、状态、导航和空态到图标组件的映射。emoji 不能改成 CSS 形状、字母占位、Unicode 符号或临时 SVG;如果需要图标,必须映射到上述两类库的具体组件。
|
|
72
71
|
24. **实现交接明确**:设计产物只定义页面结构、视觉系统和验收标准;常规业务图表使用 `yida-rechart`;ECharts 例外只用于用户明确要求复杂 ECharts option 或维护旧图表。
|
|
@@ -77,21 +76,19 @@ description: >
|
|
|
77
76
|
|
|
78
77
|
| 文档 | 覆盖范围 | 何时阅读 |
|
|
79
78
|
| --- | --- | --- |
|
|
80
|
-
| [
|
|
81
|
-
| [
|
|
82
|
-
| [
|
|
83
|
-
| [
|
|
84
|
-
| [
|
|
85
|
-
| [Step 6:写入 prd.md 和 design.md](workflow/step-6-handoff.md) | `prd.md` + `design.md` 必填内容、三种顺序、实现交接 | 输出前 |
|
|
79
|
+
| [读取共享需求简报](workflow/step-1-read-brief.md) | 业务对象、页面场景、明确范围、品牌和色彩偏好 | 完整应用必读 |
|
|
80
|
+
| [选择主题色和 token](workflow/step-2-theme-system.md) | 主题 token、色彩、字体、组件基调 | 涉及主题或视觉 |
|
|
81
|
+
| [页面结构和交互设计](workflow/step-4-wireframe-interaction.md) | 布局骨架、内容区块、主操作、抽屉、响应式 | 页面设计 |
|
|
82
|
+
| [UI 视觉和状态设计](workflow/step-5-visual-states.md) | 设计风格选择、视觉 DNA、主题换肤、素材图标、空/载/错态、去 AI 味 | 输出前自检 |
|
|
83
|
+
| [写入 design.md](workflow/step-6-handoff.md) | `design.md` 必填内容、稳定引用和完成条件 | 输出前 |
|
|
86
84
|
| [page-design 单页设计](sub_skill/page-design/SKILL.md) | 单页主题证据、页面级设计流程、输出补充字段 | 单个自定义页设计 |
|
|
87
|
-
| [
|
|
88
|
-
| [design.md
|
|
89
|
-
| [
|
|
90
|
-
| [
|
|
91
|
-
| [
|
|
92
|
-
| [style-design 风格注册表](references/style-designs/registry.md) | 内置视觉 DNA 风格、选择评分、风险扣分、风格消费规则 | Step 5 |
|
|
85
|
+
| [design.md 输出格式](workflow/output-design.md) | `design.md` 字段示例 | 写入前 |
|
|
86
|
+
| [design.md 生成规则](references/style-design-selection.md) | 从业务推演视觉 DNA,选择设计风格并按主题色换肤,生成应用级 `design.md` | UI 视觉设计 |
|
|
87
|
+
| [视觉结构配方库](references/visual-scaffold-recipes.md) | 将高质量页面结构转成 `visualScaffold` 槽位,约束页面实现落地 | UI 视觉设计 |
|
|
88
|
+
| [页面质量门禁](references/page-quality-gates.md) | 区块数量、源码槽位、低密大卡片、主题一致性和 `pageSpecHandoff` 检查 | 页面结构、视觉与交接阶段 |
|
|
89
|
+
| [style-design 风格注册表](references/style-designs/registry.md) | 内置视觉 DNA 风格、选择评分、风险扣分、风格消费规则 | UI 视觉设计 |
|
|
93
90
|
| [应用结构参考](references/app/blueprint.md) | 应用角色、导航、页面清单、页面/表单/流程资源蓝图 | 完整应用或主页面 |
|
|
94
91
|
| [应用主题与 token 参考](references/theme/theme-token-presets.md) | 平台主题 key、候选主题、token profile | 需要主题 key 或 token |
|
|
95
|
-
| [
|
|
92
|
+
| [应用主题 CSS 模板](references/theme/app-custom-theme-template.css) | AI 可复制修改的品牌、Shell、页面、表格和导航 token | 生成自定义应用主题文件时必读 |
|
|
96
93
|
| [yida-canvas-custom-page 样式实现指南](../yida-canvas-custom-page/references/canvas-style-implementation-guide.md) | 将 `design.md` 的 token、背景、圆角、密度和组件规则落到页面源码、antd、CSS、图表和控件状态 | 实现阶段 |
|
|
97
94
|
| [字段与 URL 参考](../../references/field-and-url-reference.md) | `isRenderNav=false`、页面 URL、跨页跳转 | 拼接页面/表单 URL |
|
|
@@ -1,112 +1,59 @@
|
|
|
1
1
|
# 素材工作流:官网 / 品牌页的真实图片如何落地
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
> 本文档告诉本地智能体(Claude / 千问办公等):**怎么拿到真实图片、怎么校验、怎么回填进页面**,以及拿不到时怎么诚实标注草稿。
|
|
3
|
+
> 官网、品牌首页、活动落地页需要真实产品或场景图时,由智能体准备素材,再统一交给 `openyida asset resolve` 解析和回填。绝不编造图片 URL。
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
## 核心原则
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
1. **图片由智能体来源,不由 CLI 凭空生成**:`openyida ai` 只有文生文 / 识图,没有文生图。图片可以由智能体生成,也可以从免费可商用素材库获取。
|
|
8
|
+
2. **素材统一解析**:本地文件和外链都交给 `openyida asset resolve`;已配置 CDN 时可转存为稳定 URL。
|
|
9
|
+
3. **区分生产交付与离线展示**:没有 CDN 时不得声称素材已经上传;离线展示可使用受控压缩的 JPEG/WebP data URI,但不能把它当作生产资源方案。
|
|
10
|
+
4. **没有素材就诚实标注草稿**:用文字排版、数据图示或插画替代,并在交付说明中标注素材缺口。
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
2. **未经校验的 URL 不得写进页面**:任何候选图片 URL 必须先过 `openyida asset verify-url` 确认真实可达且确为图片。
|
|
12
|
-
3. **区分生产交付与离线展示**:生产页面没有 CDN 时只能用已校验外链或**标注缺口的草稿**,不能假装“已上传”;离线展示为了原样发布稳定,可使用受控压缩的 JPEG/WebP data URI,但必须遵守本文的体积上限,且不能把这种方式当作生产资源方案。
|
|
13
|
-
4. **拿不到素材就诚实标注草稿**:既不能生成又找不到可校验素材时,用文字排版 / 数据图示 / 插画替代,并在交付说明里标注"素材缺口",页面会自动打上「素材草稿」水印。
|
|
12
|
+
## 执行流程
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
1. 运行 `openyida asset status --json`,了解当前素材能力。
|
|
15
|
+
2. 由智能体生成本地图片,或从 Unsplash、Pexels、Pixabay、unDraw 等免费可商用素材库取得图片直链。
|
|
16
|
+
3. 使用 `openyida asset resolve` 处理本地文件或外链,并回填 `spec.assets`。
|
|
17
|
+
4. 根据结果将 `materialStatus` 设为 `final`、`draft` 或 `none`;素材不足时保留草稿标记。
|
|
16
18
|
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
需要真实图片?(官网 Hero / 产品图 / 场景图 → 是)
|
|
21
|
-
│
|
|
22
|
-
▼
|
|
23
|
-
┌───────────────────────────────────────────────┐
|
|
24
|
-
│ Step 0 openyida asset status │ ← 看 CDN 是否可用、推荐策略
|
|
25
|
-
├───────────────────────────────────────────────┤
|
|
26
|
-
│ Step 1 取图(二选一) │
|
|
27
|
-
│ A. 你自己能生成图片 → 生成并存本地 │
|
|
28
|
-
│ B. 到免费可商用素材库检索真实图片直链 │
|
|
29
|
-
│ (Unsplash / Pexels / Pixabay / unDraw) │
|
|
30
|
-
├───────────────────────────────────────────────┤
|
|
31
|
-
│ Step 2 openyida asset verify-url <url> │ ← 每个候选都要校验,只留 ok=true
|
|
32
|
-
├───────────────────────────────────────────────┤
|
|
33
|
-
│ Step 3 写进 spec.assets(heroImage/productImages)│
|
|
34
|
-
├───────────────────────────────────────────────┤
|
|
35
|
-
│ Step 4 页面实现时回填 + 定级: │
|
|
36
|
-
│ 校验素材并写回 spec / 页面源码 │
|
|
37
|
-
│ (有 CDN 时转存稳定 URL) │
|
|
38
|
-
└───────────────────────────────────────────────┘
|
|
39
|
-
│
|
|
40
|
-
▼
|
|
41
|
-
materialStatus = final | draft | none
|
|
42
|
-
final → 可对外交付 (有 Hero 且素材已校验/上传)
|
|
43
|
-
draft → 页面带「素材草稿」水印 (部分素材缺口)
|
|
44
|
-
none → 官网无 Hero 素材 (必须补素材或标注为文字主导草稿)
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 命令速查(`openyida asset`)
|
|
19
|
+
## 命令速查
|
|
50
20
|
|
|
51
21
|
| 子命令 | 作用 | 关键参数 |
|
|
52
22
|
|---|---|---|
|
|
53
|
-
| `openyida asset status` | 检测 CDN
|
|
54
|
-
| `openyida asset
|
|
55
|
-
| `openyida asset
|
|
56
|
-
| `openyida asset generate` | 输出素材来源引导(免费库清单 + 纪律),检测生成能力 | `--json` |
|
|
57
|
-
|
|
58
|
-
> 页面实现阶段复用同一套回填口径:先校验候选素材,能上传 CDN 时转存稳定 URL,离线展示只做非网络的轻量定级。
|
|
59
|
-
|
|
60
|
-
---
|
|
23
|
+
| `openyida asset status` | 检测 CDN、上传和素材生成能力 | `--online`、`--json` |
|
|
24
|
+
| `openyida asset resolve` | 解析本地或外链素材,按能力转存并回填 | `--hero <url\|path>`、`--product <url\|path>`、`--require-hero`、`--upload-assets`、`--offline`、`--json` |
|
|
25
|
+
| `openyida asset generate` | 输出素材来源引导和免费素材库清单 | `--json` |
|
|
61
26
|
|
|
62
|
-
##
|
|
27
|
+
## 示例
|
|
63
28
|
|
|
64
|
-
|
|
65
|
-
|---|---|---|---|
|
|
66
|
-
| **Unsplash** | 免费可商用,无需署名 | 摄影级 Hero 大图、生活方式/场景图 | `images.unsplash.com/photo-...` |
|
|
67
|
-
| **Pexels** | 免费可商用,无需署名 | 产品/办公/团队/自然主题图与短视频 | `images.pexels.com/photos/...` |
|
|
68
|
-
| **Pixabay** | 免费可商用 | 插画/矢量/照片综合库 | `cdn.pixabay.com/photo/...` |
|
|
69
|
-
| **unDraw** | 免费可商用,可改色 | 扁平品牌插画、空状态/引导插画(SVG 可着色) | 导出 SVG 或官方 CDN SVG 直链 |
|
|
29
|
+
有 CDN 时:
|
|
70
30
|
|
|
71
|
-
**取图纪律**:拿到的必须是**图片直链**(能直接放进 `<img src>`),不是页面链接;直链拿到后立即 `openyida asset verify-url` 校验;授权不确定就改用 unDraw 插画或文字/数据图示替代。
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 典型用法示例
|
|
76
|
-
|
|
77
|
-
### 1. 有 CDN,走完整"最终版"链路
|
|
78
31
|
```bash
|
|
79
|
-
openyida asset status --json
|
|
80
|
-
openyida asset
|
|
81
|
-
openyida asset resolve --hero "https://images.unsplash.com/photo-xxxx" --upload --json # 校验+上传+回填→final
|
|
32
|
+
openyida asset status --json
|
|
33
|
+
openyida asset resolve --hero ./hero.webp --upload-assets --json
|
|
82
34
|
```
|
|
83
35
|
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
openyida asset verify-url "https://images.unsplash.com/photo-xxxx"
|
|
87
|
-
openyida asset resolve --hero "https://images.unsplash.com/photo-xxxx" --json # 外链校验通过→final(未上传)
|
|
88
|
-
```
|
|
36
|
+
使用外链时:
|
|
89
37
|
|
|
90
|
-
### 3. 暂无素材,诚实标注草稿
|
|
91
38
|
```bash
|
|
92
|
-
openyida asset resolve --
|
|
93
|
-
# 页面自动带「素材草稿·待接入真实图片」水印;交付说明须标注素材缺口,不得声称最终版
|
|
39
|
+
openyida asset resolve --hero "https://images.unsplash.com/photo-xxxx" --json
|
|
94
40
|
```
|
|
95
41
|
|
|
96
|
-
|
|
42
|
+
暂无素材时:
|
|
97
43
|
|
|
98
|
-
|
|
44
|
+
```bash
|
|
45
|
+
openyida asset resolve --offline --require-hero --json
|
|
46
|
+
```
|
|
99
47
|
|
|
100
|
-
|
|
101
|
-
「没有真实素材时用文字排版/数据图示替代」只是素材缺口处理方式,不是首选:先跑素材工作流拿真实图片,确实拿不到才标注草稿,且必须说明缺口。
|
|
48
|
+
## 设计落地
|
|
102
49
|
|
|
103
|
-
|
|
50
|
+
真实图片应服务于品牌叙事,而不是只填充 Hero。强视觉官网通常需要场景、产品或服务、过程或空间三类素材。完整策略写入当前项目的 `design.md.assetStrategy`。
|
|
104
51
|
|
|
105
|
-
|
|
52
|
+
**严禁事项**:应用主题只在应用级配置,严禁页面代码向原生页面、父页面或平台容器写入主题样式。`YidaCodeCanvas` 的页面背景只在 `YidaComp` 内按 `design.md` 实现并消费应用 token。
|
|
106
53
|
|
|
107
|
-
|
|
54
|
+
## 离线展示
|
|
108
55
|
|
|
109
|
-
-
|
|
56
|
+
- 建议仅内嵌 3–5 张关键图,长边约 1600–2000 px、质量 70–82。
|
|
110
57
|
- 单张尽量不超过 250 KB,图片总量尽量不超过 800 KB。
|
|
111
|
-
- 发布前检查源码与 `runtimeCode`
|
|
112
|
-
- 生产项目应迁移到 CDN
|
|
58
|
+
- 发布前检查源码与 `runtimeCode` 体积。
|
|
59
|
+
- 生产项目应迁移到 CDN,禁止把所有图片都转成 base64。
|
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
|
|
59
59
|
- 平台导航可见时,页面主按钮、链接、选中态、重点标签和图表主序列跟随应用主题。
|
|
60
60
|
- 模型生成的业务色相只作为辅助色、浅背景、图表第二序列或装饰气质;最终以当前项目 `design.md` 和应用主题关系为准。
|
|
61
|
-
-
|
|
61
|
+
- 沉浸页、自绘壳、独立品牌页、活动页和公开落地页使用当前应用主题,差异通过布局、材质、素材和构图表达。
|
|
62
62
|
- 默认业务页使用 light 模式;暗色只用于用户明确说暗色、夜间、高对比、黑金或暗色科技风。
|
|
63
63
|
- 主色不能无思考地固定为 `podBlue` / #1677ff;缺少主题证据时先根据行业、品牌、业务情绪和视觉目标做创意色彩判断,再选择平台预置主题或自定义 token;不得套用“科技=蓝、宠物=橙、法律=蓝”这类行业刻板配色。
|
|
64
|
-
-
|
|
64
|
+
- 应用主题设计必须生成 CSS 文件,完整保留平台实际生成的 `--color-brand1-1/2/3/5/6/9/10` 色阶,并以 `--color-brand1-6` 字面量声明主色;不得补造 `--color-brand1-4/7/8`。
|
|
65
65
|
|
|
66
66
|
## 5. 视觉层次门禁
|
|
67
67
|
|
|
@@ -122,4 +122,4 @@
|
|
|
122
122
|
|
|
123
123
|
`design.md` 还必须写清 `densityRule`、`breathingRule` 与 `roundedRule`。缺少圆角、间距、呼吸节奏、状态摘要高度、列表行高或空态高度的具体数值时,不能交付给自定义页面实现。
|
|
124
124
|
|
|
125
|
-
缺少 `pageSpecHandoff`、缺少 `design.md`、或 `pageSpecHandoff` 没有引用 `designFile/designRefs`
|
|
125
|
+
缺少 `pageSpecHandoff`、缺少 `design.md`、或 `pageSpecHandoff` 没有引用 `designFile/designRefs` 时,视觉设计交接不算完成。
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
## 输入
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
从共享需求简报、主题系统和页面结构产物中提取:
|
|
21
21
|
|
|
22
22
|
| 信号 | 示例 |
|
|
23
23
|
| --- | --- |
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
7. 按 `视觉策略 45% + 视觉强调与密度 15% + 布局兼容性 15% + 内容兼容性 15% + 多样性或用户偏好 10%` 选择唯一风格。内容和布局合计不得超过 30%,避免常见工作台内容把结果塌缩到通用风格。
|
|
45
45
|
8. 做内部近邻比较:生成 `design.md` 前必须在工作记忆中比较最相近的 2-4 个风格;选择 `soft-analytic-workbench` 时必须确认其他更强视觉策略证据不足。近邻比较是选择校验,不默认写入最终 `design.md`。
|
|
46
46
|
9. 读取被选中的 `style-designs/*.md`,抽取 `visual_dna`、`theme_adaptation`、`layout_stability`、`quality_anchors`、`components` 和 `modules`。
|
|
47
|
-
10.
|
|
47
|
+
10. 根据主题系统中的主题色来源和主题色输入,按所选风格的 `theme_adaptation` 执行换肤:替换 `replace_tokens`,派生 `derive_tokens`,保留 `preserve_tokens` 和 `visual_dna.invariant`。
|
|
48
48
|
11. 读取 [visual-scaffold-recipes.md](visual-scaffold-recipes.md),把当前页面组合映射到统一 `visualScaffold` 规则。
|
|
49
49
|
12. 读取 [page-quality-gates.md](page-quality-gates.md),把质量门禁补进 `acceptanceChecks`。
|
|
50
50
|
13. 需要判断详略时参考 `_design-md-template.md` 的字段粒度、registry 的输出记录和所选风格的质量锚点;只学习“写到多细”,不复制示例业务、色盘、字段、页面顺序或组件组合。
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
15. 写入 `densityRule`、`breathingRule`、`spacing` 和 `rounded` 的具体数值。默认业务工具页使用 high density + 圆润形状 + 有呼吸感的分组节奏:页面边距 20-28px,卡片与卡片 gap 12-18px 且必须小于 20px,卡片 padding 默认 22-28px 且必须大于 20px,卡片圆角范围 0-32px;只有品牌展示、官网或用户明确要求舒展时才降低密度。
|
|
53
53
|
16. 写入 `surfaceContrast`:页面背景与卡片背景必须形成明显层次对比,不可相近或相同;默认浅色背景保持清爽,但必须按“白色/浅色背景 + 有边框卡片、浅灰背景(如 `#F3F4F6`)+ 白色无边框卡片、浅彩色背景 + 白色无边框卡片、渐变背景 + 玻璃感卡片”四类方案选择。
|
|
54
54
|
17. 写入 `emptyStateRecipe` 和 `acceptanceChecks`:空态必须是薄行、面板内提示或右侧上下文,不使用 160px 以上大白卡;状态摘要不能是横跨整页且内容稀疏的空矩形。
|
|
55
|
-
18.
|
|
55
|
+
18. 页面主按钮、链接、选中态、重点标签和图表主序列跟随 `yida-design` 确定的应用主题。
|
|
56
56
|
|
|
57
57
|
## 内容兼容与视觉策略
|
|
58
58
|
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
| --- | --- | --- |
|
|
99
99
|
| 平台导航 / 应用菜单可见 | `跟随应用主题` | 主按钮、链接、选中态、重点标签、图表主序列使用应用主题;风格色相仅作为辅助色、浅背景、图表第二序列或装饰色 |
|
|
100
100
|
| 生成色盘与应用主题不同 | `应用主题主导,生成色彩作为辅助色` | 保留所选风格的视觉 DNA、布局、密度和组件语言,不把页面主色改成与应用主题冲突的色相 |
|
|
101
|
-
| 用户要求换肤 / 导航也一起变色 / 指定新品牌色 | `应用级换肤` |
|
|
101
|
+
| 用户要求换肤 / 导航也一起变色 / 指定新品牌色 | `应用级换肤` | 由 `yida-design` 生成应用主题文件并记录导航主题与布局 |
|
|
102
102
|
| 沉浸页、应用导航隐藏后的自绘壳、独立品牌页、活动页、公开落地页 | `跟随应用主题的差异化页面` | 主色仍消费应用主题,差异通过布局、材质、素材、构图和辅助视觉表达 |
|
|
103
103
|
|
|
104
104
|
## 输出字段
|
|
@@ -1,32 +1,23 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
|
|
3
3
|
/*
|
|
4
|
-
* OpenYida
|
|
4
|
+
* OpenYida 应用主题模板
|
|
5
5
|
*
|
|
6
6
|
* AI 使用说明:
|
|
7
|
-
* 1.
|
|
8
|
-
*
|
|
9
|
-
* 2.
|
|
7
|
+
* 1. 先在 design.md 确定主题色,再执行 openyida sample yida-design app-theme
|
|
8
|
+
* --output <app-theme.css> 复制本模板。
|
|
9
|
+
* 2. 按主题色修改对应 token;严禁重新生成或覆盖整份 CSS。
|
|
10
|
+
* 3. 本模板与 yida-next 应用主题配置保持同源,以 yc-common 0.4.0 的 PC/Pod 配置为基线,
|
|
11
|
+
* 默认呈现大圆角与 coffee 咖啡色主题;yida-design 按当前业务的 design.md 调整配色。
|
|
12
|
+
* 4. 应用品牌色阶只使用平台实际生成的 --color-brand1-1、2、3、5、6、9、10;
|
|
10
13
|
* --color-brand-1 至 --color-brand-4 和 --color-group 也必须保留并成套修改,不要补造 4、7、8。
|
|
11
|
-
*
|
|
14
|
+
* 5. 若 design.md 选择其他主色,必须同步替换品牌色阶、基础色阶、图表色组,以及模板中按钮、
|
|
12
15
|
* 表单、选中态、导航、日期组件等品牌相关直接色值;成功、警告、错误、通知等语义色保持独立。
|
|
13
|
-
*
|
|
16
|
+
* 6. 默认保留页面/卡片/抽屉 20px、组件 8-12px、按钮胶囊形的大圆角层级;
|
|
14
17
|
* 只有 design.md 明确给出其他 roundedRule 时才成套调整。
|
|
15
|
-
*
|
|
16
|
-
* 6. 新建使用:openyida create-app --name "应用名" --theme-file ./app-theme.css --nav-theme light --logo-source appIcon --layout l_shape
|
|
17
|
-
* 7. 已有应用使用:openyida update-app <appType> --theme-file ./app-theme.css --nav-theme light --logo-source appIcon --layout side
|
|
18
|
+
* 7. 保留变量名和 nav/light/dark 选择器结构。
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
|
-
/*
|
|
21
|
-
@font-face {
|
|
22
|
-
font-family: "yida-custom-font";
|
|
23
|
-
src: url("文字模板资源") format("truetype");
|
|
24
|
-
font-style: normal;
|
|
25
|
-
font-weight: 400;
|
|
26
|
-
font-display: swap;
|
|
27
|
-
}
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
21
|
:root {
|
|
31
22
|
/* 应用品牌色阶:按 coffee 预设生成,分别用于浅色背景、选中态、深色背景及透明交互态。 */
|
|
32
23
|
--color-brand1-1: rgba(155, 136, 121, 0.8);
|
|
@@ -99,7 +90,7 @@
|
|
|
99
90
|
--color-help-4: #0052cc;
|
|
100
91
|
|
|
101
92
|
/* 基础模板 · 字体体系:字体族、字号、字重与行高。 */
|
|
102
|
-
--font-family: "
|
|
93
|
+
--font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
|
|
103
94
|
--font-family-base: var(--font-family);
|
|
104
95
|
--font-size-caption: 12px;
|
|
105
96
|
--font-size-body-1: 14px;
|
|
@@ -174,7 +165,7 @@
|
|
|
174
165
|
);
|
|
175
166
|
--pod-sticky-footer-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05),
|
|
176
167
|
0 4px 8px 0 rgba(0, 0, 0, 0.08);
|
|
177
|
-
/*
|
|
168
|
+
/* 宜搭组件变量:供使用 --yida-* 的页面和组件消费。 */
|
|
178
169
|
--yida-sm-border-radius: 6px;
|
|
179
170
|
--yida-sm-gap-size: 6px;
|
|
180
171
|
--yida-s-gap-size: 8px;
|
|
@@ -188,7 +179,7 @@
|
|
|
188
179
|
--pod-default-border-radius: 20px;
|
|
189
180
|
--pod-drawer-border-radius: 20px;
|
|
190
181
|
--pod-drawer-shadow: 0 0 32px 0 rgba(0, 0, 0, 0.1);
|
|
191
|
-
/*
|
|
182
|
+
/* 应用主题公共变量:Shell、页面、卡片、字段、导航和数据管理。 */
|
|
192
183
|
/* Shell 外框:控制四种导航背景、外层留白和 L 型导航圆角。 */
|
|
193
184
|
--pod-shell-bg-color-light: rgba(243, 240, 239, 1);
|
|
194
185
|
--pod-shell-bg-color-white: #fff;
|
|
@@ -534,7 +525,7 @@
|
|
|
534
525
|
--popup-bg: #fff;
|
|
535
526
|
}
|
|
536
527
|
|
|
537
|
-
/*
|
|
528
|
+
/* 主题与 Fusion 组件统一消费同一字体变量。 */
|
|
538
529
|
body,
|
|
539
530
|
body button,
|
|
540
531
|
body input,
|
|
@@ -553,7 +544,7 @@ body .next-nav {
|
|
|
553
544
|
--pod-card-border: 1px solid rgba(24, 28, 31, 0.08);
|
|
554
545
|
}
|
|
555
546
|
|
|
556
|
-
/*
|
|
547
|
+
/* 移动端保留滚动能力,统一隐藏各业务滚动容器的滚动条。 */
|
|
557
548
|
.mobile .pod-premium,
|
|
558
549
|
.mobile .pod-premium *,
|
|
559
550
|
.pod-premium.is-phone,
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# 应用主题与 token 参考
|
|
2
2
|
|
|
3
|
-
本文件是
|
|
3
|
+
本文件是 `yida-design` 确定 OpenYida 应用主题色阶和 token 修改清单时使用的参考。
|
|
4
4
|
|
|
5
5
|
主题选择先根据行业、品牌、业务情绪和视觉目标做创意判断,不能固定回到 `podBlue` 或 #1677ff,也不能套用“科技=蓝、宠物=橙、法律=蓝”这类行业刻板配色。`podBlue`、`podGreen`、`podOrange` 是常用浅底候选,不是默认答案;`blue`、`green`、`orange` 也是应用主题 token profile,保留原名,不自动改写成其他主题名。
|
|
6
6
|
|
|
7
|
-
`deepBlue`、`deepPurple`、`purple`、`yellow`、`magenta`、`red`、`greyBlue`、`coffee`、`black`
|
|
7
|
+
`deepBlue`、`deepPurple`、`purple`、`yellow`、`magenta`、`red`、`greyBlue`、`coffee`、`black` 等色盘仅在用户明确指定、品牌匹配或业务确实需要时使用。普通业务页默认使用浅底主题,`black` 不作为默认主题。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
注意:下方预置只用于确定主题色阶。执行 `openyida sample yida-design app-theme --output <app-theme.css>` 复制 [app-custom-theme-template.css](app-custom-theme-template.css),再按主题色修改对应 token;严禁重新生成或覆盖整份 CSS。保留 `--color-brand1-1/2/3/5/6/9/10`、`--color-brand-1` 至 `--color-brand-4` 和 `--color-group`,严禁补造 `--color-brand1-4/7/8`。主色写入 `--color-brand1-6`。
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 色盘参考清单
|
|
12
12
|
|
|
13
|
-
|
|
|
13
|
+
| 色盘名 | 颜色倾向 | 使用口径 |
|
|
14
14
|
| --- | --- | --- |
|
|
15
15
|
| `blue` | 基础蓝 | 按需 |
|
|
16
16
|
| `green` | 基础绿 | 按需 |
|
|
17
17
|
| `orange` | 基础橙 | 按需 |
|
|
18
|
-
| `podBule` | 平台蓝色
|
|
18
|
+
| `podBule` | 平台蓝色 | 按需 |
|
|
19
19
|
| `podBlue` | 平台蓝 | 常用候选,不默认 |
|
|
20
20
|
| `teal` | 青色 | 按需 |
|
|
21
21
|
| `podGreen` | 平台绿 | 常用候选,不默认 |
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
|
|
35
35
|
## 应用主题 token profile
|
|
36
36
|
|
|
37
|
-
每个 profile 都按平台变量名记录。平台实际品牌色阶是 `--color-brand1-1/2/3/5/6/9/10
|
|
37
|
+
每个 profile 都按平台变量名记录。平台实际品牌色阶是 `--color-brand1-1/2/3/5/6/9/10`;生成主题文件时必须完整写入这些色阶,不得生成不存在的 `4/7/8`。`--color-brand1-*` 是页面和 PC 端主要消费的品牌色阶,`--color-brand-*` 是移动端和部分原生表单/壳层消费的品牌色阶,不能删掉、改名或替换为别的变量。`--color-group` 用于图表和分组配色。
|
|
38
38
|
|
|
39
39
|
## 平台 token 语义
|
|
40
40
|
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
| `--color-brand1-6` | 主品牌色 | 主按钮、链接、选中态、重点标签、图表主序列 |
|
|
48
48
|
| `--color-brand1-9` | 深主色 | 深色强调、深底按钮、强调标题、深色场景锚点 |
|
|
49
49
|
| `--color-brand1-10` | 深色或透明强调档 | 深色 hover、强强调背景、深色主题补充 |
|
|
50
|
-
| `--color-brand-1` | 移动端品牌浅/透明档 1 |
|
|
50
|
+
| `--color-brand-1` | 移动端品牌浅/透明档 1 | 移动端壳层、移动端表单、移动组件浅品牌态 |
|
|
51
51
|
| `--color-brand-2` | 移动端品牌浅/中档 2 | 移动端 hover、轻量强调、移动端组件浅色面 |
|
|
52
52
|
| `--color-brand-3` | 移动端主品牌档 3 | 移动端主操作、选中态、原生表单移动主色 |
|
|
53
53
|
| `--color-brand-4` | 移动端深品牌档 4 | 移动端 active、深色强调、移动壳层深色态 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 平台关键约束(务必先读)
|
|
6
6
|
|
|
7
|
-
1.
|
|
7
|
+
1. **页面主色跟随应用主题**:页面使用平台品牌色 CSS 变量(`var(--color-brand1-6)` 等)。独立品牌页、活动页、沉浸页和自绘壳通过下面 5 个维度表达差异。
|
|
8
8
|
2. **字体不可用 Google Fonts**:禁 `fonts.googleapis.com`(大陆不可达)。放弃「Inter vs Plus Jakarta」这类字体选型,改用**系统中文字体栈** + 字重/字号对比/字间距/`tabular-nums` 造性格。仅允许 `g.alicdn.com` 上已验证的字体。
|
|
9
9
|
3. **B 端为主**:自定义页多为看板/列表/工具/详情,不是营销落地页。装饰要克制、服务于信息,不堆砌。
|
|
10
10
|
4. **纯方向**:本文档只帮你选方向,不产出 JSX,也不替代 `design.md`。实现阶段读取对应实现适配文档,把 `design.md` 的 token、视觉 DNA、布局、圆角、密度和组件规则转换成页面源码。
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 视觉结构配方库
|
|
2
2
|
|
|
3
3
|
本文件把高质量页面的视觉结构沉淀成可执行槽位。设计阶段输出 `visualScaffold` 时,从这里选择一套配方,再把当前业务对象、字段、动作和状态填进去。实现阶段按槽位写页面,不复制示例业务文案、不套默认卡片墙。
|
|
4
4
|
|
|
5
5
|
## 使用规则
|
|
6
6
|
|
|
7
7
|
1. 先按页面场景选择一套配方。
|
|
8
|
-
2. 把 `contentBlocks` 映射到配方槽位;工作台、首页、门户、看板、展示页和业务入口页推荐 8-10
|
|
8
|
+
2. 把 `contentBlocks` 映射到配方槽位;工作台、首页、门户、看板、展示页和业务入口页推荐 8-10 个区块以上。如果业务是窄场景或用户要求精简,可以减少区块,并在页面结构和交互设计中说明取舍。
|
|
9
9
|
3. 把配方写入 `design.md` 的 `visualScaffold`:`layoutRecipe`、`surfaceMap`、`sectionRhythm`、`densityRule`、`breathingRule`、`componentRecipe`、`emptyStateRecipe`、`responsiveSlots`、`acceptanceChecks`。PRD 只引用 `designFile/designRefs` 和主题风格摘要。
|
|
10
10
|
4. 实现阶段逐项消费,不从“高级 / 简洁 / 好看”等形容词直接写 CSS。
|
|
11
11
|
5. 默认业务页采用圆润高密且有呼吸感的规则:卡片 padding 默认 22-28px 且必须大于 20px,卡片与卡片的 gap 默认 12-18px 且必须小于 20px,卡片圆角范围 0-32px,控件 10-14px;状态摘要、动作条、列表和空态必须紧凑,间距服务分组和扫读,不用额外 margin 或空白高度撑面积。
|
|
@@ -9,48 +9,47 @@ description: 宜搭单页设计子流程。用于已有应用里的单个自定
|
|
|
9
9
|
|
|
10
10
|
## Step 1:读取应用主题与功能契约
|
|
11
11
|
|
|
12
|
-
单页设计和页面重构先确认当前应用主题,同时记录现有功能契约。页面美感提升默认属于 UI-only
|
|
12
|
+
单页设计和页面重构先确认当前应用主题,同时记录现有功能契约。页面美感提升默认属于 UI-only 改造:调整布局、密度、间距、视觉层级、素材和图标表达,业务功能保持原样。
|
|
13
13
|
|
|
14
|
-
| 证据来源 | 读取内容 |
|
|
14
|
+
| 证据来源 | 读取内容 | 写入设计补充 |
|
|
15
15
|
| --- | --- | --- |
|
|
16
16
|
| 用户给出的应用 URL、`appType`、页面 URL、resource context | 目标应用、目标页面、页面所处业务上下文 | `appType`、`pageFormUuid`、`themeEvidence.source` |
|
|
17
17
|
| `project/config.json`、`.cache/<项目名>-schema.json`、`.openyida-page.json` | 已记录的 app/page/form、themeProfile、页面视觉摘要 | `themeEvidence.source=workspace` |
|
|
18
|
-
|
|
|
18
|
+
| 当前应用配置中的 `colour`、`themeColor`、`navTheme` | 当前应用主色和导航明暗 | `currentAppTheme` |
|
|
19
19
|
| 已有 Page Spec / 页面源码中的 `themeProfile`、应用主题消费方式 | 页面正在消费的应用主题 token | `currentPageTheme` |
|
|
20
20
|
| 已有 Page Spec / 页面源码 / 用户描述中的按钮、筛选、数据源、表单入口、跳转、权限、状态 | 当前页面功能契约和业务动作 | `functionContract` |
|
|
21
21
|
|
|
22
|
-
主题证据齐全时,页面重构、局部美化、列表/看板/详情优化沿用当前应用 `colour` / `themeColor`。主题证据缺失时,记录 `themeEvidence.status=missing
|
|
22
|
+
主题证据齐全时,页面重构、局部美化、列表/看板/详情优化沿用当前应用 `colour` / `themeColor`。主题证据缺失时,记录 `themeEvidence.status=missing`,根据行业、品牌、业务情绪和视觉目标生成应用主题文件,不固定回到 `podBlue` / #1677ff,也不套用行业刻板配色。
|
|
23
23
|
|
|
24
24
|
## 完整步骤
|
|
25
25
|
|
|
26
26
|
| 步骤 | 复用文件 | 单页执行重点 |
|
|
27
27
|
| --- | --- | --- |
|
|
28
28
|
| 1 | 本文件:读取应用主题与功能契约 | 获取 `currentAppTheme`、`currentPageTheme`、`themeEvidence`、`functionContract` |
|
|
29
|
-
| 2 | [
|
|
29
|
+
| 2 | [读取共享需求简报](../../workflow/step-1-read-brief.md) | 聚焦当前页面的用户、任务、业务对象和 UI-only 改造目标;没有完整应用简报时使用当前页面上下文 |
|
|
30
30
|
| 3 | [选择主题色和 token](../../workflow/step-2-theme-system.md) | 基于 Step 1 的应用主题;需要换色时生成或更新应用主题文件 |
|
|
31
|
-
| 4 | [规划页面和导航](../../workflow/step-3-information-architecture.md) | 只补当前页与平台导航、上游入口、下钻页面、原生表单/流程的关系 |
|
|
32
31
|
| 5 | [页面结构和交互设计](../../workflow/step-4-wireframe-interaction.md) | 明确布局骨架、主操作、详情抽屉、表单提交入口和 PC/移动端差异 |
|
|
33
32
|
| 6 | [UI 视觉和状态设计](../../workflow/step-5-visual-states.md) | 细化当前页视觉、素材、图标、空态、加载态、错误态和业务化自检 |
|
|
34
|
-
| 7 | [写入
|
|
33
|
+
| 7 | [写入 design.md](../../workflow/step-6-handoff.md) | 输出当前页面的设计补充,交给 `yida-canvas-custom-page` 实现;业务或页面契约变化时交给 `yida-prd` 更新 PRD |
|
|
35
34
|
|
|
36
35
|
## 主题决策口径
|
|
37
36
|
|
|
38
37
|
- 当前应用主题清楚:`themeDecision=follow-app` 或 `page-enhance`,`themeProfile.name` 使用当前应用主题 key,`themeColorSource=application-theme`,页面按业务需要调整构图、密度、素材和辅助视觉。
|
|
39
|
-
-
|
|
40
|
-
-
|
|
38
|
+
- 当前页面存在页面级主题 token:由 `yida-design` 将主色和语义变量收敛到应用主题文件。
|
|
39
|
+
- 页面重构/局部美化:以当前应用主题为基准,使用 `design.md` 确定的品牌色阶和语义变量。
|
|
41
40
|
- 页面美感提升/改 UI:`functionContract` 保持稳定,现有数据源、字段映射、按钮动作、筛选逻辑、提交 URL、权限和业务状态按原有实现交付。
|
|
42
|
-
-
|
|
41
|
+
- 用户明确要求换主色时,执行 `openyida sample yida-design app-theme --output <app-theme.css>` 复制模板,再按主题色修改对应 token;严禁重新生成或覆盖整份 CSS。
|
|
43
42
|
- 用户明确要全应用换肤:将诉求回到 `yida-design` 的主题色和 token 分支,输出应用主题 CSS、`themeColor` 和 `navTheme`。
|
|
44
|
-
-
|
|
43
|
+
- 单页只做局部美化:保持平台导航和应用主题稳定,直接使用当前主题变量。
|
|
45
44
|
|
|
46
45
|
## 输出补充字段
|
|
47
46
|
|
|
48
|
-
在 [
|
|
47
|
+
在 [design.md 输出格式](../../workflow/output-design.md) 基础上补充:
|
|
49
48
|
|
|
50
49
|
```markdown
|
|
51
50
|
- themeEvidence:<source/status/currentAppTheme/currentPageTheme>
|
|
52
51
|
- currentAppTheme:<colour/navTheme/config.COLOUR 或 missing>
|
|
53
|
-
- currentPageTheme
|
|
52
|
+
- currentPageTheme:<当前应用主题变量或 missing>
|
|
54
53
|
- themeDecision:<follow-app / page-enhance / app-theme-update>
|
|
55
54
|
- functionContract:<保留的数据源/字段映射/按钮动作/筛选逻辑/提交 URL/权限/状态>
|
|
56
55
|
- changeScope:<UI-only:颜色/布局/密度/间距/视觉层级/素材/图标>
|