openyida 2026.9.19 → 2026.9.21

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.
Files changed (195) hide show
  1. package/README.md +4 -4
  2. package/lib/app/application-style.js +69 -0
  3. package/lib/app/create-form/args.js +37 -12
  4. package/lib/app/create-form/batch.js +32 -5
  5. package/lib/app/create-form.js +94 -57
  6. package/lib/app/form-field-validator.js +0 -36
  7. package/lib/app/services/form-compiler.js +0 -2
  8. package/lib/app/theme-from-design.js +40 -14
  9. package/lib/app/update-app.js +63 -13
  10. package/lib/core/command-manifest.js +81 -25
  11. package/lib/core/locales/en.js +20 -3
  12. package/lib/core/locales/zh.js +20 -3
  13. package/lib/core/sample.js +36 -14
  14. package/lib/design/document.js +1 -0
  15. package/lib/design-plan/confirmation.js +13 -0
  16. package/lib/design-plan/design-plan.js +44 -2
  17. package/lib/design-plan/entry-navigation.js +10 -2
  18. package/lib/design-plan/init.js +16 -9
  19. package/lib/design-plan/materialize.js +85 -45
  20. package/lib/design-plan/normalize.js +13 -14
  21. package/lib/design-plan/parallel.js +62 -13
  22. package/lib/design-plan/patch.js +21 -7
  23. package/lib/design-plan/rebase.js +60 -0
  24. package/lib/design-plan/themes.js +16 -1
  25. package/lib/design-plan/validate.js +16 -1
  26. package/lib/design-plan/visual-policy.js +29 -4
  27. package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +3 -3
  28. package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +6 -4
  29. package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
  30. package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +1 -2
  31. package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
  32. package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +5 -4
  33. package/package.json +1 -1
  34. package/yida-skills/SKILL.md +2 -2
  35. package/yida-skills/references/official-example-schema-patterns.md +1 -1
  36. package/yida-skills/references/yida-api.md +4 -0
  37. package/yida-skills/skills/yida-app/SKILL.md +15 -4
  38. package/yida-skills/skills/yida-app/references/entry-navigation.md +11 -9
  39. package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +1 -1
  40. package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -4
  41. package/yida-skills/skills/yida-app/workflow/step-2-design.md +3 -3
  42. package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +2 -2
  43. package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +3 -3
  44. package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +3 -2
  45. package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +2 -2
  46. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +1 -1
  47. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +1 -1
  48. package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +140 -1
  49. package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +1 -1
  50. package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +1 -1
  51. package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +7 -0
  52. package/yida-skills/skills/yida-create-form-page/SKILL.md +34 -43
  53. package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
  54. package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
  55. package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +2 -2
  56. package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +4 -16
  57. package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +14 -37
  58. package/yida-skills/skills/yida-design/SKILL.md +7 -5
  59. package/yida-skills/skills/yida-design/references/application-style-library.md +93 -0
  60. package/yida-skills/skills/yida-design/references/application-theme-consistency.md +48 -7
  61. package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +1 -1
  62. package/yida-skills/skills/yida-design/references/native-form-styles.md +208 -0
  63. package/yida-skills/skills/yida-design/references/navigation-decision.md +6 -4
  64. package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +110 -1
  65. package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +58 -0
  66. package/yida-skills/skills/yida-design/references/theme-selection.md +12 -11
  67. package/yida-skills/skills/yida-design/references/visual-decision-engine.md +1 -1
  68. package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +49 -6
  69. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +13 -3
  70. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +6 -2
  71. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +5 -3
  72. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +3 -1
  73. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +22 -23
  74. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +2 -0
  75. package/yida-skills/skills/yida-design/templates/application-styles.json +398 -0
  76. package/yida-skills/skills/yida-design/templates/design-themes/README.md +15 -10
  77. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +748 -0
  78. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +274 -0
  79. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +15 -0
  80. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +748 -0
  81. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +274 -0
  82. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +14 -0
  83. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +748 -0
  84. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +274 -0
  85. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +13 -0
  86. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +748 -0
  87. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +274 -0
  88. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +14 -0
  89. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +748 -0
  90. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +274 -0
  91. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +14 -0
  92. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +748 -0
  93. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +274 -0
  94. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +14 -0
  95. package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +748 -0
  96. package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +274 -0
  97. package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +13 -0
  98. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +748 -0
  99. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +274 -0
  100. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +14 -0
  101. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +754 -0
  102. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +279 -0
  103. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +13 -0
  104. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +748 -0
  105. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +274 -0
  106. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +13 -0
  107. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +748 -0
  108. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +274 -0
  109. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +14 -0
  110. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +748 -0
  111. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +274 -0
  112. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +14 -0
  113. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +758 -0
  114. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +281 -0
  115. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +14 -0
  116. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +748 -0
  117. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +274 -0
  118. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +14 -0
  119. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +748 -0
  120. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +274 -0
  121. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +14 -0
  122. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +754 -0
  123. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +279 -0
  124. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +14 -0
  125. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +752 -0
  126. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +278 -0
  127. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +13 -0
  128. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +748 -0
  129. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +274 -0
  130. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +14 -0
  131. package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +2 -1
  132. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +690 -0
  133. package/yida-skills/skills/yida-design/templates/design-themes/{dark-inset-hairline.md → dark-inset-hairline/design.md} +107 -58
  134. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +13 -0
  135. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +691 -0
  136. package/yida-skills/skills/yida-design/templates/design-themes/{dark-rail-fine-lines.md → dark-rail-fine-lines/design.md} +106 -50
  137. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +13 -0
  138. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +696 -0
  139. package/yida-skills/skills/yida-design/templates/design-themes/{dark-rail-signal-panels.md → dark-rail-signal-panels/design.md} +66 -12
  140. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +13 -0
  141. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +689 -0
  142. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +238 -0
  143. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +13 -0
  144. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +692 -0
  145. package/yida-skills/skills/yida-design/templates/design-themes/{graphite-bevel-grid.md → graphite-bevel-grid/design.md} +64 -10
  146. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +13 -0
  147. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +691 -0
  148. package/yida-skills/skills/yida-design/templates/design-themes/{hairline-shared-bands.md → hairline-shared-bands/design.md} +66 -12
  149. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +13 -0
  150. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +691 -0
  151. package/yida-skills/skills/yida-design/templates/design-themes/{hairline-soft-blocks.md → hairline-soft-blocks/design.md} +61 -9
  152. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +13 -0
  153. package/yida-skills/skills/yida-design/templates/design-themes/index.json +399 -31
  154. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +701 -0
  155. package/yida-skills/skills/yida-design/templates/design-themes/{ink-glow-soft-panels.md → ink-glow-soft-panels/design.md} +62 -8
  156. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +13 -0
  157. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +691 -0
  158. package/yida-skills/skills/yida-design/templates/design-themes/{inset-frame-pixel-rhythm.md → inset-frame-pixel-rhythm/design.md} +63 -9
  159. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +13 -0
  160. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +698 -0
  161. package/yida-skills/skills/yida-design/templates/design-themes/{outlined-texture-duotone.md → outlined-texture-duotone/design.md} +66 -12
  162. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +13 -0
  163. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +691 -0
  164. package/yida-skills/skills/yida-design/templates/design-themes/{soft-inset-surfaces.md → soft-inset-surfaces/design.md} +63 -11
  165. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +13 -0
  166. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +690 -0
  167. package/yida-skills/skills/yida-design/templates/design-themes/{soft-outline-rhythm.md → soft-outline-rhythm/design.md} +64 -26
  168. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +13 -0
  169. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +698 -0
  170. package/yida-skills/skills/yida-design/templates/design-themes/{soft-rail-bold-band.md → soft-rail-bold-band/design.md} +103 -49
  171. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +13 -0
  172. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +692 -0
  173. package/yida-skills/skills/yida-design/templates/design-themes/{soft-spectral-panels.md → soft-spectral-panels/design.md} +67 -13
  174. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +13 -0
  175. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +711 -0
  176. package/yida-skills/skills/yida-design/templates/design-themes/{warm-canvas-contrast-panels.md → warm-canvas-contrast-panels/design.md} +64 -10
  177. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +13 -0
  178. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +692 -0
  179. package/yida-skills/skills/yida-design/templates/design-themes/{warm-rail-muted-panels.md → warm-rail-muted-panels/design.md} +102 -50
  180. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +13 -0
  181. package/yida-skills/skills/yida-design/templates/navigation-styles.json +769 -0
  182. package/yida-skills/skills/yida-design/workflow/output-design.md +9 -6
  183. package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +12 -4
  184. package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +1 -1
  185. package/yida-skills/skills/yida-form-permission/SKILL.md +6 -0
  186. package/yida-skills/skills/yida-nav-shell/SKILL.md +1 -1
  187. package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +6 -0
  188. package/yida-skills/skills/yida-page-config/SKILL.md +9 -0
  189. package/yida-skills/skills/yida-prd/SKILL.md +1 -0
  190. package/yida-skills/skills/yida-prd/workflow/output-prd.md +2 -2
  191. package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +1 -1
  192. package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +45 -9
  193. package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +5 -5
  194. package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +17 -4
  195. package/yida-skills/skills-index.json +2 -2
