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,404 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-modular-analytic-workbench
5
+ design_id: soft-modular-analytic-workbench-v1
6
+ design_status: draft
7
+ description: 内容中立的浅色模块化分析工作台视觉预设,适合承载摘要、指标、趋势、明细和操作入口。
8
+ scenes: [workbench, dashboard, admin_home, operations_panel, data_overview]
9
+ density: medium-high
10
+ layout: responsive_modular_grid
11
+ tone: [soft, precise, calm, polished, analytical]
12
+ tags: [light_surface, rounded_panels, metric_grid, chart_panel, dense_table]
13
+ avoid: [marketing_landing, editorial_story, immersive_media, form_only_flow, low_density_showcase]
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: airy_page_shell
27
+ name: 浅灰画布与白色圆角面板
28
+ confidence: observed
29
+ hooks: [page_bg, panel_surface, rounded_panel, subtle_border, parent_gap_grid]
30
+ invariant: [页面使用低对比浅灰底, 内容由白色大圆角面板承载, 面板之间用稳定 gap 分隔, 边界依赖轻描边与柔和阴影]
31
+ variable: [页面标题文案, 模块数量, 每个面板承载的内容类型, 主题强调色]
32
+ - id: mixed_scale_summary_grid
33
+ name: 大摘要卡与小指标拼图区
34
+ confidence: observed
35
+ hooks: [summary_card, metric_tile_grid, equal_height_cards, large_numeric_type, compact_delta_pill]
36
+ invariant: [首屏上方以大摘要和 2x2 指标拼图区建立层级, 数字或关键值使用显著字号, 趋势与状态用小胶囊表达]
37
+ variable: [摘要含义, 指标数量, 数值格式, 状态语义, 图标语义]
38
+ - id: contained_insight_panel
39
+ name: 内嵌轻网格洞察面板
40
+ confidence: observed
41
+ hooks: [chart_card, soft_chart_area, legend_dots, dashed_grid_lines, rounded_bars_or_segments]
42
+ invariant: [图表或趋势内容放在独立内嵌浅底区域, 网格线低对比, 图例小而清晰, 数据形状有圆角或纹理细节]
43
+ variable: [图表类型, 维度标签, 数据单位, 对比系列数量, tooltip 内容]
44
+ - id: refined_detail_table
45
+ name: 圆角表头与图标化明细行
46
+ confidence: observed
47
+ hooks: [table_panel, rounded_header, row_icon_badge, checkbox_cell, status_dot, selected_row]
48
+ invariant: [明细区使用大面板包裹, 表头为浅灰圆角块, 行高稳定, 每行保留图标或状态微细节, 选中态以整行浅底反馈]
49
+ variable: [列定义, 行内容, 操作菜单, 状态集合, 排序筛选规则]
50
+ - id: compact_supporting_widgets
51
+ name: 辅助小组件的横向密度
52
+ confidence: observed
53
+ hooks: [progress_strip, compact_cards, icon_button, horizontal_scroller, muted_section]
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-soft, tokens.colors.brand-deep, tokens.colors.focus-ring, tokens.colors.chart-accent]
61
+ derive_tokens: [tokens.colors.brand-weak, tokens.colors.brand-tint, tokens.colors.status-positive-soft, tokens.colors.chart-sequence]
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.shadow.panel]
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
+ - keep_gradient_usage_limited_to_one_priority_tile_or_small_chart_marks
70
+ tokens:
71
+ colors:
72
+ bg-page: "#F4F4F3"
73
+ surface: "#FFFFFF"
74
+ surface-muted: "#F5F5F4"
75
+ surface-raised: "#FAFAF9"
76
+ text-primary: "#181816"
77
+ text-secondary: "#686864"
78
+ text-tertiary: "#8A8A84"
79
+ border-subtle: "#E8E8E5"
80
+ border-muted: "#F0F0EE"
81
+ brand: "#A8FF2F"
82
+ brand-soft: "#DDFDC2"
83
+ brand-weak: "#EEFDDD"
84
+ brand-tint: "#F6FEEB"
85
+ brand-deep: "#075C46"
86
+ focus-ring: "#9BEF2D"
87
+ chart-accent: "#B5FF37"
88
+ chart-dark: "#1F1E1A"
89
+ success: "#38B96D"
90
+ success-soft: "#E8F8EF"
91
+ warning: "#F2C94C"
92
+ warning-soft: "#FFF7D7"
93
+ danger: "#E95F6A"
94
+ danger-soft: "#FDEBED"
95
+ typography:
96
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
97
+ page-title: { fontSize: 44, fontWeight: 650, lineHeight: 1.08, letterSpacing: 0 }
98
+ page-subtitle: { fontSize: 18, fontWeight: 400, lineHeight: 1.45, letterSpacing: 0 }
99
+ section-title: { fontSize: 24, fontWeight: 650, lineHeight: 1.25, letterSpacing: 0 }
100
+ card-title: { fontSize: 18, fontWeight: 560, lineHeight: 1.25, letterSpacing: 0 }
101
+ metric-large: { fontSize: 38, fontWeight: 560, lineHeight: 1.1, letterSpacing: 0 }
102
+ metric-medium: { fontSize: 34, fontWeight: 550, lineHeight: 1.1, letterSpacing: 0 }
103
+ body: { fontSize: 15, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
104
+ caption: { fontSize: 12, fontWeight: 450, lineHeight: 1.35, letterSpacing: 0 }
105
+ spacing:
106
+ page-x-desktop: 28
107
+ page-y-desktop: 26
108
+ page-x-mobile: 16
109
+ grid-gap: 20
110
+ panel-x: 24
111
+ panel-y: 22
112
+ card-gap: 16
113
+ control-gap: 12
114
+ rounded:
115
+ panel: 22
116
+ nested-panel: 18
117
+ card: 16
118
+ control: 14
119
+ pill: 999
120
+ table: 18
121
+ shadow:
122
+ panel: "0 1px 1px rgba(24, 24, 22, 0.03), 0 16px 40px rgba(24, 24, 22, 0.04)"
123
+ control: "0 1px 2px rgba(24, 24, 22, 0.06)"
124
+ selected: "inset 0 0 0 1px rgba(24, 24, 22, 0.08)"
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-grid_children
133
+ min_height_policy: min-height-0-on_scroll_children
134
+ fixed_height_tokens:
135
+ metric_tile: 164px
136
+ summary_panel: 380px
137
+ supporting_strip: 136px
138
+ chart_panel: 380px
139
+ table_row: 64px
140
+ table_header: 58px
141
+ control: 48px
142
+ quality_anchors:
143
+ - id: balanced_top_mosaic
144
+ name: 首屏平衡拼图区
145
+ required_when: PRD 同时包含摘要、指标或趋势概览
146
+ rule: 用三列或两列响应式网格组织上方模块,至少一个大摘要面板、一个指标拼图区和一个洞察面板形成清晰层级,同一行等高。
147
+ - id: premium_metric_tile
148
+ name: 精制指标卡
149
+ required_when: PRD 包含可量化状态或摘要
150
+ rule: 指标卡必须包含标题、主值、微型状态胶囊和小图标容器;优先指标可使用小面积品牌渐变,其余保持中性浅底。
151
+ - id: soft_chart_chamber
152
+ name: 轻网格图表舱
153
+ required_when: PRD 包含趋势、对比、分布或进度数据
154
+ rule: 图表容器采用内嵌浅灰圆角区域、低对比网格、清晰图例和圆角数据标记;缺少真实数据时使用空状态,不伪造数值。
155
+ - id: tactile_progress_detail
156
+ name: 触感化进度细节
157
+ required_when: PRD 包含配额、进度、完成率、容量或阶段状态
158
+ rule: 使用稳定高度的圆角进度条或分段条,未完成区域可加极浅纹理,数值说明左右对齐并避免撑高容器。
159
+ - id: refined_table_rows
160
+ name: 高完成度明细表
161
+ required_when: PRD 包含记录、任务、订单、事项或对象列表
162
+ rule: 表格使用圆角浅灰表头、固定行高、图标徽章、状态点、hover 与 selected 行反馈,工具栏输入和筛选按钮在标题右侧对齐。
163
+ quality_floor:
164
+ target: polished_sample_level
165
+ avoid_default_admin_feel: true
166
+ requires_visible_micro_detail: true
167
+ minimum_craft_signals: [precise_alignment, stable_panel_heights, subtle_borders, refined_table_header, icon_badges, status_pills, chart_grid_texture, complete_interaction_states]
168
+ components:
169
+ card:
170
+ bg: tokens.colors.surface
171
+ roundedRef: tokens.rounded.panel
172
+ border: "1px solid tokens.colors.border-muted"
173
+ shadowRef: tokens.shadow.panel
174
+ metric_card:
175
+ heightRef: layout_stability.fixed_height_tokens.metric_tile
176
+ roundedRef: tokens.rounded.nested-panel
177
+ titleStyle: tokens.typography.card-title
178
+ valueStyle: tokens.typography.metric-medium
179
+ primary_metric_card:
180
+ bg: "linear-gradient(180deg, tokens.colors.brand 0%, tokens.colors.brand-deep 100%)"
181
+ text: "#FFFFFF"
182
+ accent_policy: one_priority_tile_only
183
+ button:
184
+ height: 48
185
+ roundedRef: tokens.rounded.pill
186
+ icon_size: 18
187
+ density: compact
188
+ input:
189
+ height: 48
190
+ roundedRef: tokens.rounded.control
191
+ border: "1px solid tokens.colors.border-subtle"
192
+ table:
193
+ row_heightRef: layout_stability.fixed_height_tokens.table_row
194
+ header_heightRef: layout_stability.fixed_height_tokens.table_header
195
+ header_bg: tokens.colors.surface-muted
196
+ selected_bg: "#F3F3F1"
197
+ chart:
198
+ panel_heightRef: layout_stability.fixed_height_tokens.chart_panel
199
+ grid: dashed_low_contrast
200
+ marks: rounded_or_soft_textured
201
+ modules:
202
+ page_identity:
203
+ confidence: observed
204
+ placement: top_before_grid
205
+ render_policy: prd_only
206
+ primary_summary:
207
+ confidence: observed
208
+ placement: top_grid_left_or_full_width_on_mobile
209
+ render_policy: prd_only
210
+ primary_metrics:
211
+ confidence: observed
212
+ placement: top_grid_center_or_after_summary_on_mobile
213
+ render_policy: prd_only
214
+ insight_panel:
215
+ confidence: observed
216
+ placement: top_grid_right_or_after_metrics_on_mobile
217
+ render_policy: prd_only
218
+ quick_actions:
219
+ confidence: observed
220
+ render_policy: prd_only
221
+ placement: inside_summary_or_independent_section_after_summary
222
+ item_count: 2-8
223
+ supporting_widgets:
224
+ confidence: observed
225
+ render_policy: prd_only
226
+ placement: below_top_grid_or_side_column
227
+ detail_table:
228
+ confidence: observed
229
+ render_policy: prd_only
230
+ placement: largest_lower_panel
231
+ ---
232
+
233
+ # Soft Modular Analytic Workbench DESIGN.md
234
+
235
+ > front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和内容取舍以正文为准。
236
+
237
+ ## 1. 快速理解
238
+
239
+ 这是一个浅灰画布、白色大圆角面板、密集但不压迫的分析工作台视觉 DNA。它适合把页面拆成摘要、指标、趋势、辅助小组件和明细列表,并通过稳定网格维持首屏秩序。
240
+
241
+ PRD 决定显示什么内容、哪些模块存在、字段如何命名以及数据优先级;本文件只约束 UI 风格、布局气质、组件形态、密度、状态和响应式策略。主题色可以替换默认强调色的色相,但不能改变浅色画布、大圆角面板、等高拼图、轻网格图表和精制表格这些视觉机制。
242
+
243
+ 编码结果需要有清晰的微观细节:对齐准确、行高稳定、图标容器一致、状态胶囊克制、图表网格轻而可见,不能退化成普通默认后台。
244
+
245
+ ## 2. 使用边界
246
+
247
+ PRD 负责内容、功能、信息架构、业务优先级、模块存在性和数据口径。DESIGN.md 负责视觉 DNA、组件样式、布局稳定性、状态表达、响应式与可访问性。
248
+
249
+ 不要为了套用槽位而凭空创造 PRD 未要求的摘要、指标、图表、快捷入口或表格。PRD 没有量化数据时,不强造数字;PRD 没有趋势数据时,可以用同等完成度的主内容面板、摘要列表或空状态替代。
250
+
251
+ 最终界面不得复用风格来源中的具体业务字段、示例数据、人名、机构名、分类名称或页面专属文案。所有文案、字段、数据和操作必须来自 PRD 或真实产品上下文。
252
+
253
+ ## 3. 设计风格选择与换色逻辑
254
+
255
+ 当页面需要在一个首屏中同时呈现多块摘要、少量高频操作、趋势洞察和可检索明细时,优先选择该风格。它特别适合信息密度中高、需要反复查看和操作的工作台,而不是低密度展示页。
256
+
257
+ 默认强调色不是视觉 DNA。主题色流程只能替换 `brand`、`brand-soft`、`brand-deep`、`focus-ring`、图表强调色和状态辅助色的色相。背景、表面、浅边框、中性文字、大圆角、等高网格、内嵌图表舱和表格行结构必须保持不变。
258
+
259
+ 主题色使用面积要克制:通常只用于一个优先指标卡、主要按钮、状态胶囊、图表标记、focus ring 和少量图标反馈。不要把主题色铺满页面背景、普通卡片或大面积面板。
260
+
261
+ ## 4. 视觉 DNA
262
+
263
+ ### airy_page_shell
264
+
265
+ 不可变机制是低对比浅灰画布与白色大圆角面板。页面不依赖重阴影,而依赖柔和背景差、浅描边、稳定间距和大半径面板来产生品质感。
266
+
267
+ 可变部分是页面标题、模块数量和各面板承载的内容。换主题色时也必须保留浅灰画布和中性表面,不能把整页染成主题色。
268
+
269
+ 缺失该 DNA 会让界面变成普通白底后台,模块之间失去呼吸感和边界秩序。
270
+
271
+ ### mixed_scale_summary_grid
272
+
273
+ 不可变机制是首屏上方的混合尺度拼图区:一个较大的摘要面板、多个指标卡和一个洞察面板共同建立信息层级。指标卡要有明确主值、标题、微状态和图标容器。
274
+
275
+ 可变部分是指标含义、数量、状态语义和展示格式。若 PRD 只有少量摘要,可减少卡片数量,但仍要保持等高和网格对齐。
276
+
277
+ 主题色替换后,优先卡仍可使用小面积渐变,其余指标卡保持中性浅底。缺失该 DNA 会让首屏没有重点,所有信息看起来权重相同。
278
+
279
+ ### contained_insight_panel
280
+
281
+ 不可变机制是内嵌轻网格洞察面板。图表或趋势区域不是漂浮在卡片上,而是放入浅灰圆角容器中,配合低对比网格、简洁图例和圆角数据标记。
282
+
283
+ 可变部分是图表类型、维度、单位、系列数量和 tooltip 内容。没有图表数据时,用同样规格的空状态或解释性内容面板替代,不伪造趋势。
284
+
285
+ 主题色只替换图表强调系列或小面积标记。缺失该 DNA 会让数据区显得粗糙或像默认图表库裸渲染。
286
+
287
+ ### refined_detail_table
288
+
289
+ 不可变机制是大面板中的精制明细表:标题和工具栏在同一行,表头为浅灰圆角区域,行高固定,行内包含图标徽章、状态点、选择框和尾部操作入口。
290
+
291
+ 可变部分是列、行、状态集合、筛选方式和操作菜单。PRD 如果要求列表而不是表格,也应保留稳定行高、图标化起点、状态微细节和 hover 或 selected 反馈。
292
+
293
+ 缺失该 DNA 会让下方明细区退化为普通数据表,首屏品质会明显下降。
294
+
295
+ ### compact_supporting_widgets
296
+
297
+ 不可变机制是辅助小组件的紧凑横向密度。进度、配额、容量、阶段或关联项可用低高度面板承载,内部用横条、分段条、紧凑卡片和图标按钮组织。
298
+
299
+ 可变部分是小组件类型、数量和是否横向滚动。长内容必须截断或内部滚动,不能撑高同一行布局。
300
+
301
+ 缺失该 DNA 会让页面只有大模块,无法形成丰富但克制的工作台质感。
302
+
303
+ ## 5. 视觉品质基线
304
+
305
+ `balanced_top_mosaic` 在 PRD 同时包含摘要、指标或趋势概览时必须落地。上方区域要像拼图一样稳定,面板之间等高对齐,避免一列很长、一列很短的自由高度布局。
306
+
307
+ `premium_metric_tile` 在 PRD 包含可量化状态或摘要时必须落地。每张指标卡至少包含标题、主值、状态胶囊和图标容器;优先指标可使用主题渐变,其余保持中性,形成层级而不喧宾夺主。
308
+
309
+ `soft_chart_chamber` 在 PRD 包含趋势、对比、分布或进度数据时必须落地。图表需要有浅底内嵌容器、低对比网格、图例、圆角或纹理化数据标记。若没有数据,保持容器规格并渲染清晰空状态。
310
+
311
+ `tactile_progress_detail` 在 PRD 包含配额、进度、完成率、容量或阶段状态时必须落地。进度条要有稳定高度、圆角端点、左右对齐说明和轻微材质差,不能只用一条默认浏览器进度条。
312
+
313
+ `refined_table_rows` 在 PRD 包含记录、任务、对象或事项列表时必须落地。表头、行高、图标徽章、状态点、选中态、hover 态和尾部操作必须完整,不要只输出裸表格。
314
+
315
+ ## 6. 布局规则
316
+
317
+ 推荐页面结构如下,但槽位不是业务要求,PRD 没有的模块不要强行补:
318
+
319
+ | 槽位 | 视觉用途 | 渲染条件 |
320
+ | --- | --- | --- |
321
+ | `page_identity` | 页面身份、短说明、全局操作入口 | PRD 需要页面标题或全局动作时 |
322
+ | `primary_summary` | 首要摘要、关键行动或当前状态 | PRD 有主摘要或核心状态时 |
323
+ | `primary_metrics` | 多个可比较指标 | PRD 有 2 个以上摘要项时 |
324
+ | `insight_panel` | 趋势、对比、分布或主内容洞察 | PRD 有图表或洞察内容时 |
325
+ | `supporting_widgets` | 进度、容量、阶段、关联对象 | PRD 有辅助状态时 |
326
+ | `detail_table` | 明细记录、对象列表、任务列表 | PRD 有列表或表格数据时 |
327
+
328
+ 主 grid 使用 `display: grid`,桌面端优先三列或 `5fr 5fr 5fr` 的均衡布局,父级统一 `gap: var(--grid-gap)`。同一行面板必须 `align-items: stretch`,面板自身设置 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。
329
+
330
+ 长内容必须在面板内部滚动、截断或折叠。区块之间的间距由父级 `gap` 管理,不使用零散 margin 拼接。图表容器、表格行、工具栏和进度条必须有稳定高度 token,加载、空状态和错误状态不能改变父级尺寸。
331
+
332
+ ## 7. PRD 槽位映射
333
+
334
+ | PRD 内容类型 | 推荐槽位 | 视觉处理 |
335
+ | --- | --- | --- |
336
+ | 页面名称、说明、全局命令 | `page_identity` | 大标题加短说明,命令放右侧或下方操作区 |
337
+ | 一个核心摘要 | `primary_summary` | 大数字或主状态加少量操作,内部可放辅助子项 |
338
+ | 多个摘要项 | `primary_metrics` | 2x2 或横向网格,优先项可小面积渐变 |
339
+ | 趋势、对比、分布 | `insight_panel` | 内嵌浅灰图表舱,保留图例、网格和 tooltip |
340
+ | 进度、容量、阶段 | `supporting_widgets` | 紧凑进度条、分段条或小卡片 |
341
+ | 高频入口 | `quick_actions` | 独立按钮组或摘要面板内按钮组,是否存在由 PRD 决定 |
342
+ | 记录或对象集合 | `detail_table` | 圆角表头、固定行高、图标徽章、状态点和行操作 |
343
+ | 无数据或权限不足 | 对应槽位空状态 | 保持面板尺寸,展示简洁说明和可用操作 |
344
+
345
+ ## 8. 组件规则
346
+
347
+ 卡片和面板使用白色表面、22px 左右大圆角、浅边框和柔和阴影。嵌套内容使用更小圆角和浅灰底,避免卡片套卡片的厚重感;嵌套区域应像内容舱,而不是另一个完整面板。
348
+
349
+ 指标和摘要使用显著主值、短标题、微状态胶囊和图标容器。主值不要过度加粗,推荐 550 到 600 字重,保持数字清晰和现代。状态胶囊用浅底小面积颜色,并搭配箭头、点、图标或文字,不能只靠颜色。
350
+
351
+ 图表或主内容面板必须有固定高度,内部网格线低对比,图例使用小圆点或小色块。柱、条、线、区域或分段标记要有圆角或细微纹理,tooltip 必须跟随主题色但保持白色表面和浅描边。
352
+
353
+ 表格和列表使用 58px 左右表头、64px 左右行高、浅灰圆角表头、左侧选择框或图标容器、状态点、尾部菜单。hover 使用极浅底色,selected 使用整行浅灰底加明确选择控件,focus ring 使用主题色派生。
354
+
355
+ 输入和按钮保持 48px 高度。主按钮使用主题强调色和图标,次按钮使用中性浅灰底。筛选、更多、展开、搜索等工具按钮优先使用图标加必要短文本,并提供 tooltip 或可访问标签。
356
+
357
+ 快捷入口只在 PRD 要求时渲染。视觉上可以放在摘要面板内或摘要之后的独立区域,按钮使用圆角胶囊、图标和稳定宽高;不要塞进表格工具栏或面板角落作为杂项入口。
358
+
359
+ 所有组件必须覆盖 loading、empty、error、disabled、hover、focus、selected 状态。加载态使用骨架屏或占位块,并保持最终布局尺寸。
360
+
361
+ ## 9. 响应式与可访问性
362
+
363
+ 桌面端使用多列网格;中等宽度降为两列;小屏幕降为单列,顺序为 `page_identity`、`primary_summary`、`primary_metrics`、`insight_panel`、`supporting_widgets`、`detail_table`。移动端页面左右 padding 不低于 16px,面板圆角可降到 18px。
364
+
365
+ 表格在小屏幕可横向滚动或转换为稳定列表行,但列标题、状态、主操作和选择态不能丢失。图表在小屏幕保持最小高度 280px,并允许横向滚动或简化维度标签。
366
+
367
+ 所有可点击目标不小于 44px。纯图标按钮必须有 `aria-label` 和 tooltip。状态不能只靠颜色表达,需要配合文字、图标、形状或位置。键盘 focus ring 使用 `tokens.colors.focus-ring`,对比度清晰但不刺眼。
368
+
369
+ 动效保持轻量,hover 和 selected 过渡在 120ms 到 180ms 之间。遵守 `prefers-reduced-motion`,关闭非必要位移和闪烁。
370
+
371
+ ## 10. 禁止项
372
+
373
+ - 禁止复制具体业务内容、示例数据、专属文案、人名、机构名或分类名。
374
+ - 禁止让 DESIGN.md 覆盖 PRD 的内容、功能和信息架构决策。
375
+ - 禁止把输入主题色铺满背景、普通指标卡或大面积面板。
376
+ - 禁止把默认强调色误当成视觉 DNA。
377
+ - 禁止做成默认后台质感:裸表格、无细节卡片、粗糙图表、随意阴影都不合格。
378
+ - 禁止瀑布流、自由高度卡片、无固定高度图表容器和长内容撑破父级。
379
+ - 禁止用零散 margin 拼接布局,区块间距必须由父级 gap 管理。
380
+ - 禁止文字溢出按钮、卡片、表头或状态胶囊。
381
+ - 禁止缺失 hover、focus、selected、loading、empty、error、disabled 状态。
382
+
383
+ ## 11. Agent 使用提示
384
+
385
+ 先读取 PRD,确认内容、模块和数据是否存在;再读取主题色输入,按 `theme_adaptation` 替换强调色;最后应用本视觉 DNA。不要硬套槽位,不要为了还原某种构图而凭空创造 PRD 未要求的内容。
386
+
387
+ 实现时优先搭建稳定网格、等高面板和固定尺寸图表容器,再填充组件。指标卡、图表舱、进度细节和明细表是该风格的品质锚点,凡是 PRD 条件满足就必须做完整状态和微细节。
388
+
389
+ 主题色只改变强调色相和派生辅助色,不改变浅灰画布、白色面板、中性文字、浅边框、大圆角、等高布局和小面积强调机制。交付前必须按自检清单确认视觉品质没有退化为普通后台。
390
+
391
+ ## 12. 交付自检清单
392
+
393
+ - 内容、字段、数据、文案和操作是否全部来自 PRD 或真实产品上下文。
394
+ - 是否保留浅灰画布、白色大圆角面板、稳定 gap 和柔和边界。
395
+ - 首屏摘要、指标、洞察或替代主内容是否按 PRD 条件形成平衡拼图区。
396
+ - 主题色是否只替换强调色、图表系列、状态辅助色和 focus ring。
397
+ - 是否避免把主题色铺满背景、普通卡片或大面积面板。
398
+ - 图表或主内容面板是否有固定高度、内嵌浅底、低对比网格或同等品质细节。
399
+ - 表格或列表是否有圆角表头、固定行高、图标徽章、状态点、hover 与 selected 反馈。
400
+ - 长内容是否内部滚动、截断或折叠,没有撑破父级。
401
+ - 布局是否使用 `align-items: stretch`、`height: 100%`、`min-width: 0`、`min-height: 0` 和父级 `gap`。
402
+ - loading、empty、error、disabled、hover、focus、selected 状态是否完整。
403
+ - 移动端是否按单列顺序折叠,表格和图表是否有可用的窄屏策略。
404
+ - 纯图标按钮是否有 tooltip 或 `aria-label`,状态是否不只依赖颜色。