openyida 2026.9.21 → 2026.9.22-beta.1

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 (334) hide show
  1. package/README.md +14 -20
  2. package/bin/yida.js +6 -11
  3. package/lib/app/app-list.js +3 -7
  4. package/lib/app/canvas-compile.js +12 -22
  5. package/lib/app/check-prd-completeness.js +0 -7
  6. package/lib/app/create-app.js +1 -4
  7. package/lib/app/create-form/args.js +12 -37
  8. package/lib/app/create-form/batch.js +11 -86
  9. package/lib/app/create-form.js +86 -193
  10. package/lib/app/create-page.js +17 -84
  11. package/lib/app/custom-theme.js +0 -11
  12. package/lib/app/form-field-validator.js +41 -26
  13. package/lib/app/form-open-guard.js +10 -97
  14. package/lib/app/get-form-config.js +0 -1
  15. package/lib/app/inline-css-guard.js +31 -1
  16. package/lib/app/services/form-compiler.js +4 -2
  17. package/lib/app/theme-from-design.js +41 -144
  18. package/lib/app/theme-presets.js +1 -1
  19. package/lib/app/update-app.js +13 -63
  20. package/lib/asset/ai-image.js +9 -59
  21. package/lib/asset/asset-cmd.js +7 -18
  22. package/lib/asset/asset-plan.js +9 -102
  23. package/lib/asset/asset-resolve.js +10 -55
  24. package/lib/asset/asset-status.js +4 -5
  25. package/lib/asset/host-capabilities.js +2 -11
  26. package/lib/asset/url-verify.js +4 -19
  27. package/lib/auth/dws-sync.js +145 -0
  28. package/lib/auth/token-auth.js +73 -9
  29. package/lib/auth/token-store.js +50 -0
  30. package/lib/connector/connector-test.js +5 -19
  31. package/lib/connector/contract.js +1 -3
  32. package/lib/core/agent-capabilities.js +16 -19
  33. package/lib/core/command-manifest.js +40 -329
  34. package/lib/core/locales/en.js +17 -74
  35. package/lib/core/locales/zh.js +16 -73
  36. package/lib/core/redact.js +10 -15
  37. package/lib/core/sample.js +30 -72
  38. package/lib/core/utils.js +4 -0
  39. package/lib/design-plan/design-plan.js +4 -51
  40. package/lib/design-plan/init.js +26 -121
  41. package/lib/design-plan/materialize.js +348 -451
  42. package/lib/design-plan/normalize.js +29 -74
  43. package/lib/design-plan/parallel.js +16 -71
  44. package/lib/design-plan/patch.js +16 -63
  45. package/lib/design-plan/preview.js +8 -6
  46. package/lib/design-plan/validate.js +11 -71
  47. package/lib/process/create-process.js +50 -84
  48. package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
  49. package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
  50. package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
  51. package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
  52. package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
  53. package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
  54. package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
  55. package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
  56. package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
  57. package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
  58. package/package.json +1 -3
  59. package/scripts/postinstall.js +3 -3
  60. package/yida-skills/SKILL.md +16 -19
  61. package/yida-skills/references/official-example-schema-patterns.md +1 -1
  62. package/yida-skills/references/yida-api.md +0 -4
  63. package/yida-skills/skills/yida-app/SKILL.md +23 -46
  64. package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
  65. package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
  66. package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
  67. package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
  68. package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
  69. package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
  70. package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
  71. package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
  72. package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
  73. package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
  74. package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
  75. package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
  76. package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
  77. package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
  78. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
  79. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
  80. package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
  81. package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
  82. package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
  83. package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
  84. package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
  85. package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
  86. package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
  87. package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
  88. package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
  89. package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
  90. package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
  91. package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
  92. package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
  93. package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
  94. package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
  95. package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
  96. package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
  97. package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
  98. package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
  99. package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
  100. package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
  101. package/yida-skills/skills/yida-design/SKILL.md +14 -29
  102. package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
  103. package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
  104. package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
  105. package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
  106. package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
  107. package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
  108. package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
  109. package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
  110. package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
  111. package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
  112. package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
  113. package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
  114. package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
  115. package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
  116. package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
  117. package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
  118. package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
  119. package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
  120. package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
  121. package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
  122. package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
  123. package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
  124. package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
  125. package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
  126. package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
  127. package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
  128. package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
  129. package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
  130. package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
  131. package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
  132. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
  133. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
  134. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
  135. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
  136. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
  137. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
  138. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
  139. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
  140. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
  141. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
  142. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
  143. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
  144. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
  145. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
  146. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
  147. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
  148. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
  149. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
  150. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
  151. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
  152. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
  153. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
  154. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
  155. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
  156. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
  157. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
  158. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
  159. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
  160. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
  161. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
  162. package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
  163. package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
  164. package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
  165. package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
  166. package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
  167. package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
  168. package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
  169. package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
  170. package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
  171. package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
  172. package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
  173. package/yida-skills/skills/yida-integration/SKILL.md +0 -1
  174. package/yida-skills/skills/yida-login/SKILL.md +0 -2
  175. package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
  176. package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
  177. package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
  178. package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
  179. package/yida-skills/skills/yida-prd/SKILL.md +3 -5
  180. package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
  181. package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
  182. package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
  183. package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
  184. package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
  185. package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
  186. package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
  187. package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
  188. package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
  189. package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
  190. package/yida-skills/skills-index.json +16 -36
  191. package/lib/app/application-entry-urls.js +0 -31
  192. package/lib/app/application-style.js +0 -69
  193. package/lib/app/canvas-icon-exports.json +0 -6160
  194. package/lib/app/canvas-icon-guard.js +0 -87
  195. package/lib/app/canvas-navigation-guard.js +0 -84
  196. package/lib/app/canvas-path-guard.js +0 -78
  197. package/lib/app/canvas-theme-guard.js +0 -184
  198. package/lib/app/form-data-response-guard.js +0 -57
  199. package/lib/asset/asset-execution.js +0 -79
  200. package/lib/core/css-structure.js +0 -37
  201. package/lib/design/check-design.js +0 -51
  202. package/lib/design/document.js +0 -458
  203. package/lib/design/icon-contrast.js +0 -85
  204. package/lib/design/page-content.js +0 -11
  205. package/lib/design-plan/artifact-updates.js +0 -117
  206. package/lib/design-plan/confirmation.js +0 -13
  207. package/lib/design-plan/entry-navigation.js +0 -97
  208. package/lib/design-plan/navigation-policy.js +0 -38
  209. package/lib/design-plan/rebase.js +0 -60
  210. package/lib/design-plan/themes.js +0 -101
  211. package/lib/design-plan/visual-policy.js +0 -42
  212. package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
  213. package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
  214. package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
  215. package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
  216. package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
  217. package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
  218. package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
  219. package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
  220. package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
  221. package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
  222. package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
  223. package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
  224. package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
  225. package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
  226. package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
  227. package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
  228. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
  229. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
  230. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
  231. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
  232. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
  233. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
  234. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
  235. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
  236. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
  237. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
  238. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
  239. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
  240. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
  241. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
  242. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
  243. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
  244. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
  245. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
  246. package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
  247. package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
  248. package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
  249. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
  250. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
  251. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
  252. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
  253. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
  254. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
  255. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
  256. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
  257. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
  258. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
  259. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
  260. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
  261. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
  262. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
  263. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
  264. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
  265. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
  266. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
  267. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
  268. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
  269. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
  270. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
  271. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
  272. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
  273. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
  274. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
  275. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
  276. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
  277. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
  278. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
  279. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
  280. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
  281. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
  282. package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
  283. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
  284. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
  285. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
  286. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
  287. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
  288. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
  289. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
  290. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
  291. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
  292. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
  293. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
  294. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
  295. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
  296. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
  297. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
  298. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
  299. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
  300. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
  301. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
  302. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
  303. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
  304. package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
  305. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
  306. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
  307. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
  308. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
  309. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
  310. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
  311. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
  312. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
  313. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
  314. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
  315. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
  316. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
  317. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
  318. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
  319. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
  320. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
  321. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
  322. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
  323. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
  324. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
  325. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
  326. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
  327. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
  328. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
  329. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
  330. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
  331. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
  332. package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
  333. package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
  334. package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