@@ -2,6 +2,7 @@
2
2
  name: "{{PROJECT_NAME}}"
3
3
  description: "墨黑画布上分布炭灰卡片,成组内容在卡片内回落为黑色内嵌面,以细边界形成轻微内凹层次;浅灰文字组织信息,色彩集中于品牌标识、数据细线和小型状态反馈。"
4
4
  themeId: dark-inset-hairline
5
+ navTheme: dark
5
6
  tokens:
6
7
  application-global:
7
8
  appearance:
@@ -12,12 +13,57 @@ tokens:
12
13
  "--pod-card-bg-color": "#0E0E0E" # neutral-gray;常规卡片、分组容器、表单与详情主面,比页面稍亮
13
14
  "--pod-table-cell-color": "var(--pod-card-bg-color)" # 表格正文跟随卡片
14
15
  navigation:
15
- "--pod-shell-theme-bg-color": "#0E0E0E" # neutral-gray;独立导航底色
16
- "--pod-nav-item-text-color": "#A8A8A8" # neutral-gray;普通菜单文字与图标
17
- "--pod-nav-item-text-hover-color": "#DDDDDD" # neutral-gray;悬停菜单文字
18
- "--pod-nav-item-text-selected-color": "#ECECEC" # neutral-gray;选中菜单文字
19
- "--pod-nav-menu-bg-hover-color": "#171717" # neutral-gray;悬停背景
20
- "--pod-nav-menu-bg-selected-color": "#202020" # neutral-gray;选中背景
16
+ "--pod-shell-theme-bg-color": "#0E0E0E"
17
+ "--pod-nav-item-text-color": "#A8A8A8"
18
+ "--pod-nav-item-text-hover-color": "#DDDDDD"
19
+ "--pod-nav-item-text-selected-color": "#ECECEC"
20
+ "--pod-nav-menu-bg-hover-color": "#171717"
21
+ "--pod-nav-menu-bg-selected-color": "#202020"
22
+ "--pod-nav-menu-item-selected-shadow": "none"
23
+ "--pod-page-header-bg-color": "var(--pod-shell-theme-bg-color)"
24
+ "--pod-nav-l-sub-main-bg-color": "var(--pod-shell-theme-bg-color)"
25
+ "--pod-nav-top-main-border-width": "1px"
26
+ "--pod-nav-top-main-border-color": "#353535"
27
+ "--pod-nav-top-tab-indicator-width": "0px"
28
+ "--pod-nav-logo-text": "var(--pod-nav-item-text-hover-color)"
29
+ "--pod-nav-logo-bg": "var(--pod-nav-menu-bg-selected-color)"
30
+ "--pod-nav-logo-icon": "var(--pod-nav-item-text-selected-color)"
31
+ "--pod-nav-logo-border": "1px solid #353535"
32
+ "--pod-nav-logo-border-radius": "6px"
33
+ "--pod-nav-sub-divider-color": "#353535"
34
+ "--pod-nav-item-text-disabled-color": "rgba(255,255,255,.30)"
35
+ "--pod-nav-l-container-bg": "var(--pod-shell-theme-bg-color)"
36
+ "--pod-nav-l-group-label-color": "var(--pod-nav-item-text-color)"
37
+ "--pod-nav-l-search-border-color": "#353535"
38
+ "--pod-nav-popup-bg-color": "var(--pod-shell-theme-bg-color)"
39
+ "--pod-nav-popup-border-radius": "6px"
40
+ "--pod-nav-popup-shadow": "0 8px 24px rgba(0,0,0,.24)"
41
+ "--pod-nav-tab-line-hover-color": "var(--pod-nav-item-text-hover-color)"
42
+ "--pod-nav-tab-line-selected-color": "var(--pod-nav-item-text-hover-color)"
43
+ "--pod-nav-search-bg-color": "var(--pod-nav-menu-bg-hover-color)"
44
+ "--pod-nav-search-bg-hover-color": "var(--pod-nav-menu-bg-hover-color)"
45
+ "--pod-nav-search-bg-active-color": "var(--pod-nav-menu-bg-hover-color)"
46
+ "--pod-nav-search-placeholder-color": "var(--pod-nav-item-text-color)"
47
+ "--pod-nav-search-text-color": "var(--pod-nav-item-text-hover-color)"
48
+ "--pod-nav-search-icon-color": "var(--pod-nav-item-text-color)"
49
+ "--pod-nav-search-border-color": "#353535"
50
+ "--pod-nav-search-border-hover-color": "var(--pod-nav-item-text-hover-color)"
51
+ "--pod-nav-search-border-active-color": "var(--pod-nav-item-text-hover-color)"
52
+ "--pod-nav-action-icon-color": "var(--pod-nav-item-text-color)"
53
+ "--pod-nav-action-border-color": "#353535"
54
+ "--pod-nav-action-border": "1px solid #353535"
55
+ "--pod-nav-action-bg-hover-color": "var(--pod-nav-menu-bg-hover-color)"
56
+ "--pod-nav-action-bg-active-color": "var(--pod-nav-menu-bg-hover-color)"
57
+ "--pod-nav-menu-item-height": "38px"
58
+ "--pod-nav-menu-item-radius": "6px"
59
+ "--pod-nav-menu-item-border": "1px solid transparent"
60
+ "--pod-nav-menu-item-hover-border": "1px solid #424242"
61
+ "--pod-nav-menu-item-selected-border": "1px solid #626262"
62
+ "--pod-nav-menu-font-size": "14px"
63
+ "--pod-nav-menu-item-selected-font-weight": "500"
64
+ "--pod-nav-menu-line-height": "20px"
65
+ "--pod-nav-menu-gap": "8px"
66
+ "--pod-shell-lshape-border-radius": "6px"
21
67
  colors:
