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
@@ -0,0 +1,274 @@
1
+ ---
2
+ name: "{{PROJECT_NAME}}"
3
+ description: "稳定双列与合同摘要侧栏;铂灰细线、低圆角、均衡留白。适合合同、采购与商务审批。"
4
+ themeId: "app-platinum"
5
+ tokens:
6
+ application-global:
7
+ appearance:
8
+ surfaces:
9
+ "--pod-app-root-bg-color": "#eef0ef"
10
+ "--pod-app-root-bg-image": "none"
11
+ "--pod-page-bg-color": "#eef0ef"
12
+ "--pod-card-bg-color": "#ffffff"
13
+ "--pod-table-cell-color": "var(--pod-card-bg-color)"
14
+ navigation:
15
+ "--pod-shell-theme-bg-color": "#E6ECEA"
16
+ "--pod-nav-item-text-color": "#35434B"
17
+ "--pod-nav-item-text-hover-color": "#24323A"
18
+ "--pod-nav-item-text-selected-color": "#F5F8F7"
19
+ "--pod-nav-menu-bg-hover-color": "#D6E0DD"
20
+ "--pod-nav-menu-bg-selected-color": "#354B51"
21
+ "--pod-nav-menu-item-selected-shadow": "none"
22
+ "--pod-page-header-bg-color": "var(--pod-shell-theme-bg-color)"
23
+ "--pod-nav-l-sub-main-bg-color": "var(--pod-shell-theme-bg-color)"
24
+ "--pod-nav-top-main-border-width": "1px"
25
+ "--pod-nav-top-main-border-color": "#B7C5C0"
26
+ "--pod-nav-top-tab-indicator-width": "0px"
27
+ "--pod-nav-logo-text": "var(--pod-nav-item-text-hover-color)"
28
+ "--pod-nav-logo-bg": "var(--pod-nav-menu-bg-selected-color)"
29
+ "--pod-nav-logo-icon": "var(--pod-nav-item-text-selected-color)"
30
+ "--pod-nav-logo-border": "1px solid #B7C5C0"
31
+ "--pod-nav-logo-border-radius": "6px"
32
+ "--pod-nav-sub-divider-color": "#B7C5C0"
33
+ "--pod-nav-item-text-disabled-color": "rgba(24,28,31,.30)"
34
+ "--pod-nav-l-container-bg": "var(--pod-shell-theme-bg-color)"
35
+ "--pod-nav-l-group-label-color": "var(--pod-nav-item-text-color)"
36
+ "--pod-nav-l-search-border-color": "#B7C5C0"
37
+ "--pod-nav-popup-bg-color": "var(--pod-shell-theme-bg-color)"
38
+ "--pod-nav-popup-border-radius": "6px"
39
+ "--pod-nav-popup-shadow": "0 6px 18px rgba(53,67,75,.10)"
40
+ "--pod-nav-tab-line-hover-color": "var(--pod-nav-item-text-hover-color)"
41
+ "--pod-nav-tab-line-selected-color": "var(--pod-nav-item-text-hover-color)"
42
+ "--pod-nav-search-bg-color": "var(--pod-nav-menu-bg-hover-color)"
43
+ "--pod-nav-search-bg-hover-color": "var(--pod-nav-menu-bg-hover-color)"
44
+ "--pod-nav-search-bg-active-color": "var(--pod-nav-menu-bg-hover-color)"
45
+ "--pod-nav-search-placeholder-color": "var(--pod-nav-item-text-color)"
46
+ "--pod-nav-search-text-color": "var(--pod-nav-item-text-hover-color)"
47
+ "--pod-nav-search-icon-color": "var(--pod-nav-item-text-color)"
48
+ "--pod-nav-search-border-color": "#B7C5C0"
49
+ "--pod-nav-search-border-hover-color": "var(--pod-nav-item-text-hover-color)"
50
+ "--pod-nav-search-border-active-color": "var(--pod-nav-item-text-hover-color)"
51
+ "--pod-nav-action-icon-color": "var(--pod-nav-item-text-color)"
52
+ "--pod-nav-action-border-color": "#B7C5C0"
53
+ "--pod-nav-action-border": "1px solid #B7C5C0"
54
+ "--pod-nav-action-bg-hover-color": "var(--pod-nav-menu-bg-hover-color)"
55
+ "--pod-nav-action-bg-active-color": "var(--pod-nav-menu-bg-hover-color)"
56
+ "--pod-nav-menu-item-height": "38px"
57
+ "--pod-nav-menu-item-radius": "6px"
58
+ "--pod-nav-menu-item-border": "1px solid transparent"
59
+ "--pod-nav-menu-item-hover-border": "1px solid #B7C5C0"
60
+ "--pod-nav-menu-item-selected-border": "1px solid #354B51"
61
+ "--pod-nav-menu-font-size": "14px"
62
+ "--pod-nav-menu-item-selected-font-weight": "600"
63
+ "--pod-nav-menu-line-height": "20px"
64
+ "--pod-nav-menu-gap": "6px"
65
+ "--pod-shell-lshape-border-radius": "6px"
66
+ native-form:
67
+ "--form-element-medium-corner": "6px"
68
+ "--form-element-medium-height": "38px"
69
+ "--form-element-medium-font-size": "14px"
70
+ "--input-bg-color": "#ffffff"
71
+ "--input-border-width": "1px"
72
+ "--input-border-color": "#d1d8d7"
73
+ "--input-hover-border-color": "var(--color-brand1-6)"
74
+ "--input-focus-border-color": "var(--color-brand1-6)"
75
+ "--input-hover-bg-color": "#ffffff"
76
+ "--input-focus-bg-color": "#ffffff"
77
+ "--pod-form-label-color": "#35434b"
78
+ "--form-top-label-margin-b": "8px"
79
+ "--yida-form-content-bgcolor": "#ffffff"
80
+ "--pod-page-content-max-width": "1000px"
81
+ "--pod-page-border-radius": "6px"
82
+ "--pod-page-footer-bg-color": "#ffffff"
83
+ "--pod-page-footer-border-radius": "6px"
84
+ "--pod-sticky-footer-box-shadow": "none"
85
+ "--pod-formView-stickyFooter-bg-color": "#eef0ef"
86
+ "--pod-formView-stickyFooter-box-shadow": "none"
87
+ "--pod-formView-stickyFooter-border": "none"
88
+ "--pod-formView-stickyFooter-border-top": "1px solid #d1d8d7"
89
+ "--pod-formView-stickyFooter-height": "56px"
90
+ "--pod-formView-stickyFooter-bottom": "8px"
91
+ "--pod-field-preview-min-height": "32px"
92
+ "--pod-field-preview-padding": "8px 12px"
93
+ "--pod-field-preview-gap": "4px"
94
+ "--pod-field-preview-bg-color": "#ffffff"
95
+ "--pod-field-preview-border-radius": "6px"
96
+ "--pod-field-preview-indicator-color": "var(--color-fill1-3)"
97
+ "--pod-field-preview-shadow": "none"
98
+ "--pod-field-preview-text-color": "#35434b"
99
+ "--pod-field-preview-line-height": "20px"
100
+ colors:
101
+ "--color-white": "var(--pod-card-bg-color)"
102
+ "--color-brand1-1": "<生成实际色值:--color-brand1-6 88% + #FFFFFF 12%,sRGB 逐通道混合>"
103
+ "--color-brand1-2": "<生成实际色值:--color-brand1-6 12% + #FFFFFF 88%,sRGB 逐通道混合>"
104
+ "--color-brand1-3": "<生成实际色值:--color-brand1-6 4% + #FFFFFF 96%,sRGB 逐通道混合>"
105
+ "--color-brand1-5": "<生成实际色值:--color-brand1-6 38% + #171717 62%,sRGB 逐通道混合>"
106
+ "--color-brand1-6": "{{PRIMARY_COLOR}}"
107
+ "--color-brand1-9": "<生成实际色值:--color-brand1-6 76% + #000000 24%,sRGB 逐通道混合>"
108
+ "--color-brand1-10": "<生成实际色值:--color-brand1-6 26% + #202020 74%,sRGB 逐通道混合>"
109
+ "--color-line1-1": "#d1d8d7"
110
+ "--color-line1-2": "#d1d8d7"
111
+ "--color-fill1-1": "#eef0ef"
112
+ "--color-fill1-2": "#eef0ef"
113
+ "--color-fill1-3": "#d1d8d7"
114
+ "--color-fill1-5": "#ffffff"
115
+ "--color-fill1-10": "#262626"
116
+ "--color-text1-5": "#FFFFFF"
117
+ "--color-text1-4": "#35434b"
118
+ "--color-text1-10": "#35434b"
119
+ "--color-text1-3": "#35434b"
120
+ "--color-text1-2": "#858781"
121
+ "--color-text1-1": "#d1d8d7"
122
+ typography:
123
+ "--font-family-base": "Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
124
+ "--font-size-subhead": "18px"
125
+ "--font-weight-subhead": "500"
126
+ "--font-lineheight-subhead": "1.3"
127
+ "--font-size-body-2": "16px"
128
+ "--font-weight-body-2": "500"
129
+ "--font-lineheight-body-2": "1.45"
130
+ "--font-size-body-1": "14px"
131
+ "--font-weight-body-1": "400"
132
+ "--font-lineheight-body-1": "1.5"
133
+ "--font-size-table": "13px"
134
+ "--font-weight-table": "400"
135
+ "--font-lineheight-table": "1.45"
136
+ "--font-size-caption": "12px"
137
+ "--font-weight-caption": "400"
138
+ "--font-lineheight-caption": "1.4"
139
+ spacing:
140
+ "--s-1": "4px"
141
+ "--s-2": "8px"
142
+ "--s-3": "12px"
143
+ "--s-4": "16px"
144
+ "--s-5": "20px"
145
+ "--s-6": "24px"
146
+ "--s-7": "28px"
147
+ "--s-8": "32px"
148
+ "--s-9": "36px"
149
+ "--s-10": "40px"
150
+ rounded:
151
+ "--corner-zero": "0px"
152
+ "--corner-1": "6px"
153
+ "--corner-2": "6px"
154
+ "--corner-3": "6px"
155
+ "--corner-4": "6px"
156
+ "--corner-5": "6px"
157
+ "--corner-circle": "50%"
158
+ "--corner-semicircle": "500px"
159
+ shadow:
160
+ "--shadow-1": "0px 2px 4px 0px rgba(0, 0, 0, 0.12)"
161
+ "--shadow-2": "0px 4px 20px -1px rgba(0, 0, 0, 0.16)"
162
+ "--shadow-3": "0px 10px 28px -2px rgba(0, 0, 0, 0.24)"
163
+ custom-page:
164
+ "--oyd-page-bg": "var(--pod-page-bg-color)"
165
+ "--oyd-surface": "var(--pod-card-bg-color)"
166
+ "--oyd-canvas-image": "var(--pod-app-root-bg-image)"
167
+ "--oyd-ink": "var(--color-text1-4)"
168
+ "--oyd-border": "var(--color-line1-2)"
169
+ "--oyd-accent": "var(--color-brand1-6)"
170
+ "--oyd-radius": "6px"
171
+ "--oyd-content-width": "1000px"
172
+ "--oyd-content-padding": "36px"
173
+ "--oyd-field-gap": "24px"
174
+ "--oyd-section-gap": "48px"
175
+ "--oyd-heading-font": "var(--font-family-base)"
176
+ "--oyd-heading-size": "32px"
177
+ "--oyd-rule-style": "solid"
178
+ "--oyd-layout-columns": "minmax(0, 6fr) minmax(0, 6fr)"
179
+ "--oyd-surface-shadow": "none"
180
+ applicationStyle:
181
+ recipe: "application-style-v1"
182
+ mode: "template"
183
+ themeProfile:
184
+ contentTone: "light"
185
+ navTheme: "light"
186
+ ---
187
+ # {{PROJECT_NAME}} design.md
188
+
189
+ ## 1. 风格摘要
190
+
191
+ **铂金商务**
192
+
193
+ 稳定双列与合同摘要侧栏;铂灰细线、低圆角、均衡留白。适合合同、采购与商务审批。
194
+
195
+ 导航、应用框架、自定义页面、表单、编辑与详情共用这一套视觉语言。业务内容来自 PRD,按实际行业、页面标题和数据设计。色彩来源:{{COLOR_SOURCE}};主色由 {{PRIMARY_COLOR}} 实例化,品牌悬停色按同源占位说明生成;模板不固定项目品牌色。
196
+
197
+ ## 2. 页面视觉系统
198
+
199
+ ### 2.1 表面、区块与层次
200
+
201
+ 稳定双列与合同摘要侧栏。铂灰细线、低圆角、均衡留白。画布消费 --oyd-page-bg,内容消费 --oyd-surface,文字消费 --oyd-ink,边界消费 --oyd-border。内容最大宽度 --oyd-content-width,内距 --oyd-content-padding;宽屏不放大成空白 KPI 卡。
202
+
203
+ ### 2.2 应用导航
204
+
205
+ 铂灰导航配低圆角菜单与均衡行距,青灰细线连接合同工作区,当前入口以深灰底浅字形成稳重焦点。
206
+
207
+ 菜单轮廓使用 --pod-nav-menu-item-radius、--pod-nav-menu-item-border、--pod-nav-menu-item-hover-border、--pod-nav-menu-item-selected-border。侧栏和顶部菜单共用轮廓,各状态保持相同边框宽度,文字位置稳定;具体数值以本项目 Token 为准。
208
+
209
+ 导航与应用框架、表单、自定义页面和详情页共用设计语言。先按业务入口安排菜单、分组、搜索、品牌区与常用操作,再一起确定导航与正文的明暗、表面、字体、边界、圆角和密度。平台导航使用真实页面菜单;自绘导航按同一套导航 Token 实现。命名模板沿用自身 navTheme,换主色保持导航明暗与内容画布;需要另一导航明暗时改选主题,自由创意按项目明确设计。
210
+
211
+ 导航底色使用 --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。图标跟随对应文字状态,当前入口同时用背景或字重表达。
212
+
213
+ 菜单高度、圆角与间距使用 --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 独立于导航明暗。菜单高度、文字行高、内距和框架留白一起调整,给外阴影、长标题与键盘焦点留出空间。
214
+
215
+ 桌面检查菜单、搜索、选中态与表单的协调;折叠后保留可识别图标和入口名称;窄屏保持菜单可展开、当前页面可定位、键盘焦点可见。提交、编辑、详情与自定义页都沿用这一导航设计。 当前模板使用 contentTone: light、navTheme: light。
216
+
217
+ ### 2.3 页面标题与操作
218
+
219
+ 克制抬头与细线章节。标题字体消费 --oyd-heading-font 与 --oyd-heading-size,辅助说明按正文层级。主操作与当前任务相邻;不堆造虚假标签、指标或章号。
220
+
221
+ ### 2.4 布局和移动端
222
+
223
+ 桌面业务工作区:稳定双列与合同摘要侧栏。短字段建议 6:6,字段间距 24px、章节间距 48px、内容内距 36px;这些是项目起点,必须在每张表单设计中按组件树和字段长度确定。窄屏与半屏抽屉按实际可用宽度重排顶部、左侧、主体、右侧及字段间区域,侧栏组件可移到主体前后或折叠为合适的窄屏结构;长文本、附件和子表通常占整行。不把屏幕断点当 iframe 宽度,不用 fixed 卡片截断自然内容。
224
+
225
+ ### 2.5 自定义页面设计
226
+
227
+ 自定义页面以 稳定双列与合同摘要侧栏 组织真实业务内容,以 克制抬头与细线章节 建立标题与首屏焦点,并用 铂灰细线、低圆角、均衡留白 统一页面表面。页面根据 PRD 安排标题与操作区、状态摘要、筛选、主要内容、上下文信息和反馈区;列表、表格、图表、详情抽屉和表单入口只在业务需要时出现。宽度、列数、高度和滚动方式按内容增长确定,移动端按阅读与操作顺序重排。
228
+
229
+ 每个自定义页面逐页写清页面任务、首屏焦点、布局、表面与组件、主操作、状态、响应式和验收。状态覆盖加载、空、错误和无权限反馈及恢复动作;页面使用全局主题 token 落实当前风格,并为键盘焦点、纯图标按钮、非颜色状态表达和 reduced motion 提供可执行规则。
230
+
231
+ ## 3. 基础组件表达
232
+
233
+ ### 自定义页面组件与交互
234
+
235
+ 页面标题、筛选、主操作、状态摘要、列表、表格、图表、详情抽屉和表单入口按真实任务组合。标题与操作保持清楚的主次和对齐;列表、表格与图表使用稳定容器高度或自然增长规则;详情抽屉保留上下文并提供明确返回路径。默认、hover、active、focus、loading、empty、error、disabled 和 selected 状态使用同一套表面、边界、文字与状态语义。
236
+
237
+ `YidaCodeCanvas` 页面在 `YidaComp` 内消费 --oyd-page-bg、--oyd-surface、--oyd-ink、--oyd-border、--oyd-accent、--oyd-radius、--oyd-content-width、--oyd-content-padding、--oyd-section-gap 和其他已声明 token。页面局部 CSS 只负责当前组件的布局和特色表达;应用全局样式统一作用于应用框架、表单、详情页和自定义页面等。
238
+
239
+ ### 表单、表格与记录集合
240
+
241
+ 单行控件 38px、圆角 6px,边框 1px;字段 labelAlign=top(标签在字段上方)。多行文本、附件、日期范围、子表按自身布局。详情页沿用相同章节顺序与表面;只读字段的数据框使用 --pod-field-preview-bg-color、--pod-field-preview-border-radius、--pod-field-preview-shadow、--pod-field-preview-indicator-color、--pod-field-preview-text-color、--form-element-medium-font-size、--pod-field-preview-gap、--pod-field-preview-line-height、--pod-field-preview-min-height 和 --pod-field-preview-padding,延续应用的色彩、形状、字体与密度。表格保持紧凑,按钮、输入、浮层和导航消费同源色彩与形状。
242
+
243
+ ### 表单组件与版式结构
244
+
245
+ 表单支持在顶部、左侧、主体、右侧和字段之间放置分栏、Divider、图片/图形、Tab/切换、按钮组/操作入口、状态区和字段。各组件分别承担导航、操作、视觉焦点、反馈、层级、节奏、装饰或采集作用。普通业务分组和章节分隔使用 Divider,横向字段组合使用 ColumnContainer。form-layout.json 提供 6:6 空字段列,columnGap=24px、rowGap=24px、display=VERTICAL;按任务与容器宽度补充组件并调整布局。不因主题名称自动套 3:9,不重复已有标题,不用空泛文案凑版式。
246
+
247
+ ### 组件状态
248
+
249
+ 默认/hover/focus 同时配置边界和表面;键盘焦点保持可见。错误、警告、禁用沿用平台独立语义,不能被通用强调色覆盖;不得以全局 input 或 .next-* 强制改所有控件。应用 CSS 配置表单、编辑和详情的视觉样式。
250
+
251
+ ### 底栏与对齐
252
+
253
+ 普通提交按钮区使用 --pod-page-footer-bg-color 与 --pod-sticky-footer-box-shadow;数据管理、抽屉详情外层使用 --pod-formView-stickyFooter-bg-color 与 --pod-formView-stickyFooter-box-shadow。本风格按钮区跟随内容面,外层跟随画布,不叠加双阴影。底栏与正文共同消费 --pod-page-content-max-width。导航、无导航、管理内嵌、抽屉、移动端分别检查,不能全局覆盖 stickyFooter 的宽度与定位。
254
+
255
+ ## 4. 特色表达配方
256
+
257
+ ### 材质与信息密度
258
+
259
+ 铂灰细线、低圆角、均衡留白。稳定双列与合同摘要侧栏。图表、图片、时间线只为真实内容出现;没有媒体时以排版与章节构图成立,不为“丰富”捏造指标或入口。
260
+
261
+ ## 5. 项目应用与调整规则
262
+
263
+ YAML Token 是唯一数值源。沿用当前主题的构图与材质语言,按业务调整主色、字段分组及信息密度。
264
+
265
+ 逐页记录页面任务、首屏焦点、布局、组件、主操作、状态、响应式与验收。表单按第 3 节补充组件作用、列比例、标签、间距、窄屏重排和详情延续方式;在 form-layout.json 中填入真实字段与所需组件,并对照 design.md 验收。
266
+
267
+ {{PAGE_APPLICATIONS}}
268
+
269
+ ### 验收
270
+
271
+ - [ ] 导航、应用框架、Canvas、表单与详情的字体、线条、材质和状态一致。
272
+ - [ ] 正文与底栏对齐;四类容器与移动端无横向溢出。
273
+ - [ ] 文字/焦点/禁用/错误在实际背景上可辨,长说明与表格未裁切。
274
+ - [ ] 表单布局与逐页设计一致;组件、字段、主题和响应式规则均已核对。
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "type": "ColumnContainer",
4
+ "layout": "6:6",
5
+ "columnGap": "24px",
6
+ "rowGap": "24px",
7
+ "display": "VERTICAL",
8
+ "mobileRowGap": "24px",
9
+ "children": [
10
+ [],
11
+ []
12
+ ]
13
+ }
14
+ ]