openyida 2026.9.21 → 2026.9.22-beta.2

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 +148 -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,117 @@
1
+ # style-design 风格注册表
2
+
3
+ 本目录为完整应用的 `prd/<项目名>/design.md` 提供内置设计风格注册表。生成 `design.md` 时必须先判断内容兼容性,再根据视觉策略选择唯一风格,并把对应 `style-designs/*.md` 记录为 `baseDesignSource`,最后结合主题色和当前 PRD 生成最终自包含的视觉设计契约。
4
+
5
+ `_design-md-template.md` 仍是结构参考文件;它不参与视觉风格选择。实现阶段只读取当前项目的 `prd.md` 和 `design.md`,不回读本目录。
6
+
7
+ 默认审美方向是“圆润、高密且有呼吸感”:卡片 padding 默认 22-28px 且必须大于 20px,卡片与卡片的 gap 默认 12-18px 且必须小于 20px,卡片圆角范围 0-32px,控件使用 10-14px 圆角,状态摘要、动作条、列表行和空态保持紧凑;页面主区、右栏、工具条和列表之间要有稳定分组节奏。呼吸感不是大留白;不得用额外 margin、超高空态或超宽空状态框撑出页面面积。
8
+
9
+ ## 基础文件
10
+
11
+ | 文件 | 类型 | 用途 | 使用规则 |
12
+ | --- | --- | --- | --- |
13
+ | `_design-md-template.md` | structure-template | `design.md` 完整结构和字段完整度参考 | 必读;最终产物章节和字段完整度必须对齐它 |
14
+
15
+ ## 可选设计风格
16
+
17
+ | 风格文件 | 视觉策略 | 可承载内容 | 强选择触发 | 近邻边界 |
18
+ | --- | --- | --- | --- | --- |
19
+ | `soft-analytic-workbench.md` | `soft_neutral` 均衡办公 | 指标、轻图表、右侧辅助列表、明细表、普通入口 | 用户明确需要低噪声、均衡、朴素办公感;所有模块视觉优先级接近 | 通用兜底,有泛化惩罚;若需要重点舞台、趋势洞察、行动队列、常驻右栏或规整边框,应输给对应风格 |
20
+ | `soft-bordered-analytic-workbench.md` | `bordered_enterprise` 规整控制台 | 命令栏、深色摘要区、图表洞察、分区明细 | 页面需要边界清晰、系统化、控制台感,搜索筛选和全局命令是稳定入口 | 若只是均衡办公输给 `soft-analytic`;若深色舞台是主记忆点输给 `dark-stage` |
21
+ | `soft-modular-analytic-workbench.md` | `bordered_enterprise` 模块化复杂工作台 | 多模块、多指标、趋势、洞察卡、明细表 | 页面模块很多,需要规整网格和混合尺度承载,不希望单一大舞台主导 | 若模块少且均衡输给 `soft-analytic`;若趋势图是主视觉输给 `blue-insight` |
22
+ | `soft-progress-analytics-workbench.md` | `progress_narrative` 进度分析 | 优先级指标、周期节点、趋势、明细表 | 阶段、周期、进度是核心体验,但整体仍偏分析工作台 | 若没有阶段推进语义输给非进度风格;若服务资源和媒体上下文更强输给 `aqua-service` |
23
+ | `soft-timeline-analytics-workbench.md` | `progress_narrative` 时间轴工作台 | 指标栈、时间轴、趋势、明细表 | 时间轴本身是页面骨架,用户需要按阶段/里程碑阅读 | 若时间轴只是辅助提示输给 `soft-progress` 或非进度风格 |
24
+ | `teal-rail-analytics-workbench.md` | `teal_fresh_rail` 常驻洞察右栏 | 左侧主工作区、右侧洞察栏、标签筛选、明细表 | 右侧洞察栏是持续结构,用于提醒、排名、状态、上下文,而非普通补充列表 | 若右栏只是辅助列表输给 `soft-analytic`;若行动队列更强输给 `blue-productivity` |
25
+ | `dark-stage-analytic-dashboard.md` | `dark_accent_stage` 局部深色重点舞台 | 指标、图表、表格、待办、右侧上下文 | 浅色页面中需要一个强记忆点,突出核心判断、风险、目标完成度或经营结果 | 不要求用户明确说深色;若只是全模块均衡扫描输给 `soft-analytic`,若命令处理更强输给 `contrast-command` |
26
+ | `contrast-command-analytics-workbench.md` | `action_command` 高对比指挥 | 大标题、表现图、事件流、深色命令面板、媒体化明细 | 页面需要指挥感、推荐处理、助手面板、日程协同或高能量主操作 | 若只是待办列表输给 `blue-productivity`;若只是核心指标舞台输给 `dark-stage` |
27
+ | `blue-productivity-insight-workbench.md` | `action_command` 生产力行动队列 | 指标、柱状图、右侧行动栏、记录表 | 指标之后立刻驱动今日处理、待办、跟进、确认、分派等动作 | 若主图表洞察更强输给 `blue-insight`;若右栏是洞察而非行动输给 `teal-rail` |
28
+ | `aqua-service-progress-dashboard.md` | `progress_narrative` 服务进度 | 状态头、时间轴、进度评分、渐变状态卡、媒体/上下文卡 | 服务、资源、场地、设备、交付进度或上下文媒体共同构成体验 | 若是密集后台或纯表格处理输给工作台风格;若只是阶段管理输给 timeline/progress 风格 |
29
+ | `blue-insight-operations-dashboard.md` | `blue_insight` 趋势洞察 | 火花线指标、主趋势图、洞察卡、活动表、进度列表 | 主要记忆点是趋势、分析、经营洞察,图表不只是轻量状态分布 | 若数据不足以支撑趋势图输给 `soft-analytic`;若行动队列更强输给 `blue-productivity` |
30
+ | `green-timeline-progress-workbench.md` | `progress_narrative` 清爽阶段推进 | 主摘要指标栈、浮动日期时间轴、趋势图、全宽表格 | 阶段推进明确,同时希望气质更清爽、轻运营、低压 | 若没有时间/阶段语义输给非进度风格;若需要更中性时间轴输给 `soft-timeline` |
31
+ | `filterable-card-catalog.md` | `catalog_browse` 高密筛选目录 | 左筛选栏、结果工具条、条件胶囊、等高卡片矩阵 | 主体验是搜索、筛选、比较、选择对象;卡片比表格更适合承载结果 | 若只是工作台里的辅助筛选输给 analytic 风格;若需要大图陈列输给 `soft-curated-filter-gallery` |
32
+ | `soft-curated-filter-gallery.md` | `catalog_browse` 视觉精选画廊 | 大标题、分类切换、柔和筛选、大图卡片、收藏/徽标 | 主体验是视觉浏览、候选挑选、精选展示,图片或视觉对象重要 | 若需要高密管理和批量操作输给 `command-filter-card-console` 或 `filterable-card-catalog` |
33
+ | `command-filter-card-console.md` | `catalog_browse` 管理型卡片控制台 | 边框筛选、状态标签、紧凑管理卡片、分页 | 主体验是对象管理、状态筛选、批量查看,卡片是管理单元而非展示物 | 若偏视觉陈列输给 `soft-curated-filter-gallery`;若偏普通结果浏览输给 `filterable-card-catalog` |
34
+
35
+ ## 消费硬规则
36
+
37
+ 1. 先读取 `_design-md-template.md`,按当前业务生成新的 `prd/<项目名>/design.md`。
38
+ 2. 每次优先选择唯一设计风格,并把对应 `style-designs/*.md` 写入 `baseDesignSource`;若所有内置风格都不适合,才写 `generated-from-business-context`,并记录排除原因。
39
+ 3. 配色由模型根据行业、品牌、应用主题、业务情绪和用户偏好生成;主题色只换 token 和强调色,不改变风格 DNA、布局机制和组件机制。
40
+ 4. 圆角、间距、密度和呼吸感必须由当前业务决定,但卡片数值要明确:卡片 padding >20px、卡片间 gap <20px、卡片圆角 0-32px、控件 10-14px、状态摘要 64-88px、列表行 44-56px、空态 88-120px 内。
41
+ 5. `design_id` 使用当前项目生成的 slug,例如 `<业务域>-<体验关键词>-generated`。
42
+ 6. 每个自定义页面最终只读取当前项目 `prd.md` 和 `design.md`;实现阶段不回读本目录。
43
+
44
+ ## 选择原则
45
+
46
+ 1. 先从业务需求判断内容兼容性,再推演视觉策略、视觉强调、密度气质和交互重心;不要按行业、主题色或公共内容组件直接选风格。
47
+ 2. 主题色只作为所选风格的 `theme_adaptation` 输入,用于替换强调色 token;主题色不是选择风格的主要依据。
48
+ 3. 指标卡、图表、表格、待办、筛选器、右侧栏、状态标签、快捷入口、时间线等公共组件只用于判断 `contentCompatibility`,不得作为风格强匹配理由。
49
+ 4. 每次必须选择唯一设计风格,并把对应 `style-designs/*.md` 写入 `baseDesignSource`。若所有内置风格都不适合,仍读取 `_design-md-template.md` 输出 `baseDesignSource=generated-from-business-context`,并在 `styleDesignSelection.rejectedStyleDesigns` 说明原因。
50
+ 5. 不得为了套风格凭空创造 PRD 未要求的图表、右侧栏、时间轴、深色舞台或快捷入口;风格只能决定已有业务内容的视觉承载方式。
51
+ 6. `dark-stage-analytic-dashboard` 是局部深色重点舞台,不是全页面深色沉浸。不得仅以“用户未要求深色”为理由拒绝它;只能在页面不需要强视觉焦点时拒绝。
52
+ 7. `soft-analytic-workbench` 是 `soft_neutral` 均衡办公风格,不是所有工作台的默认答案。选择它时必须在内部选择草稿中确认其他更强视觉策略证据不足。
53
+ 8. 最终 `design.md` 必须自包含:包含风格来源、选择依据、主题换肤结果、视觉 DNA、token、组件、状态、响应式、可访问性和实现契约。
54
+
55
+ ## 选择评分建议
56
+
57
+ | 维度 | 权重 | 判断方法 |
58
+ | --- | --- | --- |
59
+ | 视觉策略匹配 | 45% | 页面需要 `soft_neutral`、`dark_accent_stage`、`blue_insight`、`bordered_enterprise`、`teal_fresh_rail`、`action_command`、`progress_narrative` 还是 `catalog_browse` |
60
+ | 视觉强调与密度 | 15% | 首屏是均衡扫描、核心舞台、趋势洞察、行动队列、常驻右栏、阶段推进还是目录筛选;密度是高密、规整、舒展还是展示型 |
61
+ | 布局兼容性 | 15% | 当前页面是否能稳定承载该风格的舞台、右栏、命令栏、进度骨架、目录网格或趋势面板 |
62
+ | 内容兼容性 | 15% | 风格是否支持当前已有指标、图表、表格、待办、筛选、右栏、时间线、卡片和媒体内容 |
63
+ | 多样性或用户偏好 | 10% | 用户语气、品牌气质、应用主题和候选分差接近时,避免所有工作台都落到 `soft-analytic-workbench` |
64
+ | 风险扣分 | -5% | 是否会强行制造不存在的模块、过度依赖图表、右侧栏、时间轴、深色舞台或图片素材 |
65
+
66
+ 内容兼容性和布局兼容性合计不得超过 30%。如果多个风格都能承载相同内容,必须让视觉策略、视觉强调和近邻边界决定最终选择。
67
+
68
+ ## 输出记录
69
+
70
+ 生成 `design.md` 前必须先形成内部选择草稿,用来防止公共组件误导风格选择。内部选择草稿不写入最终 `design.md`,除非用户要求调试或评估选择过程。
71
+
72
+ ```yaml
73
+ selectionScratchpad:
74
+ topCandidates:
75
+ - name: <style-name>
76
+ evidence: <短句或枚举,不写长解释>
77
+ rejectedCloseNeighbors:
78
+ - name: <style-name>
79
+ evidence: <短句或枚举>
80
+ softAnalyticCheck:
81
+ strongerVisualStrategyExists: <true / false>
82
+ result: <select_soft_analytic / choose_stronger_strategy>
83
+ ```
84
+
85
+ 最终 `design.md` 只记录可交接给实现阶段的精简选择摘要:
86
+
87
+ ```yaml
88
+ baseDesignSource: references/style-designs/<selected-style>.md
89
+ styleDesignSelection:
90
+ inferredUserTask: <判断 / 处理 / 追踪 / 分析 / 展示 / 汇报>
91
+ contentCompatibility:
92
+ supports: [<metrics / charts / tables / todos / filters / side_panel / timeline / catalog_cards / media_cards>]
93
+ commonComponentsAreWeakSignals: true
94
+ layoutCompatibility: <balanced_workbench / stage_workbench / rail_workspace / command_console / insight_dashboard / progress_narrative / catalog_grid>
95
+ visualStyleIntent: <soft_neutral / dark_accent_stage / blue_insight / bordered_enterprise / teal_fresh_rail / action_command / progress_narrative / catalog_browse>
96
+ visualEmphasis: <均衡扫描 / 核心舞台 / 趋势洞察 / 行动队列 / 常驻右栏 / 阶段推进 / 目录筛选>
97
+ requiredVisualDNA:
98
+ - <dna-id>
99
+ selectedStyleDesign:
100
+ name: <style-name>
101
+ source: references/style-designs/<style>.md
102
+ implementationConstraints:
103
+ - <必须保留的视觉约束,例如局部深色舞台 / 常驻右栏 / 行动队列 / 大趋势面板>
104
+ selectionNotes: <可选,一句话以内;默认省略>
105
+ selectionConfidence: <high / medium / low>
106
+ ```
107
+
108
+ ## 新增风格规则
109
+
110
+ 新增 `style-designs/*.md` 时,必须包含:
111
+
112
+ - front matter 中的 `template_type: visual_dna_preset`。
113
+ - `selection.best_for`、`selection.user_intent`、`selection.visual_tone`、`selection.avoid_for`。
114
+ - registry 中必须为新风格补充 `视觉策略`、`可承载内容`、`强选择触发` 和 `近邻边界`,避免只写宽泛适用场景。
115
+ - 2-5 个可稳定复用的 `visual_dna`,每个 DNA 要有 `id`、`hooks`、`invariant`、`variable`。
116
+ - `theme_adaptation`,明确 `replace_tokens`、`derive_tokens`、`preserve_tokens` 和换肤规则。
117
+ - `quality_anchors`、`layout_stability`、`components` 和 `modules`,让最终 `design.md` 能抽取为可实现规则。
@@ -0,0 +1,348 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-analytic-workbench
5
+ design_id: soft-analytic-workbench
6
+ design_status: draft
7
+ description: 可被流程选择、可换主题色、内容中立的轻量分析工作台视觉 DNA 风格。
8
+ scenes: [工作台, 仪表盘, 管理后台首页, 数据概览, 列表分析页]
9
+ density: medium-high
10
+ layout: asymmetric_analytic_grid
11
+ tone: [轻盈, 克制, 清晰, 数据化, 专业]
12
+ tags: [浅色工作台, 圆角面板, 指标拼图, 图表面板, 明细列表]
13
+ avoid: [营销落地页, 品牌叙事页, 沉浸式大屏, 内容长文页, 低密度展示页]
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: soft_panel_canvas
27
+ name: 浅灰画布与白色面板
28
+ confidence: observed
29
+ hooks: [page_shell, panel_surface, surface_muted, subtle_border, soft_shadow]
30
+ invariant: [low_contrast_page_background, white_primary_panels, large_radius_panels, quiet_panel_separation]
31
+ variable: [page_content, module_count, brand_hue]
32
+ - id: metric_mosaic_header
33
+ name: 指标拼图式摘要区
34
+ confidence: observed
35
+ hooks: [metric_grid, highlighted_metric_card, icon_badge, trend_pill, equal_height_cards]
36
+ invariant: [compact_metric_tiles, one_accent_tile_allowed, strong_number_hierarchy, tiny_status_pills]
37
+ variable: [metric_labels, metric_values, status_direction, accent_hue]
38
+ - id: light_analytic_charts
39
+ name: 轻网格数据图表
40
+ confidence: observed
41
+ hooks: [chart_panel, dashed_grid, rounded_bar_segments, smooth_line_series, chart_tooltip, legend_dots]
42
+ invariant: [fixed_chart_height, pale_grid_lines, small_area_color_usage, visible_tooltip_craft]
43
+ variable: [chart_type, series_count, category_labels, theme_color]
44
+ - id: side_detail_stream
45
+ name: 右侧纵向明细流
46
+ confidence: observed
47
+ hooks: [side_panel, list_row, avatar_or_icon_token, outline_action_button, row_separator]
48
+ invariant: [narrow_supporting_column, stable_row_height, left_icon_right_action, quiet_dividers]
49
+ variable: [row_content_type, action_label, icon_source, list_density]
50
+ - id: rounded_table_detail
51
+ name: 圆角明细表格系统
52
+ confidence: observed
53
+ hooks: [table_panel, muted_table_header, status_chip, row_action_menu, fixed_row_height]
54
+ invariant: [soft_header_background, aligned_columns, compact_status_chips, icon_only_row_actions]
55
+ variable: [column_schema, record_content, status_categories]
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-soft, tokens.colors.brand-strong, tokens.colors.focus-ring]
61
+ derive_tokens: [tokens.colors.chart-1, tokens.colors.chart-2, tokens.colors.info, tokens.colors.success, tokens.colors.warning, tokens.colors.danger]
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
+ - do_not_tint_page_background
66
+ - do_not_turn_neutral_cards_into_colored_cards
67
+ - keep_accent_usage_small_area
68
+ - preserve_white_panel_system
69
+ - preserve_light_grid_and_rounded_geometry
70
+ tokens:
71
+ colors:
72
+ bg-page: "#F4F4F3"
73
+ surface: "#FFFFFF"
74
+ surface-muted: "#F7F7F6"
75
+ surface-soft: "#F1F5FF"
76
+ text-primary: "#1F2328"
77
+ text-secondary: "#777B82"
78
+ text-tertiary: "#A2A7AF"
79
+ border-subtle: "#ECEEF2"
80
+ border-muted: "#F3F4F6"
81
+ brand: "#367EF0"
82
+ brand-strong: "#174B99"
83
+ brand-soft: "#EAF2FF"
84
+ chart-1: "#367EF0"
85
+ chart-2: "#40C7DD"
86
+ success: "#22B15B"
87
+ success-soft: "#EAF8F0"
88
+ danger: "#D94A4A"
89
+ danger-soft: "#FDEEEF"
90
+ warning: "#E7A12F"
91
+ info: "#367EF0"
92
+ focus-ring: "#8DBBFF"
93
+ shadow-color: "rgba(31, 35, 40, 0.05)"
94
+ typography:
95
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
96
+ panel-title: { fontSize: 22, fontWeight: 650, lineHeight: 1.25, letterSpacing: 0 }
97
+ metric-label: { fontSize: 17, fontWeight: 500, lineHeight: 1.35, letterSpacing: 0 }
98
+ metric-value: { fontSize: 40, fontWeight: 520, lineHeight: 1.05, letterSpacing: 0 }
99
+ body: { fontSize: 15, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
100
+ caption: { fontSize: 13, fontWeight: 400, lineHeight: 1.35, letterSpacing: 0 }
101
+ spacing:
102
+ page-x-desktop: 24
103
+ page-y-desktop: 24
104
+ grid-gap: 22
105
+ panel-x: 28
106
+ panel-y: 26
107
+ card-gap: 14
108
+ row-gap: 0
109
+ rounded:
110
+ panel: 28
111
+ card: 22
112
+ control: 18
113
+ pill: 999
114
+ icon: 999
115
+ shadow:
116
+ panel: "0 18px 44px rgba(31, 35, 40, 0.04)"
117
+ floating: "0 14px 30px rgba(54, 126, 240, 0.24)"
118
+ layout_stability:
119
+ grid_align_items: stretch
120
+ panel_display: flex-column
121
+ panel_height: "100%"
122
+ panel_min_width: 0
123
+ panel_min_height: 0
124
+ overflow_policy: internal_scroll_or_truncate
125
+ spacing_policy: parent_gap_only
126
+ equal_height_rule: same_row_panels_align
127
+ fixed_height_tokens:
128
+ metric_group: 360px
129
+ metric_card: 165px
130
+ top_chart_panel: 360px
131
+ primary_chart_panel: 395px
132
+ side_panel: 600px
133
+ table_row: 62px
134
+ list_row: 76px
135
+ quality_anchors:
136
+ - id: inset_metric_mosaic
137
+ name: 内嵌式指标拼图区
138
+ required_when: PRD 包含 3 个以上摘要、状态或核心指标
139
+ rule: 使用 2x2 或自适应等高卡片拼图,卡片之间只用父级 gap 分隔;允许一个主强调卡,其余保持浅灰白底。
140
+ - id: refined_chart_texture
141
+ name: 图表微纹理
142
+ required_when: PRD 包含趋势、对比、分布或进度数据
143
+ rule: 图表必须有浅网格、圆角柱或平滑线、半透明填充、图例点和悬浮提示,不使用裸坐标轴默认样式。
144
+ - id: right_hand_detail_stream
145
+ name: 右侧明细流
146
+ required_when: PRD 包含提醒、任务、联系人、消息、审批、资源或事件列表
147
+ rule: 右侧面板使用固定宽度区间、稳定行高、圆形图标位和描边操作按钮,列表项之间用极浅分隔线。
148
+ - id: soft_table_craft
149
+ name: 柔和明细表格
150
+ required_when: PRD 包含结构化记录或可操作明细
151
+ rule: 表头使用浅灰圆角底,状态用低饱和胶囊标签,行操作使用图标按钮;列宽稳定并允许长文本截断。
152
+ - id: floating_chart_tooltip
153
+ name: 悬浮数据提示
154
+ required_when: PRD 包含可交互图表或时间序列高亮
155
+ rule: 使用主题色小面积浮层、圆角、阴影和指向锚点;浮层信息简短,不遮挡主要走势。
156
+ quality_floor:
157
+ target: polished_sample_level
158
+ avoid_default_admin_feel: true
159
+ requires_visible_micro_detail: true
160
+ minimum_craft_signals: [precise_alignment, equal_height_panels, subtle_panel_shadow, pale_chart_grid, rounded_chart_segments, refined_status_pills, stable_row_heights, icon_button_tooltips]
161
+ components:
162
+ card:
163
+ surface: tokens.colors.surface
164
+ roundedRef: tokens.rounded.panel
165
+ shadowRef: tokens.shadow.panel
166
+ border: "1px solid tokens.colors.border-subtle"
167
+ metric_card:
168
+ height: tokens.layout_stability.fixed_height_tokens.metric_card
169
+ background: tokens.colors.surface-muted
170
+ highlighted_background: tokens.colors.brand
171
+ roundedRef: tokens.rounded.card
172
+ icon_badge: circular_soft_badge
173
+ chart:
174
+ grid: pale_dashed_horizontal
175
+ line: smooth_2px_with_soft_area
176
+ bar: rounded_segmented_columns
177
+ tooltip: compact_floating_badge
178
+ table:
179
+ header: muted_rounded_header
180
+ row_height: tokens.layout_stability.fixed_height_tokens.table_row
181
+ row_action: icon_only_menu
182
+ list:
183
+ row_height: tokens.layout_stability.fixed_height_tokens.list_row
184
+ leading_visual: circular_icon_or_avatar_slot
185
+ trailing_action: outline_pill_button
186
+ button:
187
+ primary: filled_brand_small_area
188
+ secondary: outline_brand_pill
189
+ icon: circular_or_ghost_with_tooltip
190
+ modules:
191
+ page_identity:
192
+ confidence: inferred
193
+ render_policy: prd_only
194
+ placement: above_grid_or_compact_header
195
+ primary_metrics:
196
+ confidence: observed
197
+ render_policy: prd_only
198
+ placement: top_left_or_first_grid_area
199
+ item_count: 2-6
200
+ primary_content_panel:
201
+ confidence: observed
202
+ render_policy: prd_only
203
+ placement: wide_main_column
204
+ supporting_panel:
205
+ confidence: observed
206
+ render_policy: prd_only
207
+ placement: right_or_adjacent_column
208
+ detail_table:
209
+ confidence: observed
210
+ render_policy: prd_only
211
+ placement: below_primary_panel_or_full_width
212
+ quick_actions:
213
+ confidence: inferred
214
+ render_policy: prd_only
215
+ placement: independent_section_after_summary
216
+ item_count: 4-8
217
+ ---
218
+
219
+ # Soft Analytic Workbench DESIGN.md
220
+
221
+ > front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和业务取舍以正文为准。
222
+
223
+ ## 1. 快速理解
224
+
225
+ 这是一个浅色、克制、高可读的数据工作台视觉 DNA,核心是浅灰画布、白色大圆角面板、指标拼图区、轻网格图表和纵向明细流。它适合需要同时呈现摘要、趋势、列表和结构化明细的页面。
226
+
227
+ PRD 决定展示什么内容、哪些模块存在、数据优先级如何排序;本文件只定义 UI 风格、布局稳定性、组件形态和视觉品质。主题色可以替换默认强调色,但不能改变白底面板、圆角系统、轻网格图表和小面积强调机制。
228
+
229
+ 不适合用在强品牌叙事、营销转化、沉浸式大屏或信息极少的页面。编码结果必须呈现足够的微观细节,不能退化成默认后台组件的堆叠。
230
+
231
+ ## 2. 使用边界
232
+
233
+ PRD 决定内容、功能、信息架构、业务优先级、字段结构、模块数量和交互目标。DESIGN.md 约束视觉 DNA、密度、表面层级、圆角、阴影、状态、响应式和可访问性。
234
+
235
+ 不要为了匹配槽位而凭空增加 PRD 没有要求的指标、图表、列表或快捷入口。不要复用任何具体业务字段、示例数据、人名、机构名、分类名称或页面专属文案;所有文案、数据和操作都必须来自 PRD 或产品信息架构。
236
+
237
+ 当 PRD 没有图表数据时,可以使用同等品质的主内容面板承载摘要、流程、状态分布或核心列表,但仍要保留浅面板、稳定高度、精细分隔和小面积强调。
238
+
239
+ ## 3. 设计风格选择与换色逻辑
240
+
241
+ 上游流程应在页面需要高密度扫描、摘要与明细并存、趋势或对比信息明确时选择该风格。若需求主要是品牌展示、长文阅读、海报式视觉、低密度单任务表单,则不应选择。
242
+
243
+ 默认强调色只是初始 token,不是视觉 DNA。主题色只替换 `brand`、`brand-soft`、`focus-ring`、图表序列和少量状态辅助色;背景、白色面板、中性文字、浅边框、大圆角、轻阴影和稳定网格必须保留。
244
+
245
+ 主题色不能铺满页面背景、不能把所有卡片染成品牌色、不能让大面积面板变成高饱和色块。小面积强调应主要出现在主指标卡、图表线条、圆角柱、图例点、聚焦状态、趋势胶囊和描边按钮。
246
+
247
+ ## 4. 视觉 DNA
248
+
249
+ `soft_panel_canvas` 要求页面从低对比浅灰背景开始,用白色面板和极浅阴影划分区域。可变的是模块内容和数量,不可变的是低噪声画布、大圆角面板和安静边界。缺失时页面会变成普通白底后台,层级不够柔和。
250
+
251
+ `metric_mosaic_header` 要求摘要信息以等高小卡片形成拼图。允许一个卡片使用主题色作为主强调,其余卡片保持浅灰或白底;数值层级要强,趋势和状态用小胶囊表达。缺失时首屏缺少扫描锚点。
252
+
253
+ `light_analytic_charts` 要求图表使用浅网格、圆角分段、平滑曲线、轻填充和悬浮提示。主题色替换后仍要保留低对比网格与小面积颜色承载。缺失时图表容易呈现默认库样式,精致度明显下降。
254
+
255
+ `side_detail_stream` 要求辅助信息以窄列纵向流呈现,行高稳定,左侧保留圆形视觉位,右侧保留轻量操作。可变的是列表内容类型和动作名称,不可变的是窄列、行分隔、圆形视觉位和描边操作按钮。
256
+
257
+ `rounded_table_detail` 要求结构化明细使用柔和表头、稳定列宽、状态胶囊和图标化行操作。缺失时表格会过硬、过满或缺少与整体圆角系统的统一性。
258
+
259
+ ## 5. 视觉品质基线
260
+
261
+ 当 PRD 有 3 个以上摘要或状态时,必须落地内嵌式指标拼图区。它用等高拼图、强数值层级和小型图标胶囊建立首屏扫描路径;如果没有量化数据,可以用状态摘要或关键对象卡替代。
262
+
263
+ 当 PRD 有趋势、对比或分布时,必须落地图表微纹理。浅网格、圆角柱、平滑线、半透明填充、图例点和精致 tooltip 是区别默认图表的关键;如果没有图表,应以同等高度的主内容面板承载高优先级内容。
264
+
265
+ 当 PRD 有待办、提醒、事件、消息、资源或人员型条目时,应使用右侧明细流。它通过固定宽度、稳定行高、圆形视觉位和描边按钮形成快速处理区;没有此类内容时,不要强行生成右侧列表。
266
+
267
+ 当 PRD 有记录型数据时,应使用柔和明细表格。表头要轻,行高要稳,状态标签要低饱和,行操作应图标化并有 tooltip;没有记录数据时,可替换为卡片列表或主内容面板。
268
+
269
+ 交互式图表应提供悬浮数据提示。浮层使用主题色小面积承载、圆角、阴影和指向锚点,信息简短且不遮挡主体。
270
+
271
+ ## 6. 布局规则
272
+
273
+ 推荐桌面布局为非对称分析网格:左侧主列承载指标组、主图表和明细表格,右侧或相邻列承载辅助列表或短摘要面板。槽位只是视觉映射,不是业务结构要求;PRD 没有的模块不要补。
274
+
275
+ 主 grid 使用 `display: grid` 和 `align-items: stretch`,桌面可采用 `minmax(0, 2fr) minmax(320px, 0.95fr)` 或按信息量调整。面板之间只使用父级 `gap`,不要用零散 margin 拼接。
276
+
277
+ 同一行面板必须等高。所有面板设置 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。图表容器必须有固定或响应式稳定高度,列表和表格长内容使用内部滚动、截断或折叠。
278
+
279
+ 指标卡高度保持一致,图标位固定在右上或标题旁,趋势胶囊与补充说明同排排列。大图表面板需要保留宽松内边距和明确标题区,图表绘图区不能贴边。
280
+
281
+ ## 7. PRD 槽位映射
282
+
283
+ | PRD 内容类型 | 视觉槽位 | 渲染规则 |
284
+ | --- | --- | --- |
285
+ | 页面身份、筛选周期、全局动作 | `page_identity` / `global_actions` | 使用紧凑标题区或面板标题右侧控件,不创建大型营销头图。 |
286
+ | 多个摘要、状态、核心对象 | `primary_metrics` | 使用等高指标拼图;没有数字时可用短摘要、状态或对象卡。 |
287
+ | 趋势、对比、分布、进度 | `primary_content_panel` / `trend_panel` | 优先用轻网格图表;没有图表数据时用同等品质主内容面板。 |
288
+ | 辅助提醒、任务、消息、资源 | `supporting_panel` | 使用右侧或相邻纵向明细流;PRD 没有时不渲染。 |
289
+ | 结构化记录、明细、审批、资源表 | `detail_table` | 使用柔和表头、稳定行高、状态胶囊和图标化操作。 |
290
+ | 高频入口或快捷命令 | `quick_actions` | 仅 PRD 明确需要时渲染为独立区块,不塞入表格工具栏或侧栏尾部。 |
291
+
292
+ ## 8. 组件规则
293
+
294
+ 卡片和面板使用白色或浅灰表面、`22-28px` 圆角、极浅边框和低强度阴影。不要在面板内部再放装饰性大卡片;重复项卡片可以使用更轻的 `16-20px` 圆角。
295
+
296
+ 指标组件需要明确标题、数值、趋势/状态和图标位。主强调指标可以使用主题色底,但最多小面积出现;其他指标保持中性表面。趋势胶囊使用状态色浅底,并同时用图标或文本表达方向,不能只靠颜色。
297
+
298
+ 图表使用浅网格、清晰图例、圆角柱、平滑线和轻透明填充。坐标标签使用次级文字色,线条不超过 `2-3px`,柱体和节点需要圆角或柔化处理。
299
+
300
+ 表格使用浅灰圆角表头、稳定行高、低饱和状态胶囊、轻分隔线和图标按钮。长文本截断并提供完整信息入口,表格操作按钮不得撑高行。
301
+
302
+ 列表行使用固定高度、圆形图标或头像槽、主副文本两级层级、右侧轻量动作。按钮优先使用图标、描边胶囊或小面积品牌色;纯图标按钮必须有 tooltip 和可见 focus ring。
303
+
304
+ 快捷入口只在 PRD 需要时出现,作为独立区块。入口项可使用圆形图标、短标签和浅灰底,数量建议 4-8 个,保持等宽或稳定栅格。
305
+
306
+ 加载态使用骨架屏或淡色占位;空态保持同样的面板结构,不用夸张插画;错误态使用浅色状态提示加明确恢复动作;disabled、selected、hover、focus 状态必须完整。
307
+
308
+ ## 9. 响应式与可访问性
309
+
310
+ 桌面使用双列或多列网格;`<= 1024px` 时辅助列下移;`<= 720px` 时所有面板单列堆叠,指标拼图变为 1-2 列自适应。移动端保持面板宽度满行,列表和表格允许横向滚动或卡片化,不让内容撑破父级。
311
+
312
+ 触控目标不小于 `44px`。focus ring 使用 `tokens.colors.focus-ring`,对比度足够且不依赖颜色本身表达状态。所有图标按钮、图例切换、菜单按钮和行操作都需要可访问名称。
313
+
314
+ 图表信息不能只靠颜色区分,至少用图例、纹理、标签、线型或 tooltip 补充。动效保持轻微,尊重 `prefers-reduced-motion`,避免大幅位移和持续闪烁。
315
+
316
+ ## 10. 禁止项
317
+
318
+ - 禁止复制具体业务内容、字段、示例数据、名称、头像身份、分类或页面专属文案。
319
+ - 禁止让 DESIGN.md 覆盖 PRD 的内容决策。
320
+ - 禁止为了套槽位而凭空创造指标、图表、列表、快捷入口或表格。
321
+ - 禁止把输入主题色铺满背景、指标卡底色或大面积面板。
322
+ - 禁止把当前主题色误当成视觉 DNA。
323
+ - 禁止默认后台质感、硬边框、密集黑线表格和无细节图表。
324
+ - 禁止瀑布流、自由高度卡片、无固定高度图表容器、长内容撑破父级和零散 margin 拼接。
325
+ - 禁止使用负字距或随视口宽度缩放字体。
326
+
327
+ ## 11. Agent 使用提示
328
+
329
+ 先阅读 PRD,确定实际内容、模块和业务优先级;再读取本 preset,应用输入主题色到强调 token;最后按视觉 DNA 生成 UI。不要硬套槽位,不要凭空创造内容,不要复用任何页面专属文案或示例数据。
330
+
331
+ 实现时优先保证浅灰画布、白色大圆角面板、等高网格、指标拼图、轻网格图表、右侧明细流和柔和表格这些品质机制。主题色只替换色相和小面积强调,不改变圆角、面板、留白、图表微纹理和布局稳定规则。
332
+
333
+ 交付前必须检查图表、表格、列表、按钮、tooltip、hover、focus、loading、empty、error、disabled 和 selected 状态,确保视觉结果不是默认后台组件的简单拼装。
334
+
335
+ ## 12. 交付自检清单
336
+
337
+ - [ ] 页面内容、字段、数据、动作和模块是否全部来自 PRD。
338
+ - [ ] 是否保留浅灰画布、白色面板、大圆角、轻边框和低强度阴影。
339
+ - [ ] 指标、图表、列表、表格是否按 PRD 条件落地,而不是强行补齐。
340
+ - [ ] 主题色是否只改写强调色、图表序列、状态辅助色和 focus ring。
341
+ - [ ] 是否避免把主题色铺满背景或大面积卡片。
342
+ - [ ] 主 grid 是否 `align-items: stretch`,同排面板是否等高。
343
+ - [ ] 面板是否设置 `height: 100%`、`min-width: 0`、`min-height: 0` 和内部滚动/截断策略。
344
+ - [ ] 图表是否有浅网格、圆角或平滑处理、图例和悬浮提示。
345
+ - [ ] 表格和列表是否有稳定行高、轻分隔、状态标签和完整操作状态。
346
+ - [ ] 纯图标按钮是否有 tooltip、可访问名称和 focus ring。
347
+ - [ ] 响应式折叠后是否无重叠、无溢出、无文本撑破。
348
+ - [ ] 加载、空、错误、禁用、选中、悬浮和聚焦状态是否完整。