22
68
  "--color-white": "var(--pod-card-bg-color)" # 全应用基础表面,随暗色内容面;不是固定白字或亮色按钮背景
23
69
  "--color-brand1-1": "<生成实际色值:--color-brand1-6 88% + #FFFFFF 12%,sRGB 逐通道混合>" # 品牌悬停
@@ -105,12 +151,12 @@ tokens:
105
151
 
106
152
  页面以墨黑为底,常规卡片与分组容器呈炭灰;需要容纳多个数据区块时,内部指标、图表和明细回落为黑色,形成轻微内凹的层次。独立摘要和操作卡片保持炭灰,不套用内部黑色数据面的背景。细线界定区域,浅灰文字组织阅读顺序,数值通过字号而非高饱和大底色成为焦点。整体紧凑,品牌、数据和状态色只占局部面积。
107
153
 
108
- | 核心特征 | 可见表现 | 主要偏离风险 |
109
- | --- | --- | --- |
110
- | 明暗交替的嵌入式表面 | 黑色页面、炭灰卡片、按内容启用的黑色内嵌面形成三段关系 | 把全部卡片设成页面黑色会丢失分区;逐层提亮又会失去内凹感 |
111
- | 低反差边界与稳定节奏 | 细分隔线配合短间距组织密集内容,面板边缘圆润而克制 | 亮白描边、厚边框、强投影会抢夺内容焦点 |
112
- | 灰阶阅读层级 | 标题和数值最亮,字段、说明和元信息逐级退后,字重变化有限 | 大量纯白粗体或把说明降为禁用灰,会破坏层级与可读性 |
113
- | 局部彩色信号 | 小状态胶囊、数据细线与真实完成比例承担色彩;品牌标识只作小范围点睛 | 满屏品牌渐变、霓虹发光、随机彩色卡片会改变主题性格 |
154
+ | 核心特征 | 可见表现 | 主要偏离风险 |
155
+ | -------------------- | ------------------------------------------------------------------ | -------------------------------------------------------- |
156
+ | 明暗交替的嵌入式表面 | 黑色页面、炭灰卡片、按内容启用的黑色内嵌面形成三段关系 | 把全部卡片设成页面黑色会丢失分区;逐层提亮又会失去内凹感 |
157
+ | 低反差边界与稳定节奏 | 细分隔线配合短间距组织密集内容,面板边缘圆润而克制 | 亮白描边、厚边框、强投影会抢夺内容焦点 |
158
+ | 灰阶阅读层级 | 标题和数值最亮,字段、说明和元信息逐级退后,字重变化有限 | 大量纯白粗体或把说明降为禁用灰,会破坏层级与可读性 |
159
+ | 局部彩色信号 | 小状态胶囊、数据细线与真实完成比例承担色彩;品牌标识只作小范围点睛 | 满屏品牌渐变、霓虹发光、随机彩色卡片会改变主题性格 |
114
160
 
