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,367 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-timeline-analytics-workbench
5
+ design_id: soft-timeline-analytics-workbench
6
+ design_status: draft
7
+ description: "适用于带核心指标、时间轴、趋势图和明细数据的柔和分析工作台视觉 DNA。"
8
+ scenes: [dashboard, workbench, analytics_home, operations_overview, data_table_page]
9
+ density: medium-high
10
+ layout: asymmetric_summary_timeline_chart_table
11
+ tone: [soft, analytical, clean, precise, calm]
12
+ tags: [light_dashboard, metric_stack, timeline_panel, trend_chart, data_table]
13
+ avoid: [marketing_landing_page, immersive_storytelling, media_gallery, freeform_canvas]
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: left_metric_stack
27
+ name: 左侧指标栈
28
+ confidence: observed
29
+ hooks: [summary_card, metric_grid, large_number, icon_badge, decorative_progress_ring]
30
+ invariant: [左侧使用较窄列承载主摘要与 2x2 指标卡, 主摘要卡比普通指标卡更高, 指标数字形成强层级, 普通指标卡保持白底和轻边框]
31
+ variable: [指标数量, 指标名称, 数值格式, 环比文本, 图标语义, 默认强调色]
32
+ - id: floating_timeline_panel
33
+ name: 浮动时间轴面板
34
+ confidence: observed
35
+ hooks: [date_strip, horizontal_cards, active_marker, dotted_axis, rounded_outline_panel]
36
+ invariant: [时间选择条位于面板顶部, 内容区使用浅色描边容器, 节点卡片错落但对齐到同一时间轴, 当前节点使用小面积高饱和强调色]
37
+ variable: [时间粒度, 节点数量, 节点标题, 附加信息, 头像或图标, 操作入口]
38
+ - id: refined_trend_panel
39
+ name: 轻网格趋势面板
40
+ confidence: observed
41
+ hooks: [line_chart, soft_grid, hollow_points, tooltip_card, range_select]
42
+ invariant: [图表面板白底大圆角, 标题栏与图表区分层, 折线使用强调色和空心节点, 辅助序列使用浅灰虚线, tooltip 使用深色高对比浮层]
43
+ variable: [指标维度, 时间范围, 图表序列数量, 坐标标签, tooltip 内容, 主题色]
44
+ - id: rounded_detail_table
45
+ name: 圆角明细表
46
+ confidence: observed
47
+ hooks: [search_input, sortable_header, checkbox_column, status_pill, iconized_cell]
48
+ invariant: [表格作为底部宽面板, 表头浅灰底并带分隔线, 行高稳定, 首列可选择, 状态使用胶囊标签和小圆点表达]
49
+ variable: [列定义, 行数据, 筛选控件, 状态集合, 单元格图标, 批量操作]
50
+ theme_adaptation:
51
+ accepts_theme_color: true
52
+ strategy: replace_hue_preserve_visual_mechanism
53
+ input: theme_color
54
+ replace_tokens: [tokens.colors.brand, tokens.colors.brand-strong, tokens.colors.brand-soft, tokens.colors.focus-ring]
55
+ derive_tokens: [tokens.colors.chart-primary, tokens.colors.chart-primary-soft, tokens.colors.status-positive, tokens.colors.surface-accent, tokens.colors.timeline-active]
56
+ 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]
57
+ rules:
58
+ - theme_color_only_changes_accent_hue
59
+ - do_not_tint_page_background
60
+ - do_not_turn_neutral_cards_into_colored_cards
61
+ - keep_accent_usage_small_area
62
+ - preserve_white_panels_soft_borders_and_large_radius
63
+ tokens:
64
+ colors:
65
+ bg-page: "#F6F7F5"
66
+ surface: "#FFFFFF"
67
+ surface-muted: "#F2F4F3"
68
+ surface-accent: "#EAF8F2"
69
+ text-primary: "#111827"
70
+ text-secondary: "#5B6472"
71
+ text-tertiary: "#8B95A1"
72
+ border-subtle: "#E5E9E7"
73
+ border-accent-soft: "#CFEFE1"
74
+ brand: "#1FB975"
75
+ brand-strong: "#13A463"
76
+ brand-soft: "#DFF7EC"
77
+ focus-ring: "#8BE0B8"
78
+ chart-primary: "#20B875"
79
+ chart-primary-soft: "#DDF5EA"
80
+ chart-secondary: "#CBD5D1"
81
+ status-positive: "#22B879"
82
+ status-warning: "#F0A92E"
83
+ status-danger: "#E35D5D"
84
+ shadow-color: "rgba(17, 24, 39, 0.06)"
85
+ typography:
86
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
87
+ page-title: { fontSize: 30, fontWeight: 700, lineHeight: 1.2, letterSpacing: 0 }
88
+ panel-title: { fontSize: 18, fontWeight: 700, lineHeight: 1.3, letterSpacing: 0 }
89
+ metric-number: { fontSize: 44, fontWeight: 700, lineHeight: 1.05, letterSpacing: 0 }
90
+ hero-number: { fontSize: 64, fontWeight: 700, lineHeight: 1, letterSpacing: 0 }
91
+ body: { fontSize: 15, fontWeight: 500, lineHeight: 1.45, letterSpacing: 0 }
92
+ caption: { fontSize: 13, fontWeight: 500, lineHeight: 1.35, letterSpacing: 0 }
93
+ spacing:
94
+ page-x-desktop: 24
95
+ page-y-desktop: 32
96
+ grid-gap: 16
97
+ panel-x: 24
98
+ panel-y: 22
99
+ card-gap: 14
100
+ table-cell-x: 20
101
+ rounded:
102
+ panel: 20
103
+ summary: 20
104
+ card: 16
105
+ control: 14
106
+ pill: 999
107
+ icon: 999
108
+ shadow:
109
+ panel: "0 1px 2px rgba(17, 24, 39, 0.04), 0 12px 28px rgba(17, 24, 39, 0.04)"
110
+ floating: "0 10px 24px rgba(17, 24, 39, 0.08)"
111
+ layout_stability:
112
+ grid_align_items: stretch
113
+ panel_display: flex-column
114
+ panel_height: "100%"
115
+ overflow_policy: internal_scroll_or_truncate
116
+ spacing_policy: parent_gap_only
117
+ equal_height_rule: same_row_panels_align
118
+ fixed_height_tokens:
119
+ summary_card: 270px
120
+ metric_card: 168px
121
+ timeline_panel: 360px
122
+ trend_panel: 300px
123
+ table_row: 64px
124
+ table_header: 56px
125
+ quality_anchors:
126
+ - id: oversized_summary_card
127
+ name: 大号摘要卡与装饰性进度纹理
128
+ required_when: PRD 提供一个最高优先级摘要或总览状态
129
+ rule: 摘要卡使用强调色底、超大数字、低透明纹理和局部进度环,普通指标卡不得抢夺主摘要层级。
130
+ - id: staggered_timeline_panel
131
+ name: 错落时间轴节点面板
132
+ required_when: PRD 包含日程、阶段、流程、里程碑或时序节点
133
+ rule: 时间条、垂直当前线、节点卡片和选中态必须共同出现,节点卡错落但保持网格对齐。
134
+ - id: crafted_trend_tooltip
135
+ name: 精致趋势图浮层
136
+ required_when: PRD 包含趋势、周期对比或多序列数据
137
+ rule: 图表需要空心节点、浅网格、辅助虚线序列和深色 tooltip,不能只放默认折线。
138
+ - id: utility_table_shell
139
+ name: 工具化明细表壳
140
+ required_when: PRD 包含记录列表、检索、排序或状态追踪
141
+ rule: 表格必须有圆角面板、搜索或筛选工具、浅灰表头、稳定行高、状态胶囊和 hover/focus 状态。
142
+ - id: micro_icon_rhythm
143
+ name: 微图标节奏
144
+ required_when: PRD 包含指标卡、列表项、节点项或状态项
145
+ rule: 小图标置于浅描边圆形容器内,图标大小与文本基线对齐,避免散乱贴图感。
146
+ quality_floor:
147
+ target: polished_sample_level
148
+ avoid_default_admin_feel: true
149
+ requires_visible_micro_detail: true
150
+ minimum_craft_signals: [precise_alignment, stable_panel_heights, subtle_borders, soft_shadow, refined_table_header, chart_tooltip, active_state_texture]
151
+ components:
152
+ card:
153
+ surface: tokens.colors.surface
154
+ roundedRef: tokens.rounded.card
155
+ border: "1px solid tokens.colors.border-subtle"
156
+ shadowRef: tokens.shadow.panel
157
+ summary_card:
158
+ surface: tokens.colors.brand
159
+ roundedRef: tokens.rounded.summary
160
+ text: "#FFFFFF"
161
+ decoration: low_opacity_pattern_and_progress_ring
162
+ metric_card:
163
+ minHeightRef: layout_stability.fixed_height_tokens.metric_card
164
+ icon: circular_subtle_badge
165
+ number: tokens.typography.metric-number
166
+ input:
167
+ height: 48
168
+ roundedRef: tokens.rounded.control
169
+ border: "1px solid tokens.colors.border-subtle"
170
+ button:
171
+ height: 44
172
+ roundedRef: tokens.rounded.control
173
+ icon_first: true
174
+ status_pill:
175
+ roundedRef: tokens.rounded.pill
176
+ has_dot: true
177
+ neutral_bg: true
178
+ chart:
179
+ line_width: 3
180
+ point_style: hollow_circle
181
+ grid: soft_vertical_guides
182
+ table:
183
+ rowHeightRef: layout_stability.fixed_height_tokens.table_row
184
+ headerHeightRef: layout_stability.fixed_height_tokens.table_header
185
+ sortable_header: true
186
+ modules:
187
+ page_identity:
188
+ confidence: observed
189
+ placement: top_left
190
+ render_policy: prd_only
191
+ primary_summary:
192
+ confidence: observed
193
+ placement: left_column_top
194
+ render_policy: prd_only
195
+ primary_metrics:
196
+ confidence: observed
197
+ placement: left_column_below_summary
198
+ item_count: 2-4
199
+ render_policy: prd_only
200
+ timeline_panel:
201
+ confidence: observed
202
+ placement: right_column_top
203
+ render_policy: prd_only
204
+ trend_panel:
205
+ confidence: observed
206
+ placement: right_column_middle
207
+ render_policy: prd_only
208
+ detail_table:
209
+ confidence: observed
210
+ placement: full_width_bottom
211
+ render_policy: prd_only
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 Timeline Analytics 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 负责内容、功能、信息架构、模块是否存在、字段是否展示、数据优先级和交互流程。本文件负责视觉 DNA、布局气质、组件形态、密度、状态、响应式和可访问性。
234
+
235
+ 不要为了套用本风格而凭空创造 PRD 未要求的业务内容。没有核心摘要时,不渲染 `primary_summary`;没有时序节点时,不渲染 `timeline_panel`;没有趋势数据时,用同等品质的主内容面板替代 `trend_panel`;没有明细记录时,不强行生成表格。
236
+
237
+ 禁止复用风格来源中的具体业务字段、示例数据、机构名、分类名称、页面专属文案或特殊图标语义。所有文本、数据、图标和状态都必须来自 PRD 或真实数据契约。
238
+
239
+ ## 3. 设计风格选择与换色逻辑
240
+
241
+ 当用户意图包含“概览、追踪、趋势、明细、状态管理、运营工作台”时,可以选择该风格。页面需要同时容纳摘要信息和结构化数据时最适合;如果只是单纯展示文章、相册、营销转化或全屏可视化,应选择其他视觉 DNA。
242
+
243
+ 不要把默认强调色理解成 DNA。该风格的 DNA 是白底面板、左窄右宽的不对称网格、摘要卡强层级、时间轴节点、轻网格折线图和工具化表格。主题色只改写 `brand`、`brand-soft`、`chart-primary`、`timeline-active`、状态辅助色和 `focus-ring`。
244
+
245
+ 背景、表面、中性文字、浅边框、阴影、大圆角、面板层级、图表空心节点、深色 tooltip 和表格结构不能被主题色改变。主题色不得铺满页面背景,也不得把普通白色卡片变成大面积彩色卡片。
246
+
247
+ ## 4. 视觉 DNA
248
+
249
+ ### 左侧指标栈
250
+
251
+ 不可变机制是左侧较窄列中的“一个大摘要 + 多个小指标”。大摘要负责页面最强视觉重心,普通指标卡保持白底、轻边框和稳定等高。主题色替换后,大摘要可以使用新主题色,但小指标卡仍以中性表面为主。
252
+
253
+ 可变部分包括指标名称、数值格式、趋势表达、图标语义和卡片数量。若缺失该机制,页面会失去快速扫读入口,整体变成松散面板堆叠。
254
+
255
+ ### 浮动时间轴面板
256
+
257
+ 不可变机制是顶部时间选择条、内容区浅描边容器、当前时间线和错落节点卡片。当前节点使用小面积高饱和强调色,其他节点保持白底和细边框。
258
+
259
+ 可变部分包括时间粒度、节点数量、节点信息、图标和操作入口。主题色只替换当前节点、竖线、选中标签和少量边框光晕。若 PRD 没有时序内容,应用同等品质的分组列表、阶段面板或主内容面板,不要伪造时间轴。
260
+
261
+ ### 轻网格趋势面板
262
+
263
+ 不可变机制是大圆角白底面板、清晰标题栏、浅网格、强调色折线、空心节点、辅助虚线序列和深色 tooltip。图表容器必须有固定高度,不能随数据或标签撑开。
264
+
265
+ 可变部分包括图表类型、序列数量、时间范围、坐标标签和 tooltip 内容。若用其他图表承载 PRD 数据,也要保留轻网格、精细图例、悬浮反馈和足够留白。
266
+
267
+ ### 圆角明细表
268
+
269
+ 不可变机制是底部全宽面板、工具栏、浅灰表头、稳定行高、复选框列、可排序列头和状态胶囊。表格边界要干净,行分隔线要轻,hover 与 selected 状态要明确但克制。
270
+
271
+ 可变部分包括列定义、筛选控件、状态集合、图标化单元格和批量操作。若 PRD 是列表而非表格,也要保留圆角面板、统一行高、状态标签和工具区。
272
+
273
+ ## 5. 视觉品质基线
274
+
275
+ `oversized_summary_card` 用于承载最高优先级摘要。它通过超大数字、强调色底、局部进度纹理和足够内边距建立首屏重心。没有核心摘要时,可用高品质信息面板替代,但不能强造数字。
276
+
277
+ `staggered_timeline_panel` 用于承载时序、阶段或里程碑。时间条、当前线、节点卡片和选中态必须作为一个完整组件出现。没有时序内容时,用分组看板或横向步骤面板替代,仍需保持对齐和层级。
278
+
279
+ `crafted_trend_tooltip` 用于承载趋势数据。折线图至少包含空心节点、浅色辅助线、细网格和深色 tooltip。默认图表库样式需要被覆写,避免粗糙坐标轴、拥挤标签和无状态反馈。
280
+
281
+ `utility_table_shell` 用于承载记录检索和状态追踪。表格必须包含工具区、圆角外壳、稳定表头、行 hover、选中状态和状态胶囊。只有表格线条和文字会显得廉价。
282
+
283
+ `micro_icon_rhythm` 用于指标卡、节点项、列表项和状态项。小图标应放入圆形浅描边容器,尺寸统一,和文本基线对齐。图标只辅助识别,不承担业务定义。
284
+
285
+ ## 6. 布局规则
286
+
287
+ 推荐桌面布局为 12 列网格:左侧 4 列承载摘要和指标栈,右侧 8 列承载时间轴和趋势面板,底部明细区横跨 12 列。页面外边距约 24px,区块间距约 16px,首屏结构应紧凑但不拥挤。
288
+
289
+ 这些槽位不是业务结构要求。PRD 没有的模块不要强行补齐,已有模块也可以根据内容优先级调整顺序,但需要保留“摘要优先、分析居中、明细沉底”的阅读节奏。
290
+
291
+ 布局稳定性硬规则:
292
+
293
+ - 主 grid 使用 `align-items: stretch`。
294
+ - 同一行面板等高,面板使用 `height: 100%`。
295
+ - 面板内部使用 `display: flex` 和 `flex-direction: column`。
296
+ - 所有面板设置 `min-width: 0` 和 `min-height: 0`。
297
+ - 长文本必须截断、折叠或在面板内部滚动。
298
+ - 图表容器必须有固定高度或响应式高度 token。
299
+ - 区块间距由父级 `gap` 管理,不用零散 margin 拼接。
300
+
301
+ ## 7. PRD 槽位映射
302
+
303
+ | PRD 内容类型 | 推荐槽位 | 渲染规则 |
304
+ | --- | --- | --- |
305
+ | 页面名称与全局操作 | `page_identity`, `global_actions` | 顶部左侧标题,右侧可放轻量筛选或操作;没有操作时只保留标题。 |
306
+ | 最高优先级摘要 | `primary_summary` | 使用强调色大卡;没有量化摘要时不要生成大数字。 |
307
+ | 次级指标集合 | `primary_metrics` | 使用 2 到 4 个白底指标卡;指标必须来自 PRD。 |
308
+ | 时序、阶段、里程碑 | `timeline_panel` | 使用顶部时间条、当前线和节点卡;没有时序内容时不渲染。 |
309
+ | 趋势、周期对比、多序列数据 | `trend_panel` | 使用轻网格图表;没有图表数据时替换为同品质主内容面板。 |
310
+ | 记录、清单、状态追踪 | `detail_table` 或 `detail_list` | 使用底部圆角工具化外壳;列和操作由 PRD 决定。 |
311
+ | 常用入口或批处理 | `quick_actions` | 仅当 PRD 要求快捷入口时渲染,作为独立区块。 |
312
+ | 加载、空状态、错误状态 | `status_note`, `empty_state` | 保持白底、轻描边、明确反馈和可恢复操作。 |
313
+
314
+ ## 8. 组件规则
315
+
316
+ 卡片和面板使用白底、20px 左右圆角、1px 浅边框和极轻阴影。不要把页面区块包进多层卡片;重复项、表格外壳、浮层和工具面板才使用卡片样式。
317
+
318
+ 指标组件需要明确层级。主摘要数字可使用 56px 到 68px,普通指标数字使用 36px 到 48px。趋势文本使用小字号和主题色或状态色,但不能只靠颜色表达含义。
319
+
320
+ 图表组件需要稳定高度、浅网格、克制轴线、空心节点、图例点和 hover tooltip。折线厚度约 3px,辅助序列可用浅灰虚线。tooltip 使用深色面板、8px 到 12px 圆角和清晰的左右对齐数值。
321
+
322
+ 表格和列表需要工具栏、搜索或筛选控件、浅灰表头、可排序图标、复选框列、稳定行高、行 hover 和 selected 状态。状态胶囊使用圆角、浅底、小圆点和短文本,不要使用大面积强色块。
323
+
324
+ 输入和按钮高度建议 44px 到 48px。图标按钮使用熟悉图标,并提供 hover、focus、disabled 和 loading 状态。纯图标按钮必须有可访问名称。
325
+
326
+ 快捷入口如被 PRD 要求,应作为独立区块,使用圆形图标容器、短标签和轻边框,不要塞进表格工具栏或面板尾部。入口数量建议 4 到 8 个,移动端可横向滚动。
327
+
328
+ ## 9. 响应式与可访问性
329
+
330
+ 桌面端使用不对称网格;小于 1100px 时可改为上下结构,摘要指标在前,时间轴和图表在后,明细表最后。小于 720px 时所有面板单列堆叠,表格允许横向滚动,时间轴节点改为纵向列表或可横滑卡片。
331
+
332
+ 触控目标不小于 44px。所有交互控件需要清晰 focus ring,颜色使用 `focus-ring`,同时保留边框或阴影变化。状态不能只依赖颜色,需要配合文字、图标、圆点或形状。
333
+
334
+ 动效保持轻量:hover 可使用 120ms 到 180ms 的阴影、边框或位移动效;图表入场可淡入,不做强烈弹跳。遵守 `prefers-reduced-motion`,在用户减少动态效果时关闭非必要动画。
335
+
336
+ ## 10. 禁止项
337
+
338
+ - 禁止复制具体业务内容、字段名、示例数据、机构名、分类名称或页面专属文案。
339
+ - 禁止让本文件覆盖 PRD 的内容决策。
340
+ - 禁止把输入主题色铺满背景、指标卡底色或大面积面板。
341
+ - 禁止把当前主题色误当成视觉 DNA。
342
+ - 禁止使用默认后台质感的粗糙表格、默认图表和无状态按钮。
343
+ - 禁止瀑布流、自由高度卡片、无固定高度图表容器和零散 margin 拼接。
344
+ - 禁止长内容撑破父级、表格列挤压到不可读、按钮文字溢出或图标与文本错位。
345
+ - 禁止在紧凑面板中使用英雄级字号。
346
+
347
+ ## 11. Agent 使用提示
348
+
349
+ 先读取 PRD,确认真实模块、字段、数据和交互;再读取主题色输入,改写强调色 token;最后应用本视觉 DNA。不要硬套槽位,不要凭空创造内容,不要复用任何风格来源中的具体文本或数据。
350
+
351
+ 实现时优先保留左侧指标栈、时间轴面板、趋势图面板和明细表外壳这些视觉机制。若 PRD 缺少对应内容,用同等品质的中性组件替代,而不是生成假内容。主题色只替换小面积强调色、图表主序列、选中态、状态辅助色和 focus ring,不能改变浅底、白色面板、轻边框、大圆角和稳定网格。
352
+
353
+ 交付结果必须达到 `quality_floor.target`:有精确对齐、稳定面板高度、细腻边框、轻阴影、完整交互状态、精制表头、图表 tooltip 和可见微细节。
354
+
355
+ ## 12. 交付自检清单
356
+
357
+ - [ ] 页面内容、字段、数值和状态都来自 PRD 或真实数据契约。
358
+ - [ ] 没有复制具体业务内容、示例数据、机构名、分类名称或页面专属文案。
359
+ - [ ] 主题色只改写强调色、图表主序列、选中态、状态辅助色和 focus ring。
360
+ - [ ] 白底页面、白色面板、轻边框、大圆角、稳定网格和数据组件组织方式被保留。
361
+ - [ ] 质量锚点按 PRD 条件落地,缺失内容时使用同等品质替代组件。
362
+ - [ ] 主 grid 使用 `align-items: stretch`,同一行面板等高。
363
+ - [ ] 面板设置 `height: 100%`、`min-width: 0`、`min-height: 0` 和内部滚动或截断策略。
364
+ - [ ] 图表容器有稳定高度,tooltip、图例、hover 和空状态完整。
365
+ - [ ] 表格或列表有工具区、稳定表头、行 hover、选中态和状态标签。
366
+ - [ ] 移动端布局不会溢出,表格和时间轴有合理折叠或横向滚动。
367
+ - [ ] 纯图标按钮有可访问名称,状态不只依赖颜色表达。