@@ -0,0 +1,385 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-bordered-analytic-workbench
5
+ design_id: visual-dna-soft-bordered-analytic-workbench
6
+ design_status: draft
7
+ description: 适用于高密度信息工作台、运营概览、数据摘要页和管理控制台的通用视觉 DNA,以浅色画布、软边框面板、深色摘要舞台、轻量图表和分层操作控件建立精致而稳定的界面气质。
8
+ scenes: [workbench, dashboard, admin_console, analytic_overview, operation_home]
9
+ density: medium-high
10
+ layout: top_toolbar_summary_stage_then_modular_grid
11
+ tone: [clean, precise, calm, premium, data_focused]
12
+ tags: [soft_bordered, analytic, modular_grid, command_toolbar, chart_panel]
13
+ avoid: [marketing_landing_page, editorial_content_site, immersive_gallery, playful_game, long_form_article]
14
+ selection:
15
+ best_for: [数据工作台, 指标概览页, 管理后台首页, 运营驾驶舱, 列表加图表混合页]
16
+ user_intent: [快速掌握状态, 扫描多组信息, 对比趋势与明细, 执行少量高频操作]
17
+ visual_tone: [浅色克制, 高密度但不拥挤, 圆角柔和, 边框精细, 强调色小面积点亮]
18
+ avoid_for: [品牌叙事页, 低信息量宣传页, 大幅图片展示页, 强沉浸内容页]
19
+ policies:
20
+ prd_first: true
21
+ content_neutral: true
22
+ no_source_locked_content: true
23
+ quick_actions_rendered_by_prd: true
24
+ theme_can_change_hue_not_dna: true
25
+ visual_dna:
26
+ - id: command_toolbar
27
+ name: 顶部轻量命令栏
28
+ confidence: observed
29
+ hooks: [topbar, search_input, date_filter, secondary_button, icon_button, keyboard_hint]
30
+ invariant: [顶部控件低高度横向排列, 输入与筛选控件使用白底浅边框, 右侧聚合全局操作, 所有控件对齐到同一基线]
31
+ variable: [控件数量, 筛选类型, 命令文案, 是否展示快捷键提示]
32
+ - id: dark_summary_stage
33
+ name: 深色摘要舞台
34
+ confidence: observed
35
+ hooks: [summary_stage, hero_metric, dark_surface, faint_pattern, primary_action_group]
36
+ invariant: [首屏上方使用横向深色大面板承载核心摘要, 左侧大号主信息, 右侧高频操作成组, 背景纹理低对比且不干扰阅读]
37
+ variable: [主摘要内容, 操作数量, 默认强调色, 背景纹理形态]
38
+ - id: chart_with_side_insights
39
+ name: 主图表加侧向洞察
40
+ confidence: observed
41
+ hooks: [chart_panel, positive_negative_bars, side_insight_stack, divider, segmented_control]
42
+ invariant: [主内容面板采用左大右小分栏, 左侧保留轻网格图表或等价主内容区域, 右侧垂直堆叠摘要条目并用细线分隔]
43
+ variable: [图表类型, 维度粒度, 侧向洞察数量, 右侧是否替换为辅助列表]
44
+ - id: equal_metric_grid
45
+ name: 等高指标卡栅格
46
+ confidence: observed
47
+ hooks: [metric_card, equal_height_grid, icon_label_row, delta_badge, comparison_caption]
48
+ invariant: [指标卡同一行等高, 图标与标题在顶部对齐, 主数值大号突出, 辅助说明置底或次级层级, 卡片只用浅边框和极轻阴影]
49
+ variable: [卡片数量, 指标含义, 趋势方向, 是否展示对比说明]
50
+ - id: split_detail_surface
51
+ name: 明细表与辅助面板并列
52
+ confidence: observed
53
+ hooks: [detail_table, list_row_icon, table_toolbar, supporting_panel, visual_object_card]
54
+ invariant: [底部区域使用宽主面板加窄辅助面板, 明细表头浅灰小写层级, 行内图标容器柔和, 工具按钮集中在面板标题右侧]
55
+ variable: [表格列, 行内容, 辅助面板类型, 工具按钮数量]
56
+ theme_adaptation:
57
+ accepts_theme_color: true
58
+ strategy: replace_hue_preserve_visual_mechanism
59
+ input: theme_color
60
+ replace_tokens: [tokens.colors.brand, tokens.colors.brand-strong, tokens.colors.brand-soft, tokens.colors.focus-ring]
61
+ derive_tokens: [tokens.colors.brand-muted, tokens.colors.chart-primary, tokens.colors.chart-secondary, tokens.colors.status-positive, tokens.colors.status-info]
62
+ preserve_tokens: [tokens.colors.bg-page, tokens.colors.surface, tokens.colors.surface-muted, tokens.colors.text-primary, tokens.colors.text-secondary, tokens.colors.border-subtle, tokens.colors.shadow-color]
63
+ rules:
64
+ - theme_color_only_changes_accent_hue
65
+ - replace_hue_preserve_visual_mechanism
66
+ - do_not_tint_page_background
67
+ - do_not_turn_neutral_cards_into_colored_cards
68
+ - keep_accent_usage_small_area
69
+ - preserve_dark_summary_contrast
70
+ tokens:
71
+ colors:
72
+ bg-page: "#ffffff"
73
+ bg-app: "#f7f9fb"
74
+ surface: "#ffffff"
75
+ surface-muted: "#f4f7f9"
76
+ surface-raised: "#ffffff"
77
+ dark-stage: "#075f66"
78
+ dark-stage-muted: "#0d7078"
79
+ text-primary: "#17191c"
80
+ text-secondary: "#718092"
81
+ text-tertiary: "#9aa5b1"
82
+ border-subtle: "#e7edf2"
83
+ border-strong: "#dbe4eb"
84
+ brand: "#09d47d"
85
+ brand-strong: "#05686f"
86
+ brand-soft: "#e7fbf2"
87
+ brand-muted: "#4d858b"
88
+ status-positive: "#12b981"
89
+ status-negative: "#ef4b7b"
90
+ status-neutral: "#eef2f5"
91
+ status-info: "#4d858b"
92
+ chart-primary: "#075f66"
93
+ chart-secondary: "#09d47d"
94
+ focus-ring: "#09d47d"
95
+ shadow-color: "rgba(18, 31, 44, 0.08)"
96
+ typography:
97
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
98
+ page-title: { fontSize: 24, fontWeight: 700, lineHeight: 1.2, letterSpacing: 0 }
99
+ section-title: { fontSize: 20, fontWeight: 500, lineHeight: 1.3, letterSpacing: 0 }
100
+ metric-hero: { fontSize: 46, fontWeight: 500, lineHeight: 1.05, letterSpacing: 0 }
101
+ metric-card: { fontSize: 36, fontWeight: 500, lineHeight: 1.1, letterSpacing: 0 }
102
+ body: { fontSize: 16, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
103
+ caption: { fontSize: 14, fontWeight: 400, lineHeight: 1.35, letterSpacing: 0 }
104
+ table-head: { fontSize: 12, fontWeight: 700, lineHeight: 1.2, letterSpacing: 0.04em }
105
+ spacing:
106
+ page-x-desktop: 28
107
+ page-x-tablet: 20
108
+ page-x-mobile: 16
109
+ page-y: 24
110
+ grid-gap: 20
111
+ panel-x: 28
112
+ panel-y: 24
113
+ control-gap: 8
114
+ row-gap: 18
115
+ rounded:
116
+ control: 12
117
+ panel: 20
118
+ stage: 22
119
+ icon-tile: 12
120
+ status-pill: 8
121
+ shadow:
122
+ panel: "0 1px 2px rgba(18, 31, 44, 0.04), 0 8px 24px rgba(18, 31, 44, 0.04)"
123
+ control: "0 1px 2px rgba(18, 31, 44, 0.06)"
124
+ none: "none"
125
+ layout_stability:
126
+ grid_align_items: stretch
127
+ panel_display: flex-column
128
+ panel_height: "100%"
129
+ overflow_policy: internal_scroll_or_truncate
130
+ spacing_policy: parent_gap_only
131
+ equal_height_rule: same_row_panels_align
132
+ min_width_policy: "min-width: 0 on all grid children"
133
+ min_height_policy: "min-height: 0 on nested flex panels"
134
+ fixed_height_tokens:
135
+ topbar: 48px
136
+ summary_stage: 170px
137
+ chart_panel: 430px
138
+ metric_card: 150px
139
+ detail_panel: 420px
140
+ table_row: 72px
141
+ quality_anchors:
142
+ - id: soft_command_bar
143
+ name: 轻量顶部命令栏
144
+ required_when: 页面存在搜索、筛选、导出、时间范围或全局命令
145
+ rule: 控件使用同高度、浅边框、微阴影和图标前缀,右侧命令组合保持紧凑,不让顶部变成厚重导航。
146
+ - id: dark_summary_stage
147
+ name: 深色摘要舞台
148
+ required_when: PRD 存在核心状态、主摘要或一组最高优先级操作
149
+ rule: 用深色横向大面板形成首屏锚点,主信息左对齐,操作组右对齐,低对比纹理只用于增加层次。
150
+ - id: airy_chart_panel
151
+ name: 轻网格主内容面板
152
+ required_when: PRD 存在趋势、分布、对比或时间序列信息
153
+ rule: 图表容器固定高度,网格线极浅,主序列和辅助序列形成清晰正负或主次对比,坐标标签不抢占视觉焦点。
154
+ - id: side_insight_stack
155
+ name: 侧向洞察摘要栈
156
+ required_when: 主内容需要配套解释、摘要、分组统计或关键状态
157
+ rule: 在主面板侧边使用窄列摘要块,每块包含色块图标、标题、主值和变化状态,中间用细分隔线控制节奏。
158
+ - id: equal_metric_cards
159
+ name: 等高指标卡组
160
+ required_when: PRD 需要展示三到六个并列摘要项
161
+ rule: 卡片同高同宽,顶部为图标标题和周期/标签,中央为大号主值,底部为次级对比说明,避免自由高度造成参差。
162
+ - id: refined_detail_surface
163
+ name: 精致明细承载面
164
+ required_when: PRD 存在表格、列表、事件流、对象清单或近期记录
165
+ rule: 表头用浅灰背景与小号强调字,行高稳定,行首用柔和图标容器建立扫描点,状态用低饱和标签而非纯文字。
166
+ quality_floor:
167
+ target: polished_sample_level
168
+ avoid_default_admin_feel: true
169
+ requires_visible_micro_detail: true
170
+ minimum_craft_signals: [precise_alignment, stable_panel_heights, subtle_borders, refined_table_header, iconized_rows, restrained_accent_usage, chart_grid_texture]
171
+ components:
172
+ card:
173
+ background: tokens.colors.surface
174
+ border: "1px solid tokens.colors.border-subtle"
175
+ roundedRef: tokens.rounded.panel
176
+ shadowRef: tokens.shadow.panel
177
+ padding: tokens.spacing.panel-x
178
+ input:
179
+ height: 48
180
+ roundedRef: tokens.rounded.control
181
+ border: "1px solid tokens.colors.border-subtle"
182
+ icon_slot: leading
183
+ hint_slot: trailing
184
+ button:
185
+ height: 48
186
+ roundedRef: tokens.rounded.control
187
+ variants: [primary_accent, secondary_soft, ghost_icon]
188
+ icon_required_for_commands: true
189
+ segmented_control:
190
+ height: 46
191
+ background: tokens.colors.surface-muted
192
+ selected_background: tokens.colors.surface
193
+ roundedRef: tokens.rounded.control
194
+ chart:
195
+ min_height: 320
196
+ grid_color: tokens.colors.border-subtle
197
+ bar_radius: 5
198
+ axis_label_color: tokens.colors.text-secondary
199
+ table:
200
+ header_height: 48
201
+ row_height: 72
202
+ header_background: tokens.colors.surface-muted
203
+ border: tokens.colors.border-subtle
204
+ status:
205
+ roundedRef: tokens.rounded.status-pill
206
+ positive_background: "#e9fbf2"
207
+ neutral_background: tokens.colors.status-neutral
208
+ negative_background: "#fff0f5"
209
+ modules:
210
+ global_toolbar:
211
+ confidence: observed
212
+ render_policy: prd_only
213
+ placement: page_top
214
+ alignment: search_left_filters_right
215
+ primary_summary:
216
+ confidence: observed
217
+ render_policy: prd_only
218
+ placement: below_toolbar
219
+ layout: dark_stage_with_action_cluster
220
+ quick_actions:
221
+ confidence: observed
222
+ render_policy: prd_only
223
+ placement: embedded_in_primary_summary_when_related_otherwise_independent_section
224
+ item_count: 3-6
225
+ primary_content_panel:
226
+ confidence: observed
227
+ render_policy: prd_only
228
+ placement: after_primary_summary
229
+ layout: large_content_area_with_optional_side_stack
230
+ metric_grid:
231
+ confidence: observed
232
+ render_policy: prd_only
233
+ placement: after_primary_content
234
+ item_count: 3-6
235
+ detail_surface:
236
+ confidence: observed
237
+ render_policy: prd_only
238
+ placement: lower_grid
239
+ layout: wide_detail_panel_plus_supporting_panel
240
+ ---
241
+
242
+ # Soft Bordered Analytic Workbench DESIGN.md
243
+
244
+ > front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和业务取舍以正文为准。
245
+
246
+ ## 1. 快速理解
247
+
248
+ 这是一套用于高密度工作台和分析型首页的视觉 DNA:浅色画布、软边框面板、深色摘要舞台、轻网格主内容区和等高信息卡共同形成稳定首屏。
249
+
250
+ PRD 决定页面要呈现什么内容、有什么功能、信息优先级如何;本文件只约束 UI 风格、布局气质、组件形态、状态和响应式规则。
251
+
252
+ 默认强调色可以替换为任意主题色,但只改变小面积强调、图表序列、状态辅助色和 focus ring,不改变深色摘要舞台、浅色背景、软边框、稳定网格和高密度构图。
253
+
254
+ 它适合需要快速扫描状态、对比趋势、查看明细并执行少量命令的界面;不适合低信息量品牌叙事、沉浸式内容展示或强营销落地页。
255
+
256
+ 编码结果必须具备精细边框、稳定面板高度、清晰数字层级、图标化扫描点和轻量图表纹理,不能退化成普通后台套路。
257
+
258
+ ## 2. 使用边界
259
+
260
+ PRD 决定内容、功能、信息架构、业务优先级、模块是否存在,以及每个模块的真实字段和交互目标。
261
+
262
+ DESIGN.md 只负责视觉 DNA、布局气质、组件形态、密度、状态、响应式和可访问性。没有 PRD 支撑的模块不要为了填满画面而新增;没有量化信息时不要强行生成大号数字;没有列表数据时不要伪造表格。
263
+
264
+ 禁止复用非 PRD 的具体业务字段、示例数值、人名、机构名、分类名、品牌表达或页面专属文案。所有内容都必须来自 PRD,或使用中性占位槽位等待 PRD 填充。
265
+
266
+ ## 3. 设计风格选择与换色逻辑
267
+
268
+ 当页面需要在首屏内同时承载搜索/筛选、核心摘要、高频操作、图表或主内容面板、并列指标卡和明细列表时,优先选择该风格。
269
+
270
+ 不要把默认强调色理解成视觉 DNA。视觉 DNA 是“浅背景 + 软边框 + 深色摘要舞台 + 稳定模块栅格 + 小面积高亮”的机制,主题色只能替换强调色相与派生状态色。
271
+
272
+ 主题色可改写 `brand`、`brand-strong`、`brand-soft`、`focus-ring`、图表主辅色和状态辅助色。背景、白色表面、中性文字、浅边框、大圆角、等高网格、主次分栏和留白节奏必须保持。
273
+
274
+ 不要把主题色铺满页面背景、普通卡片底色或大面积信息面板;强调色应集中在主按钮、图标底、趋势符号、图表关键序列、选中态和 focus ring。
275
+
276
+ ## 4. 视觉 DNA
277
+
278
+ `command_toolbar` 保证页面开场轻、快、可操作。顶部控件应低高度横向排列,搜索、筛选、导出等命令采用白底浅边框,不做厚重导航栏。缺失时界面会变成普通模块堆叠,首屏任务感不足。
279
+
280
+ `dark_summary_stage` 是首屏视觉锚点。它用深色横向大面板承载最高优先级摘要和相关命令,主信息必须左对齐并用大号数字或短文本突出,右侧操作组保持紧凑。主题色替换后仍应保持深色高对比区,而不是把整个舞台改成浅色卡片。
281
+
282
+ `chart_with_side_insights` 建立主内容的分析质感。左侧大区域用于趋势、分布、进度或等价主内容;右侧窄列用于摘要、状态解释或分组洞察。若 PRD 不需要图表,可用同等高度和细节密度的主内容面板替代,但仍保留左大右小的稳定分栏。
283
+
284
+ `equal_metric_grid` 控制卡片密集区的秩序。并列摘要卡必须同高,标题、图标、主值和辅助说明的相对位置固定。主题色只影响图标、趋势和局部状态,不能把每张卡变成不同颜色的大色块。
285
+
286
+ `split_detail_surface` 用于承载细节信息。宽主面板适合表格、事件流、对象列表或记录流;窄辅助面板适合补充对象、摘要、图示或快捷查看。缺失时页面会缺少从宏观到明细的落点。
287
+
288
+ ## 5. 视觉品质基线
289
+
290
+ 轻量顶部命令栏在存在全局搜索、筛选、时间范围、导入导出或页面级命令时必须落地。控件高度统一,边框极浅,图标前缀和键盘提示可作为精致细节;不要让顶部区域比主内容更重。
291
+
292
+ 深色摘要舞台在存在核心状态、主摘要或最高优先级操作时必须落地。舞台可以承载一个主摘要,也可以承载少量并列摘要,但必须保留横向稳定构图和低对比装饰纹理。
293
+
294
+ 轻网格主内容面板在存在趋势、分布、对比、进度或时间序列时必须落地。图表容器需要固定高度,轴线和网格线只做轻辅助,主序列与辅序列形成明确对比。
295
+
296
+ 侧向洞察摘要栈在主内容需要解释或拆解时落地。每个摘要块由图标、标题、主值和状态组成,分隔线控制节奏;如果 PRD 没有摘要,可替换为同等密度的短列表或说明块。
297
+
298
+ 等高指标卡组在三到六个并列摘要项出现时落地。所有卡片同高同宽,避免因内容长短造成错位;长标题截断或换行后仍不能推高单张卡片。
299
+
300
+ 精致明细承载面在存在表格、列表、事件流、对象清单或近期记录时落地。表头、行高、状态标签、图标容器和工具栏要一起设计,不能只套默认表格。
301
+
302
+ ## 6. 布局规则
303
+
304
+ 推荐槽位顺序为 `global_toolbar`、`primary_summary`、`primary_content_panel`、`metric_grid`、`detail_surface`。这些槽位不是业务结构要求,PRD 没有的模块不要强行补齐。
305
+
306
+ 页面画布使用浅背景或白色背景,主体宽度尽量铺满容器但保留 24-32px 外边距。模块之间使用父级 `gap` 控制节奏,避免在子组件上堆零散 margin。
307
+
308
+ 主 grid 必须使用 `align-items: stretch`。同一行面板等高,卡片和面板设置 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。长内容在内部滚动、截断或折叠,不允许撑破父级。
309
+
310
+ 主内容面板建议桌面端使用 2.2:1 到 2.6:1 的左右分栏;指标卡使用三列或四列等高 grid;底部明细区使用约 2:1 的宽窄分栏。移动端按优先级纵向堆叠,保留摘要舞台在前。
311
+
312
+ 固定格式区域必须定义稳定尺寸:顶部命令栏约 48px,高优先级摘要舞台约 170px,主内容面板约 430px,指标卡约 150px,表格行约 72px。
313
+
314
+ ## 7. PRD 槽位映射
315
+
316
+ | PRD 内容类型 | 推荐槽位 | 视觉处理 |
317
+ | --- | --- | --- |
318
+ | 页面级搜索、筛选、日期、导出、创建等命令 | `global_toolbar` | 左侧输入或主筛选,右侧组合操作,控件同高浅边框 |
319
+ | 最高优先级状态或主摘要 | `primary_summary` | 深色横向舞台,大号主信息,相关命令靠右成组 |
320
+ | 高频快捷入口 | `quick_actions` | 由 PRD 决定是否出现;可嵌入摘要舞台,也可独立成组 |
321
+ | 趋势、对比、分布、进度 | `primary_content_panel` | 左侧大图表或等价主内容,右侧摘要栈可选 |
322
+ | 三到六个并列摘要项 | `metric_grid` | 等高软边框卡片,图标标题、主值、辅助说明层级固定 |
323
+ | 表格、记录流、对象清单、事件明细 | `detail_surface` | 宽主面板承载明细,工具栏在标题右侧,行高稳定 |
324
+ | 补充对象、预览、概览图示、附属信息 | `supporting_panel` | 窄辅助面板,与明细面板同高,内部可滚动或截断 |
325
+
326
+ 没有量化指标时,不强造数字;没有图表数据时,用同等品质的主内容面板替代;没有明细数据时,用空状态或摘要说明替代,仍保持面板尺寸稳定。
327
+
328
+ ## 8. 组件规则
329
+
330
+ 卡片和面板使用白色表面、1px 浅边框、20px 左右圆角和极轻阴影。卡片内部留白以 24-28px 为主,内容密集但不贴边。
331
+
332
+ 摘要和指标组件以大号主值或短句为视觉中心,标题为 18-20px 中等字重,辅助说明为 14-16px 次级色。趋势或状态符号必须同时使用颜色、箭头/图标或文本,不只依赖颜色。
333
+
334
+ 图表使用轻网格、圆角柱形、低噪坐标标签和明确主辅色。图例、tooltip、悬停态和空数据状态都要设计;图表容器不能无固定高度。
335
+
336
+ 表格和列表使用浅灰表头、稳定行高、细分隔线和图标化行首扫描点。状态标签使用低饱和背景,文字颜色与背景对比达标。
337
+
338
+ 输入、按钮和筛选控件高度保持 44-48px。按钮应优先使用图标加短文本;纯图标按钮必须有可访问名称和 tooltip。主按钮使用强调色实底,次级按钮使用白底或半透明底。
339
+
340
+ 快捷入口是否渲染由 PRD 决定。出现时应是独立入口组或与核心摘要强相关的操作组,不要塞进表格工具栏或侧栏尾部来凑数量。
341
+
342
+ 所有组件都要覆盖 hover、focus、loading、empty、error、disabled、selected 状态。focus ring 使用主题色派生 token,但不改变组件尺寸。
343
+
344
+ ## 9. 响应式与可访问性
345
+
346
+ 桌面端优先使用 12 列或 CSS grid 布局。宽屏保留顶部命令栏、深色摘要舞台、主内容分栏和底部宽窄分栏;中屏将指标卡降为两列;移动端所有主模块单列堆叠。
347
+
348
+ 移动端顶部命令栏允许横向滚动或折叠为图标命令组,触控目标不小于 44px。深色摘要舞台的操作组可换行,但不能遮挡主摘要。
349
+
350
+ 长表格在小屏使用横向滚动或转换为列表卡片。图表应保留最小高度和必要标签,避免坐标文字重叠。
351
+
352
+ 可访问性要求包括:纯图标按钮提供 `aria-label`,焦点态清晰可见,状态不只靠颜色表达,文本与背景对比满足 WCAG AA,动画尊重 `prefers-reduced-motion`。
353
+
354
+ ## 10. 禁止项
355
+
356
+ - 禁止复制具体业务字段、示例数值、人名、机构名、分类名、品牌表达或页面专属文案。
357
+ - 禁止让 DESIGN.md 覆盖 PRD 的内容、功能和信息优先级决策。
358
+ - 禁止把输入主题色铺满页面背景、普通卡片底色、指标卡底色或大面积面板。
359
+ - 禁止把默认强调色误当成视觉 DNA。
360
+ - 禁止使用默认后台质感:粗糙边框、无节奏留白、随意阴影、原生表格、缺少图标化扫描点。
361
+ - 禁止瀑布流、自由高度卡片、无固定高度图表容器、长内容撑破父级和零散 margin 拼接。
362
+ - 禁止用过大的英雄标题、营销式说明卡或装饰性大图替代真实工作台首屏。
363
+
364
+ ## 11. Agent 使用提示
365
+
366
+ 先阅读 PRD,确认真实内容、模块优先级和交互目标;再读取主题色输入,替换强调色 token;最后套用本视觉 DNA。
367
+
368
+ 不要硬套槽位,不要凭空创造内容。PRD 没有主摘要、图表、快捷入口、指标卡或明细数据时,应删除对应模块或用 PRD 中同等层级的内容替代。
369
+
370
+ 主题色只改变小面积强调色、图表序列、状态辅助色和 focus ring,不改变浅色画布、白色面板、深色摘要舞台、软边框、等高栅格、分栏结构和组件密度。
371
+
372
+ 实现时优先保证稳定尺寸、精细边框、图标化行首、轻网格图表、统一控件高度、完整交互状态和响应式折叠。交付前必须按自检清单逐项检查。
373
+
374
+ ## 12. 交付自检清单
375
+
376
+ - 内容、字段、文案、数据和模块是否全部来自 PRD。
377
+ - 是否保留顶部轻量命令栏、深色摘要舞台、主内容分栏、等高卡片和明细承载面的核心 DNA。
378
+ - 主题色是否只改写强调色、图表序列、状态辅助色和 focus ring。
379
+ - 背景、表面、中性文字、浅边框、圆角、网格和面板尺寸是否保持稳定。
380
+ - 品质锚点是否按 PRD 条件落地,缺失模块是否使用同等品质替代。
381
+ - 主 grid 是否 `align-items: stretch`,同一行面板是否等高。
382
+ - 卡片、图表、表格和列表是否有稳定高度、内部滚动、截断或折叠策略。
383
+ - hover、focus、loading、empty、error、disabled、selected 状态是否完整。
384
+ - 移动端是否单列可读,横向滚动是否只用于必要表格或命令组。
385
+ - 纯图标按钮、状态颜色、焦点态、文本对比和 reduced motion 是否符合可访问性要求。