115
161
  基础风格由表面、细边界、文字与间距共同建立,普通表单和列表也应成立。数据曲线、分段进度、快捷操作和对话仅在真实需求存在时启用;主题不规定业务名称、模块数量或固定页面结构。
116
162
 
@@ -122,19 +168,19 @@ YAML 是变量值事实源。本节定义视觉对象如何消费变量;局部
122
168
 
123
169
  层次主要依靠底色差、细线和留白。大范围表面保持不透明、无纹理;不用背景模糊或玻璃材质补充层次。
124
170
 
125
- | 对象 | 背景与前景 | 边界、圆角与阴影 |
126
- | --- | --- | --- |
127
- | 应用根背景 | 背景 `--pod-app-root-bg-color`;背景图 `--pod-app-root-bg-image` 仅限根节点 | 应用填满实际承载区域,不添加展示用的灰色外衬 |
128
- | 页面画布 | `--pod-page-bg-color`,自定义页通过 `--oyd-page-bg` 桥接;主要前景 `--color-text1-4` | 贴边处使用 `--corner-zero`,不强制外围留出设备展示边框 |
129
- | 常规卡片、分组容器、表单与详情主面 | 炭灰 `--pod-card-bg-color`;主要前景 `--color-text1-4`,说明 `--color-text1-3` | `--corner-5` 与 `--color-line1-1` 细边界,无阴影;独立摘要与操作卡片沿用此面 |
130
- | 卡片内的指标、图表与自绘明细区 | 黑色 `--oyd-inset-surface`,前景沿用内容 Text 角色 | 外围露出炭灰承载层;大内容面用 `--corner-5`,小型单元用 `--corner-4`,以细边界收口 |
131
- | 普通表格正文 | `--pod-table-cell-color` 单向跟随常规卡片;自绘内嵌明细的容器、表头与行统一使用 `--oyd-inset-surface` | 连续单元格不逐格圆角;行间仅使用 `--color-line1-1` |
132
- | 持续交互工作区 | 稍亮的 `--oyd-workspace-surface`,正文 `--color-text1-4`、说明 `--color-text1-3` | 单个完整外壳用 `--corner-5`;标题与正文之间保留细分隔 |
133
- | 内部分段与辅助信息 | 优先沿用所在表面,通过留白与分隔线分组;确需弱填充时用 `--color-fill1-1` | 不因增加一个字段组就再嵌套整张卡片 |
134
- | 下拉、浮层、气泡、弹窗、弹出日历及导航弹出层 | 独立背景 `--color-fill1-5`;主文字 `--color-text1-4`,说明 `--color-text1-3` | `--color-line1-2` 边界,`--corner-3`;小浮层用 `--shadow-1`,弹窗用 `--shadow-2` |
135
- | 抽屉 | `--color-fill1-5` 与对应内容前景 | `--corner-5` 用于外露角,贴边角归零;`--color-line1-2`、`--shadow-2` |
136
- | 图表读数浮层 | `--color-fill1-5`;读数 `--color-text1-4`,时间及单位 `--color-text1-3` | `--corner-3`、`--color-line1-2`、`--shadow-1`;比图形承载面明显提亮 |
137
- | 简短 Tooltip | 固定背景 `--color-fill1-10` 与固定前景 `--color-text1-5` 配对 | `--corner-3`,必要时 `--shadow-1`;与数据读数卡分开使用 |
171
+ | 对象 | 背景与前景 | 边界、圆角与阴影 |
172
+ | -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
173
+ | 应用根背景 | 背景 `--pod-app-root-bg-color`;背景图 `--pod-app-root-bg-image` 仅限根节点 | 应用填满实际承载区域,不添加展示用的灰色外衬 |
174
+ | 页面画布 | `--pod-page-bg-color`,自定义页通过 `--oyd-page-bg` 桥接;主要前景 `--color-text1-4` | 贴边处使用 `--corner-zero`,不强制外围留出设备展示边框 |
175
+ | 常规卡片、分组容器、表单与详情主面 | 炭灰 `--pod-card-bg-color`;主要前景 `--color-text1-4`,说明 `--color-text1-3` | `--corner-5` 与 `--color-line1-1` 细边界,无阴影;独立摘要与操作卡片沿用此面 |
176
+ | 卡片内的指标、图表与自绘明细区 | 黑色 `--oyd-inset-surface`,前景沿用内容 Text 角色 | 外围露出炭灰承载层;大内容面用 `--corner-5`,小型单元用 `--corner-4`,以细边界收口 |
177
+ | 普通表格正文 | `--pod-table-cell-color` 单向跟随常规卡片;自绘内嵌明细的容器、表头与行统一使用 `--oyd-inset-surface` | 连续单元格不逐格圆角;行间仅使用 `--color-line1-1` |
178
+ | 持续交互工作区 | 稍亮的 `--oyd-workspace-surface`,正文 `--color-text1-4`、说明 `--color-text1-3` | 单个完整外壳用 `--corner-5`;标题与正文之间保留细分隔 |
179
+ | 内部分段与辅助信息 | 优先沿用所在表面,通过留白与分隔线分组;确需弱填充时用 `--color-fill1-1` | 不因增加一个字段组就再嵌套整张卡片 |
180
+ | 下拉、浮层、气泡、弹窗、弹出日历及导航弹出层 | 独立背景 `--color-fill1-5`;主文字 `--color-text1-4`,说明 `--color-text1-3` | `--color-line1-2` 边界,`--corner-3`;小浮层用 `--shadow-1`,弹窗用 `--shadow-2` |
181
+ | 抽屉 | `--color-fill1-5` 与对应内容前景 | `--corner-5` 用于外露角,贴边角归零;`--color-line1-2`、`--shadow-2` |
182
+ | 图表读数浮层 | `--color-fill1-5`;读数 `--color-text1-4`,时间及单位 `--color-text1-3` | `--corner-3`、`--color-line1-2`、`--shadow-1`;比图形承载面明显提亮 |
183
+ | 简短 Tooltip | 固定背景 `--color-fill1-10` 与固定前景 `--color-text1-5` 配对 | `--corner-3`,必要时 `--shadow-1`;与数据读数卡分开使用 |
138
184
 
139
185
  细边界默认 1 CSS px(推断)。普通卡片不使用全局阴影;`--shadow-3` 保留为平台档位,本主题默认不启用。内凹感来自表面交替,不叠加 inset 阴影、内发光或立体倒角。
140
186
 
@@ -142,18 +188,17 @@ YAML 是变量值事实源。本节定义视觉对象如何消费变量;局部
142
188
 
143
189
  ### 2.2 应用导航
144
190
 
145
- 导航按项目确定的明暗成组配色,独立于内容画布。背景使用 `--pod-shell-theme-bg-color`,普通文字与图标使用 `--pod-nav-item-text-color`;悬停文字与背景使用 `--pod-nav-item-text-hover-color`、`--pod-nav-menu-bg-hover-color`,选中文字与背景使用 `--pod-nav-item-text-selected-color`、`--pod-nav-menu-bg-selected-color`。图标跟随对应文字状态,颜色以项目 tokens 为准。
191
+ 炭灰导航接续黑色画布,菜单以更亮的内嵌暗面标出当前页面;细边界、小圆角和紧凑行距延续内容区。
146
192
 
147
- 原生导航仅配置上述开放颜色,结构、尺寸、菜单排列和折叠由平台处理。页头不等于导航,不因标题区出现搜索或用户信息就增设一层菜单。
193
+ 菜单轮廓使用 --pod-nav-menu-item-radius、--pod-nav-menu-item-border、--pod-nav-menu-item-hover-border、--pod-nav-menu-item-selected-border。侧栏和顶部菜单共用轮廓,各状态保持相同边框宽度,文字位置稳定;具体数值以本项目 Token 为准。
148
194
 
149
- 只有项目已确定自绘导航时,采用以下视觉补充:
195
+ 导航与应用框架、表单、自定义页面和详情页共用设计语言。先按业务入口安排菜单、分组、搜索、品牌区与常用操作,再一起确定导航与正文的明暗、表面、字体、边界、圆角和密度。平台导航使用真实页面菜单;自绘导航按同一套导航 Token 实现。命名模板沿用自身 navTheme,换主色保持导航明暗与内容画布;需要另一导航明暗时改选主题,自由创意按项目明确设计。
150
196
 
151
- - 单线图标与文字左对齐,图标和文字间隔 `--s-3`;菜单项使用 `--corner-2`,垂直留白 `--s-3`,水平留白 `--s-4`。
152
- - 分组说明使用 caption 规格与普通导航文字色;分组之间以 `--s-6` 留白或弱分隔线建立层次。数字计数靠右对齐,不全部装入徽章。
153
- - 导航与内容以一条弱分界线区隔;品牌标识保留自己的局部强调,普通入口沿用中性配色。字母标识只有在真实分类存在时采用独立分类颜色。
154
- - 弹出的菜单仍使用 `--color-fill1-5`,文字按内容前景配套,不直接继承导航文字与选中底色。
197
+ 导航底色使用 --pod-shell-theme-bg-color;普通、悬停和选中文字分别使用 --pod-nav-item-text-color、--pod-nav-item-text-hover-color、--pod-nav-item-text-selected-color;悬停和选中背景使用 --pod-nav-menu-bg-hover-color、--pod-nav-menu-bg-selected-color。图标跟随对应文字状态,当前入口同时用背景或字重表达。
155
198
 
156
- 导航明暗沿用项目选择;换主色不自动切换导航明暗,也不改写内容画布、卡片或覆盖层。
199
+ 菜单高度、圆角与间距使用 --pod-nav-menu-item-height、--pod-nav-menu-item-radius、--pod-nav-menu-gap;搜索、品牌区、分组、操作和弹出菜单使用 navigation 分组中的对应 Token。弹出菜单的底色、文字与搜索状态成组配套,导航与内容可以分别选择明暗。选中项使用 --pod-nav-menu-item-selected-shadow:none 关闭额外标记,完整 box-shadow 值可表达左、右或底部内阴影,不占据菜单布局空间;该 Token 独立于导航明暗。菜单高度、文字行高、内距和框架留白一起调整,给外阴影、长标题与键盘焦点留出空间。
200
+
201
+ 桌面检查菜单、搜索、选中态与表单的协调;折叠后保留可识别图标和入口名称;窄屏保持菜单可展开、当前页面可定位、键盘焦点可见。提交、编辑、详情与自定义页都沿用这一导航设计。
157
202
 
158
203
  ### 2.3 页面标题与操作
159
204
 
@@ -167,14 +212,14 @@ YAML 是变量值事实源。本节定义视觉对象如何消费变量;局部
167
212
 
168
213
  全局字体使用 `--font-family-base`;中文由可用系统无衬线字体回退。数字优先使用等宽数字特性,表格数值按列对齐;金额、百分比和单位保持相同精度策略,不为制造视觉差异重复改变字体。
169
214
 
170
- | 文字角色 | 字号 / 字重 / 行高 | 前景与用途 |
171
- | --- | --- | --- |
172
- | 页面标题 | `--font-size-subhead` / `--font-weight-subhead` / `--font-lineheight-subhead` | `--color-text1-4`;不升级成展示性巨标题 |
173
- | 面板标题与重要记录名称 | `--font-size-body-2` / `--font-weight-body-2` / `--font-lineheight-body-2` | `--color-text1-4` |
174
- | 正文、字段标签与普通操作文案 | `--font-size-body-1` / `--font-weight-body-1` / `--font-lineheight-body-1` | 正文 `--color-text1-4`;辅助说明 `--color-text1-3` |
175
- | 连续比较的表格文字 | `--font-size-table` / `--font-weight-table` / `--font-lineheight-table` | 正文 `--color-text1-4`;表头 `--color-text1-10` |
176
- | 元信息、图例、坐标与小标签 | `--font-size-caption` / `--font-weight-caption` / `--font-lineheight-caption` | `--color-text1-3`;不得降为禁用灰 |
177
- | 独立核心指标 | `--oyd-font-size-metric` / `--oyd-font-weight-metric` / `--oyd-font-lineheight-metric` | `--color-text1-4`;只用于页面已有的重点数值 |
215
+ | 文字角色 | 字号 / 字重 / 行高 | 前景与用途 |
216
+ | ---------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------- |
217
+ | 页面标题 | `--font-size-subhead` / `--font-weight-subhead` / `--font-lineheight-subhead` | `--color-text1-4`;不升级成展示性巨标题 |
218
+ | 面板标题与重要记录名称 | `--font-size-body-2` / `--font-weight-body-2` / `--font-lineheight-body-2` | `--color-text1-4` |
219
+ | 正文、字段标签与普通操作文案 | `--font-size-body-1` / `--font-weight-body-1` / `--font-lineheight-body-1` | 正文 `--color-text1-4`;辅助说明 `--color-text1-3` |
220
+ | 连续比较的表格文字 | `--font-size-table` / `--font-weight-table` / `--font-lineheight-table` | 正文 `--color-text1-4`;表头 `--color-text1-10` |
221
+ | 元信息、图例、坐标与小标签 | `--font-size-caption` / `--font-weight-caption` / `--font-lineheight-caption` | `--color-text1-3`;不得降为禁用灰 |
222
+ | 独立核心指标 | `--oyd-font-size-metric` / `--oyd-font-weight-metric` / `--oyd-font-lineheight-metric` | `--color-text1-4`;只用于页面已有的重点数值 |
178
223
 
179
224
  页面边距优先 `--s-4` 至 `--s-6`,模块之间用 `--s-4`,分组之间用 `--s-6`;分组底板内缩 `--s-3`,卡片内边距 `--s-4`。标题到主体内容通常为 `--s-4`,图标到文案用 `--s-2`,同一行紧密信息用 `--s-1`。密度由间距与内容优先级控制,不缩小固定字体。
180
225
 
@@ -206,14 +251,14 @@ YAML 是变量值事实源。本节定义视觉对象如何消费变量;局部
206
251
 
207
252
  ### 按钮、搜索与输入
208
253
 
209
- | 组件 | 表达规则 |
210
- | --- | --- |
211
- | 常规中性按钮 | 使用 `--color-fill1-3` 与 `--color-text1-4`,边界 `--color-line1-2`,圆角 `--corner-2`;次要操作可弱化为弱填充或透明底 |
212
- | 品牌主操作 | 只在任务需要时使用 `--color-brand1-6`,前景使用 `--oyd-on-bright-color`;这是未展示的品牌实底按钮表达推断,现有中性操作仍保持原稿灰底浅字 |
213
- | 图标按钮 | 等宽高,轮廓清晰;矩形更多菜单用 `--corner-2`,圆形发送等局部操作用 `--corner-semicircle`;不得仅凭亮色暗示未知功能 |
214
- | 输入、筛选与选择器 | 默认背景 `--color-fill1-1`,常规边界 `--color-line1-2`,输入文字 `--color-text1-4`,placeholder `--color-text1-10`,圆角 `--corner-2` |
215
- | 搜索框 | 沿用输入语义,可使用 `--corner-semicircle`;图标与文本同基线,避免默认填入示例查询 |
216
- | 多行输入 | 沿用输入基础表面,按真实输入长度增长;工具区和正文以 `--s-3` 留白区隔 |
254
+ | 组件 | 表达规则 |
255
+ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
256
+ | 常规中性按钮 | 使用 `--color-fill1-3` 与 `--color-text1-4`,边界 `--color-line1-2`,圆角 `--corner-2`;次要操作可弱化为弱填充或透明底 |
257
+ | 品牌主操作 | 只在任务需要时使用 `--color-brand1-6`,前景使用 `--oyd-on-bright-color`;这是未展示的品牌实底按钮表达推断,现有中性操作仍保持原稿灰底浅字 |
258
+ | 图标按钮 | 等宽高,轮廓清晰;矩形更多菜单用 `--corner-2`,圆形发送等局部操作用 `--corner-semicircle`;不得仅凭亮色暗示未知功能 |
259
+ | 输入、筛选与选择器 | 默认背景 `--color-fill1-1`,常规边界 `--color-line1-2`,输入文字 `--color-text1-4`,placeholder `--color-text1-10`,圆角 `--corner-2` |
260
+ | 搜索框 | 沿用输入语义,可使用 `--corner-semicircle`;图标与文本同基线,避免默认填入示例查询 |
261
+ | 多行输入 | 沿用输入基础表面,按真实输入长度增长;工具区和正文以 `--s-3` 留白区隔 |
217
262
 
218
263
  按钮高度按用途选用 `--s-7`、`--s-8`、`--s-9`、`--s-10`,默认普通操作为 `--s-8`;输入与筛选控件使用 `--s-8` 至 `--s-10`,默认 `--s-9`。不将独立操作卡的整个高度当作按钮高度。
219
264
 
@@ -239,18 +284,22 @@ YAML 是变量值事实源。本节定义视觉对象如何消费变量;局部
239
284
 
240
285
  交互状态为实施推断,沿用主题的轻微明暗变化,不产生整张卡片位移。
241
286
 
242
- | 状态 | 视觉表达 |
243
- | --- | --- |
244
- | Hover | 中性透明元素叠加 `--color-fill1-1`;已有填充的控件可加强边界与文字;品牌操作使用 `--color-brand1-1` |
245
- | Active | 中性控件用 `--color-fill1-2`,品牌操作用 `--color-brand1-9`;不改变布局 |
246
- | Focus | 使用可见的品牌焦点轮廓,建议 2 CSS px、外偏移 2 CSS px(推断);不足以区分相邻面时增加中性分隔 |
247
- | Selected | 中性底 `--color-fill1-2` 配合明确的勾选、文字或选中标识;导航单独使用专属六项颜色 |
248
- | Disabled | 使用 `--color-text1-2`、弱边界和对应禁用填充,不保留可操作高亮;`--color-text1-1` 不用于说明正文 |
249
- | Error / Warning / Success / Info | 使用平台已有状态前景、边界与文字说明;同时保留文本语义,不能只依赖颜色 |
250
- | Loading / Empty | 保留内容区的布局语义;加载占位用中性 Fill 层级,空状态用可读说明和已有可行操作,不伪造数值或曲线 |
287
+ | 状态 | 视觉表达 |
288
+ | -------------------------------- | --------------------------------------------------------------------------------------------------- |
289
+ | Hover | 中性透明元素叠加 `--color-fill1-1`;已有填充的控件可加强边界与文字;品牌操作使用 `--color-brand1-1` |
290
+ | Active | 中性控件用 `--color-fill1-2`,品牌操作用 `--color-brand1-9`;不改变布局 |
291
+ | Focus | 使用可见的品牌焦点轮廓,建议 2 CSS px、外偏移 2 CSS px(推断);不足以区分相邻面时增加中性分隔 |
292
+ | Selected | 中性底 `--color-fill1-2` 配合明确的勾选、文字或选中标识;导航单独使用专属六项颜色 |
293
+ | Disabled | 使用 `--color-text1-2`、弱边界和对应禁用填充,不保留可操作高亮;`--color-text1-1` 不用于说明正文 |
294
+ | Error / Warning / Success / Info | 使用平台已有状态前景、边界与文字说明;同时保留文本语义,不能只依赖颜色 |
295
+ | Loading / Empty | 保留内容区的布局语义;加载占位用中性 Fill 层级,空状态用可读说明和已有可行操作,不伪造数值或曲线 |
251
296
 
252
297
  浮层内的控件仍各自消费输入、悬停、选中等角色,不因外层变亮就套用导航色。颜色过渡建议 120–180 ms(推断);禁止持续闪烁的状态点、发光扫描线和与任务无关的动画。
253
298
 
299
+ ### 表单组件与版式结构
300
+
301
+ 表单使用与自定义页面相同的应用全局样式,字体、色彩、表面、边界、圆角、密度和状态延续本主题。表单支持在顶部、左侧、主体、右侧和字段之间组合 Tab/切换、按钮组/操作入口、图片/图形、状态区、标题与 `Divider`、`ColumnContainer`、辅助内容和业务字段。各组件承担导航、操作、视觉焦点、反馈、层级、节奏、装饰或采集作用。普通业务分组和章节分隔使用 `Divider`,横向字段组合使用 `ColumnContainer`。每张表单在项目 `design.md` 写清组件位置与作用、列比例、标签位置、字段与章节间距、底栏、详情延续和窄屏重排。
302
+
254
303
  ## 4. 特色表达配方
255
304
 
256
305
  ### R1 细分刻度进度
@@ -0,0 +1,13 @@
1
+ [
2
+ {
3
+ "type": "ColumnContainer",
4
+ "layout": "12",
5
+ "columnGap": "16px",
6
+ "rowGap": "16px",
7
+ "display": "VERTICAL",
8
+ "mobileRowGap": "16px",
9
+ "children": [
10
+ []
11
+ ]
12
+ }
13
+ ]