openyida 2026.9.21 → 2026.9.22-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +14 -20
  2. package/bin/yida.js +6 -11
  3. package/lib/app/app-list.js +3 -7
  4. package/lib/app/canvas-compile.js +12 -22
  5. package/lib/app/check-prd-completeness.js +0 -7
  6. package/lib/app/create-app.js +1 -4
  7. package/lib/app/create-form/args.js +12 -37
  8. package/lib/app/create-form/batch.js +11 -86
  9. package/lib/app/create-form.js +86 -193
  10. package/lib/app/create-page.js +17 -84
  11. package/lib/app/custom-theme.js +0 -11
  12. package/lib/app/form-field-validator.js +41 -26
  13. package/lib/app/form-open-guard.js +10 -97
  14. package/lib/app/get-form-config.js +0 -1
  15. package/lib/app/inline-css-guard.js +31 -1
  16. package/lib/app/services/form-compiler.js +4 -2
  17. package/lib/app/theme-from-design.js +41 -144
  18. package/lib/app/theme-presets.js +1 -1
  19. package/lib/app/update-app.js +13 -63
  20. package/lib/asset/ai-image.js +9 -59
  21. package/lib/asset/asset-cmd.js +7 -18
  22. package/lib/asset/asset-plan.js +9 -102
  23. package/lib/asset/asset-resolve.js +10 -55
  24. package/lib/asset/asset-status.js +4 -5
  25. package/lib/asset/host-capabilities.js +2 -11
  26. package/lib/asset/url-verify.js +4 -19
  27. package/lib/auth/dws-sync.js +145 -0
  28. package/lib/auth/token-auth.js +73 -9
  29. package/lib/auth/token-store.js +50 -0
  30. package/lib/connector/connector-test.js +5 -19
  31. package/lib/connector/contract.js +1 -3
  32. package/lib/core/agent-capabilities.js +16 -19
  33. package/lib/core/command-manifest.js +40 -329
  34. package/lib/core/locales/en.js +17 -74
  35. package/lib/core/locales/zh.js +16 -73
  36. package/lib/core/redact.js +10 -15
  37. package/lib/core/sample.js +30 -72
  38. package/lib/core/utils.js +4 -0
  39. package/lib/design-plan/design-plan.js +4 -51
  40. package/lib/design-plan/init.js +26 -121
  41. package/lib/design-plan/materialize.js +348 -451
  42. package/lib/design-plan/normalize.js +29 -74
  43. package/lib/design-plan/parallel.js +16 -71
  44. package/lib/design-plan/patch.js +16 -63
  45. package/lib/design-plan/preview.js +8 -6
  46. package/lib/design-plan/validate.js +11 -71
  47. package/lib/process/create-process.js +50 -84
  48. package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
  49. package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
  50. package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
  51. package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
  52. package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
  53. package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
  54. package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
  55. package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
  56. package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
  57. package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
  58. package/package.json +1 -3
  59. package/scripts/postinstall.js +3 -3
  60. package/yida-skills/SKILL.md +16 -19
  61. package/yida-skills/references/official-example-schema-patterns.md +1 -1
  62. package/yida-skills/references/yida-api.md +0 -4
  63. package/yida-skills/skills/yida-app/SKILL.md +23 -46
  64. package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
  65. package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
  66. package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
  67. package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
  68. package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
  69. package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
  70. package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
  71. package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
  72. package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
  73. package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
  74. package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
  75. package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
  76. package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
  77. package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
  78. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
  79. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
  80. package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
  81. package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
  82. package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
  83. package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
  84. package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
  85. package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
  86. package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
  87. package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
  88. package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
  89. package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
  90. package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
  91. package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
  92. package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
  93. package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
  94. package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
  95. package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
  96. package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
  97. package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
  98. package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
  99. package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
  100. package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
  101. package/yida-skills/skills/yida-design/SKILL.md +14 -29
  102. package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
  103. package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
  104. package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
  105. package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
  106. package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
  107. package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
  108. package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
  109. package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
  110. package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
  111. package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
  112. package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
  113. package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
  114. package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
  115. package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
  116. package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
  117. package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
  118. package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
  119. package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
  120. package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
  121. package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
  122. package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
  123. package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
  124. package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
  125. package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
  126. package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
  127. package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
  128. package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
  129. package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
  130. package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
  131. package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
  132. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
  133. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
  134. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
  135. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
  136. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
  137. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
  138. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
  139. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
  140. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
  141. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
  142. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
  143. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
  144. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
  145. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
  146. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
  147. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
  148. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
  149. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
  150. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
  151. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
  152. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
  153. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
  154. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
  155. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
  156. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
  157. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
  158. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
  159. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
  160. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
  161. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
  162. package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
  163. package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
  164. package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
  165. package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
  166. package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
  167. package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
  168. package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
  169. package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
  170. package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
  171. package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
  172. package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
  173. package/yida-skills/skills/yida-integration/SKILL.md +0 -1
  174. package/yida-skills/skills/yida-login/SKILL.md +0 -2
  175. package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
  176. package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
  177. package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
  178. package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
  179. package/yida-skills/skills/yida-prd/SKILL.md +3 -5
  180. package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
  181. package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
  182. package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
  183. package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
  184. package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
  185. package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
  186. package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
  187. package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
  188. package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
  189. package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
  190. package/yida-skills/skills-index.json +16 -36
  191. package/lib/app/application-entry-urls.js +0 -31
  192. package/lib/app/application-style.js +0 -69
  193. package/lib/app/canvas-icon-exports.json +0 -6160
  194. package/lib/app/canvas-icon-guard.js +0 -87
  195. package/lib/app/canvas-navigation-guard.js +0 -84
  196. package/lib/app/canvas-path-guard.js +0 -78
  197. package/lib/app/canvas-theme-guard.js +0 -184
  198. package/lib/app/form-data-response-guard.js +0 -57
  199. package/lib/asset/asset-execution.js +0 -79
  200. package/lib/core/css-structure.js +0 -37
  201. package/lib/design/check-design.js +0 -51
  202. package/lib/design/document.js +0 -458
  203. package/lib/design/icon-contrast.js +0 -85
  204. package/lib/design/page-content.js +0 -11
  205. package/lib/design-plan/artifact-updates.js +0 -117
  206. package/lib/design-plan/confirmation.js +0 -13
  207. package/lib/design-plan/entry-navigation.js +0 -97
  208. package/lib/design-plan/navigation-policy.js +0 -38
  209. package/lib/design-plan/rebase.js +0 -60
  210. package/lib/design-plan/themes.js +0 -101
  211. package/lib/design-plan/visual-policy.js +0 -42
  212. package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
  213. package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
  214. package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
  215. package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
  216. package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
  217. package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
  218. package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
  219. package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
  220. package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
  221. package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
  222. package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
  223. package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
  224. package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
  225. package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
  226. package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
  227. package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
  228. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
  229. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
  230. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
  231. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
  232. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
  233. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
  234. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
  235. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
  236. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
  237. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
  238. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
  239. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
  240. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
  241. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
  242. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
  243. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
  244. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
  245. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
  246. package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
  247. package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
  248. package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
  249. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
  250. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
  251. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
  252. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
  253. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
  254. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
  255. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
  256. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
  257. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
  258. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
  259. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
  260. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
  261. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
  262. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
  263. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
  264. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
  265. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
  266. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
  267. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
  268. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
  269. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
  270. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
  271. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
  272. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
  273. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
  274. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
  275. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
  276. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
  277. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
  278. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
  279. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
  280. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
  281. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
  282. package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
  283. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
  284. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
  285. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
  286. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
  287. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
  288. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
  289. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
  290. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
  291. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
  292. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
  293. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
  294. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
  295. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
  296. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
  297. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
  298. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
  299. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
  300. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
  301. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
  302. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
  303. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
  304. package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
  305. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
  306. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
  307. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
  308. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
  309. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
  310. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
  311. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
  312. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
  313. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
  314. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
  315. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
  316. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
  317. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
  318. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
  319. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
  320. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
  321. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
  322. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
  323. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
  324. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
  325. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
  326. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
  327. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
  328. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
  329. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
  330. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
  331. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
  332. package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
  333. package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
  334. package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
@@ -0,0 +1,658 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-blue-grid-analytic-dashboard
5
+ design_id: visual-dna-soft-blue-grid-analytic-dashboard
6
+ design_status: draft
7
+ description: 适用于通用数据仪表盘、运营工作台、管理后台首页和分析概览页的内容中立视觉 DNA,以浅灰画布、白色软边框面板、蓝色焦点图表、胶囊命令控件和左右分栏网格构成清爽、稳定、可扫描的界面。
8
+ scenes: [workbench, dashboard, admin_console, analytic_overview, operation_home]
9
+ density: medium
10
+ layout: header_controls_metric_row_two_column_analytic_grid
11
+ tone: [clean, calm, precise, soft, data_focused]
12
+ tags: [light_canvas, soft_cards, blue_accent, analytic_grid, modular_panels]
13
+ avoid: [marketing_landing_page, editorial_content_site, immersive_gallery, playful_game, long_form_article, dense_transaction_table]
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_metric_card_row
27
+ name: 四宫格软边框指标卡行
28
+ confidence: observed
29
+ evidence: 顶部首屏有一排等高白色指标卡,卡片使用大圆角、极浅边框和轻阴影,主数字醒目,趋势徽标小面积贴近数字。
30
+ rule: 新页面的首屏必须先提供 3-4 个等高 metric_card,用大号数字、短标题、状态徽标和弱化说明形成一眼可扫的摘要层。
31
+ implementation_hooks: [metric_grid, metric_card, delta_badge, icon_corner, comparison_caption, equal_height_grid]
32
+ failure_mode: 如果指标卡高度不齐、边框过重或数字层级不足,页面会变成普通后台表单,失去轻量数据概览记忆点。
33
+ - id: pill_command_header
34
+ name: 右对齐胶囊命令头
35
+ confidence: observed
36
+ evidence: 页面标题左置,右侧是日期筛选、时间范围、次级按钮和蓝色主按钮,所有控件都呈胶囊形并对齐在同一水平线上。
37
+ rule: 顶部必须保留左标题、右命令组的结构;筛选器、次级操作和主操作都使用圆角胶囊控件,主操作以蓝色填充突出。
38
+ implementation_hooks: [page_header, date_filter, segmented_filter, secondary_button, primary_button, icon_button, control_group]
39
+ failure_mode: 如果顶部命令分散、按钮棱角化或主操作不突出,会破坏截图中安静但明确的工具感。
40
+ - id: blue_focus_visualization
41
+ name: 蓝色焦点数据可视化
42
+ confidence: observed
43
+ evidence: 折线、选中柱、主按钮和图标都使用饱和蓝色;图表背景保持白色,其他数据序列使用浅灰或半透明弱化。
44
+ rule: 图表中只允许 1 个主蓝色焦点序列,辅助序列、未选中柱和网格线必须低对比;可使用渐变填充、提示浮层和选中态强化判断。
45
+ implementation_hooks: [line_chart, area_fill, bar_chart_selected, gauge_segment, chart_tooltip, chart_grid, brand_blue]
46
+ failure_mode: 如果多色抢焦、网格线过重或图表缺少蓝色主序列,页面会丢失统一的分析焦点。
47
+ - id: modular_two_column_canvas
48
+ name: 左宽右窄模块化分析画布
49
+ confidence: observed
50
+ evidence: 页面主体以左侧宽内容列承载趋势和明细,右侧窄列垂直堆叠分布、比例和辅助模块,所有面板边缘对齐。
51
+ rule: 桌面端主区域必须采用 8:5 或 2:1 近似分栏,左侧放 trend_panel 与 detail_table,右侧放 breakdown_panel、ratio_panel 或 assistant_panel 等辅助模块。
52
+ implementation_hooks: [main_grid, left_column, right_rail, trend_panel, detail_table, auxiliary_panel, align_items_stretch]
53
+ failure_mode: 如果改成瀑布流或所有模块自由堆叠,会失去原图稳定、平衡、可扫描的工作台结构。
54
+ - id: rounded_micro_detail
55
+ name: 圆角微细节与轻量悬浮层
56
+ confidence: observed
57
+ evidence: 面板、表格缩略图、输入框、趋势徽标、提示浮层都使用统一圆角;阴影极轻,悬浮提示像白色小面板压在图表上。
58
+ rule: 所有局部组件必须继承统一圆角系统和浅边框;tooltip、popover、输入区、标签和缩略图用轻阴影制造层级,不使用厚重卡片阴影。
59
+ implementation_hooks: [rounded_tokens, tooltip, popover, input_shell, table_thumbnail, status_pill, subtle_shadow]
60
+ failure_mode: 如果圆角尺度混乱、阴影过重或局部组件没有浅边框,界面会显得粗糙且不再像同一套系统。
61
+ theme_adaptation:
62
+ accepts_theme_color: true
63
+ strategy: replace_accent_hue_preserve_light_canvas
64
+ input: theme_color
65
+ replace_tokens: [tokens.colors.brand, tokens.colors.brand-strong, tokens.colors.brand-soft, tokens.colors.focus-ring, tokens.colors.chart-primary]
66
+ derive_tokens: [tokens.colors.chart-primary-soft, tokens.colors.chart-selected-fill, tokens.colors.status-info]
67
+ preserve_tokens: [tokens.colors.bg-app, tokens.colors.surface, tokens.colors.surface-muted, tokens.colors.text-primary, tokens.colors.text-secondary, tokens.colors.border-subtle, tokens.colors.shadow-color]
68
+ rules:
69
+ - 主题色只替换小面积强调色、选中态、主按钮和主图表序列。
70
+ - 不要把页面背景、卡片底色或表格区域整体染成主题色。
71
+ - 保留浅灰外层画布、白色面板、低阴影和软边框机制。
72
+ - 状态色可随品牌轻微调整,但正向、负向、中性必须仍能被区分。
73
+ tokens:
74
+ colors:
75
+ bg-app: "#f4f7fa"
76
+ bg-page: "#f4f7fa"
77
+ surface: "#ffffff"
78
+ surface-muted: "#f6f8fb"
79
+ surface-soft: "#eef2f6"
80
+ text-primary: "#0f1217"
81
+ text-secondary: "#6f7782"
82
+ text-tertiary: "#9aa3ad"
83
+ border-subtle: "#e4e9ef"
84
+ border-strong: "#d7dee7"
85
+ brand: "#2f6ff4"
86
+ brand-strong: "#1f5ee6"
87
+ brand-soft: "#eaf2ff"
88
+ focus-ring: "rgba(47, 111, 244, 0.28)"
89
+ status-positive: "#39b981"
90
+ status-positive-soft: "#e8f8f0"
91
+ status-negative: "#e84f83"
92
+ status-negative-soft: "#fdebf2"
93
+ status-warning: "#f59e0b"
94
+ status-warning-soft: "#fff5dc"
95
+ chart-primary: "#2f6ff4"
96
+ chart-primary-soft: "rgba(47, 111, 244, 0.16)"
97
+ chart-secondary: "#45c38a"
98
+ chart-tertiary: "#ff8a2d"
99
+ chart-muted: "#e8edf3"
100
+ chart-grid: "#e9eef4"
101
+ chart-selected-fill: "linear-gradient(180deg, #2f6ff4 0%, #4f8bff 100%)"
102
+ shadow-color: "rgba(18, 31, 44, 0.08)"
103
+ typography:
104
+ fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
105
+ page-title: { fontSize: 32, fontWeight: 700, lineHeight: 1.18, letterSpacing: 0 }
106
+ section-title: { fontSize: 22, fontWeight: 650, lineHeight: 1.25, letterSpacing: 0 }
107
+ card-title: { fontSize: 20, fontWeight: 650, lineHeight: 1.3, letterSpacing: 0 }
108
+ metric-main: { fontSize: 34, fontWeight: 700, lineHeight: 1.05, letterSpacing: 0 }
109
+ metric-hero: { fontSize: 46, fontWeight: 700, lineHeight: 1.05, letterSpacing: 0 }
110
+ body: { fontSize: 16, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
111
+ caption: { fontSize: 14, fontWeight: 400, lineHeight: 1.35, letterSpacing: 0 }
112
+ table-head: { fontSize: 12, fontWeight: 700, lineHeight: 1.2, letterSpacing: 0.04em }
113
+ spacing:
114
+ page-x-desktop: 36
115
+ page-x-tablet: 24
116
+ page-x-mobile: 16
117
+ page-y: 28
118
+ header-gap: 16
119
+ grid-gap: 24
120
+ panel-x: 28
121
+ panel-y: 24
122
+ card-x: 28
123
+ card-y: 24
124
+ control-gap: 10
125
+ row-gap: 18
126
+ rounded:
127
+ control: 18
128
+ control-lg: 24
129
+ panel: 28
130
+ card: 24
131
+ inner-card: 18
132
+ icon-tile: 10
133
+ status-pill: 10
134
+ tooltip: 10
135
+ shadow:
136
+ panel: "0 1px 2px rgba(18, 31, 44, 0.04), 0 10px 24px rgba(18, 31, 44, 0.035)"
137
+ floating: "0 8px 24px rgba(18, 31, 44, 0.12)"
138
+ control: "0 1px 2px rgba(18, 31, 44, 0.06)"
139
+ primary_button: "0 8px 18px rgba(47, 111, 244, 0.22)"
140
+ layout_stability:
141
+ grid_align_items: stretch
142
+ panel_display: flex-column
143
+ panel_height: "100%"
144
+ overflow_policy: internal_scroll_or_truncate
145
+ spacing_policy: parent_gap_only
146
+ equal_height_rule: same_row_panels_align
147
+ min_width_policy: "min-width: 0 on all grid children"
148
+ min_height_policy: "min-height: 0 on nested flex panels"
149
+ fixed_height_tokens:
150
+ page_header: 56px
151
+ command_control: 48px
152
+ metric_card: 168px
153
+ trend_panel: 440px
154
+ side_chart_panel: 300px
155
+ ratio_panel: 300px
156
+ assistant_panel: 320px
157
+ detail_panel: 560px
158
+ quick_action_item: 82px
159
+ table_row: 76px
160
+ components:
161
+ card:
162
+ backgroundColor: "{tokens.colors.surface}"
163
+ border: "1px solid {tokens.colors.border-subtle}"
164
+ borderRadius: "{tokens.rounded.card}px"
165
+ boxShadow: "{tokens.shadow.panel}"
166
+ primary_button:
167
+ height: 48
168
+ borderRadius: "{tokens.rounded.control-lg}px"
169
+ backgroundColor: "{tokens.colors.brand}"
170
+ color: "#ffffff"
171
+ secondary_button:
172
+ height: 48
173
+ borderRadius: "{tokens.rounded.control-lg}px"
174
+ backgroundColor: "{tokens.colors.surface}"
175
+ border: "1px solid {tokens.colors.border-subtle}"
176
+ badge:
177
+ borderRadius: "{tokens.rounded.status-pill}px"
178
+ padding: "4px 10px"
179
+ inferred_modules:
180
+ quick_actions:
181
+ required_for: [工作台, 仪表盘, 管理后台, 运营首页]
182
+ confidence: inferred
183
+ rule: 截图未出现独立快捷入口,但页面类型通常需要;快捷入口应放在指标卡之后或右侧辅助列顶部,使用白色软边框容器、紧凑图标块、短标签和可选弱化说明,不引入彩色宫格或营销插画。
184
+ ---
185
+
186
+ # Soft Blue Grid Analytic Dashboard DESIGN.md
187
+
188
+ ## 1. 总览
189
+
190
+ 这是一套内容中立的浅色数据工作台视觉规范,适合把多组摘要、趋势、分布、比例、辅助输入和明细列表组织在同一个首屏或连续画布中。它的核心不是具体业务,而是“浅灰画布 + 白色软边框模块 + 蓝色单焦点可视化 + 稳定分栏网格”的组合。
191
+
192
+ 界面应保持中等信息密度:首屏能快速扫到 `page_title`、`global_filters`、`primary_metrics` 和主要 `trend_panel`,下方再承接 `detail_table` 或 `detail_list`。所有模块以中性槽位命名,具体指标、记录、商品、人名、业务状态都由后续 PRD 注入。
193
+
194
+ 这套风格的可识别感来自边界精细、留白充足、数字层级强、图表克制和局部圆角统一。生成页面时可以替换主题色和业务内容,但不能改变这些视觉母体。
195
+
196
+ ## 2. 适用场景 / 不适用场景
197
+
198
+ 适用场景:
199
+
200
+ - `dashboard`、`workbench`、`admin_console`、`analytic_overview`、`operation_home`。
201
+ - 需要同时展示 `primary_metrics`、`trend_panel`、`breakdown_panel`、`ratio_panel`、`detail_table` 的页面。
202
+ - 用户目标是快速判断状态、比较变化、查看明细、执行少量全局操作。
203
+ - 需要专业、轻量、干净、可长期使用的后台类界面。
204
+
205
+ 不适用场景:
206
+
207
+ - 营销落地页、品牌叙事页、长文章、图片画廊、沉浸式大屏。
208
+ - 高压交易系统或需要极高密度行列信息的纯表格页面。
209
+ - 需要强个性插画、深色科技感、夸张渐变背景的页面。
210
+ - 单一步骤表单或移动端原生任务流。
211
+
212
+ ## 3. 视觉氛围
213
+
214
+ - 工作台工具感强于表达型页面,整体安静、克制、可靠。
215
+ - 信息密度为 `medium`:卡片多但留白充足,数字和图表优先于大段说明。
216
+ - 视觉亮点集中在蓝色焦点元素、状态徽标、选中图表和主按钮上。
217
+ - 背景保持浅灰,面板保持白色,避免单一蓝色铺满页面。
218
+ - 边框、阴影和圆角共同制造轻浮层感,但深度必须很浅。
219
+
220
+ ## 4. 视觉 DNA / 设计母体
221
+
222
+ ### 4.1 四宫格软边框指标卡行
223
+
224
+ - **置信度**:observed
225
+ - **可见证据**:首屏顶部有一排等高白色指标卡,主数字很大,标题短,角落放小图标,趋势徽标贴近主数值。
226
+ - **复用规则**:首屏摘要必须优先出现 3-4 个 `metric_card`,桌面端同一行等高,卡片内部用标题、主值、趋势徽标、弱化对比说明组成固定结构。
227
+ - **实现钩子**:`metric_grid`、`metric_card`、`metric-main`、`delta_badge`、`icon_corner`、`comparison_caption`。
228
+ - **缺失后的失败表现**:指标卡如果高度参差、数字不突出或用强色块填充,会变成普通数据卡集合,失去轻量、精致、可扫读的首屏记忆点。
229
+
230
+ ### 4.2 右对齐胶囊命令头
231
+
232
+ - **置信度**:observed
233
+ - **可见证据**:页面标题左置,右侧筛选、次级操作、主操作组成胶囊控件组,主操作为蓝色填充。
234
+ - **复用规则**:`page_header` 必须使用左标题右命令组;筛选、选择器、次级按钮和主按钮高度一致,圆角接近胶囊,图标与文字基线对齐。
235
+ - **实现钩子**:`page_header`、`global_filters`、`date_filter`、`segmented_filter`、`secondary_button`、`primary_button`、`control_group`。
236
+ - **缺失后的失败表现**:命令散落到卡片内部或按钮样式不统一时,页面会丢失成熟仪表盘的全局操作秩序。
237
+
238
+ ### 4.3 蓝色焦点数据可视化
239
+
240
+ - **置信度**:observed
241
+ - **可见证据**:折线、选中柱、主按钮、图标和发送控件使用统一蓝色;辅助数据为浅灰、淡绿或低饱和状态色。
242
+ - **复用规则**:每个图表只设置一个主焦点色;辅助序列降低不透明度,网格线轻,tooltip 使用白底轻阴影,选中态可叠加渐变或强调标签。
243
+ - **实现钩子**:`line_chart`、`area_fill`、`bar_chart_selected`、`gauge_segment`、`chart_tooltip`、`chart-grid`。
244
+ - **缺失后的失败表现**:多色图表、厚重网格或全页面蓝色化会让视线无法聚焦,削弱原风格的专业分析感。
245
+
246
+ ### 4.4 左宽右窄模块化分析画布
247
+
248
+ - **置信度**:observed
249
+ - **可见证据**:主体区域左侧为宽趋势面板和明细表,右侧为窄分析面板纵向堆叠,模块边缘和间距稳定对齐。
250
+ - **复用规则**:桌面端主网格采用左宽右窄结构,建议 `grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr)`;左列承载主趋势和明细,右列承载辅助判断、比例、输入或推荐模块。
251
+ - **实现钩子**:`main_grid`、`left_column`、`right_rail`、`trend_panel`、`detail_table`、`auxiliary_panel`、`align-items: stretch`。
252
+ - **缺失后的失败表现**:瀑布流、随内容变高的散卡或左右列宽无规律,会破坏原图平衡的工作台画布。
253
+
254
+ ### 4.5 圆角微细节与轻量悬浮层
255
+
256
+ - **置信度**:observed
257
+ - **可见证据**:面板、按钮、输入框、表格缩略图、状态徽标和图表 tooltip 都有统一圆角;阴影很轻,不制造厚重层叠。
258
+ - **复用规则**:从大面板到小徽标使用分级圆角 token;tooltip、popover、输入区、内嵌小卡使用白底、浅边框和轻阴影。
259
+ - **实现钩子**:`rounded_tokens`、`tooltip`、`popover`、`input_shell`、`table_thumbnail`、`status_pill`、`subtle_shadow`。
260
+ - **缺失后的失败表现**:圆角尺度随机、阴影太重或局部组件裸露无边界,会让页面显得粗糙、不统一。
261
+
262
+ ## 5. 色彩角色
263
+
264
+ | Token | 值 | 用途 |
265
+ | --- | --- | --- |
266
+ | `bg-app` | `#f4f7fa` | 页面外层浅灰画布,承托白色面板 |
267
+ | `surface` | `#ffffff` | 主卡片、面板、浮层、控件背景 |
268
+ | `surface-muted` | `#f6f8fb` | 输入底、表格头、弱化容器、未选中柱 |
269
+ | `surface-soft` | `#eef2f6` | 图表中性条、轻量分割背景 |
270
+ | `text-primary` | `#0f1217` | 标题、主数字、关键文本 |
271
+ | `text-secondary` | `#6f7782` | 描述、轴标签、次级说明 |
272
+ | `text-tertiary` | `#9aa3ad` | 占位、弱按钮、辅助图标 |
273
+ | `border-subtle` | `#e4e9ef` | 面板、控件、表格行边界 |
274
+ | `border-strong` | `#d7dee7` | 选中或 hover 的边框增强 |
275
+ | `brand` | `#2f6ff4` | 主按钮、主图表序列、选中态、强调图标 |
276
+ | `brand-soft` | `#eaf2ff` | 蓝色选中背景、轻量徽标底色 |
277
+ | `status-positive` | `#39b981` | 正向趋势、通过、增长 |
278
+ | `status-positive-soft` | `#e8f8f0` | 正向徽标背景 |
279
+ | `status-negative` | `#e84f83` | 负向趋势、异常、下降 |
280
+ | `status-negative-soft` | `#fdebf2` | 负向徽标背景 |
281
+ | `status-warning` | `#f59e0b` | 注意、评分、提醒 |
282
+ | `chart-grid` | `#e9eef4` | 图表网格线和轴线 |
283
+ | `shadow-color` | `rgba(18, 31, 44, 0.08)` | 轻量投影基础色 |
284
+
285
+ 图表色序列建议:`brand` 作为主序列,`chart-muted` 作为未选中或历史序列,`status-positive` / `status-negative` 只用于表达明确状态,`chart-tertiary` 只用于第三类维度,禁止同时使用过多高饱和色。
286
+
287
+ ## 6. 字体规则
288
+
289
+ - 字体栈:`Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif`。
290
+ - `page_title`:32px / 700 / line-height 1.18。
291
+ - `section_title`:22px / 650 / line-height 1.25。
292
+ - `card_title`:20px / 650 / line-height 1.3。
293
+ - `metric_main`:34px / 700 / line-height 1.05。
294
+ - `metric_hero`:46px / 700 / line-height 1.05。
295
+ - 正文:16px / 400 / line-height 1.5。
296
+ - 辅助说明:14px / 400 / line-height 1.35。
297
+ - 表头:12px / 700 / line-height 1.2,可使用轻微大写;中文表头不强制大写。
298
+ - 所有文字 `letter-spacing: 0`,除表头可使用 `0.04em` 增强扫描。
299
+ - 数字使用 `font-variant-numeric: tabular-nums`,金额、百分比、计数和坐标轴都应对齐。
300
+ - 禁止用视口宽度缩放字号;移动端只做断点级字号调整。
301
+
302
+ ## 7. 布局原则
303
+
304
+ - 页面外层:`min-height: 100vh`,背景 `bg-app`,内边距桌面端 36px,平板 24px,移动端 16px。
305
+ - 顶部结构:`page_header` 左侧为 `page_title`,右侧为 `global_filters` 与 `global_actions`;窄屏允许换行。
306
+ - 摘要结构:`primary_metrics` 使用 4 列等高网格;空间不足时降为 2 列或单列。
307
+ - 主体结构:`main_grid` 桌面端左宽右窄,左列放主趋势和明细,右列放辅助图表、比例、输入或建议模块。
308
+ - 模块间距:统一使用父级 `gap: 24px`;组件内部再用 8/12/16/20/24px 节奏。
309
+ - 内容槽位:使用 `trend_panel`、`breakdown_panel`、`ratio_panel`、`assistant_panel`、`detail_table`、`quick_actions`、`status_note` 等中性名称,不把业务名称写死在设计规范里。
310
+
311
+ 推荐桌面结构:
312
+
313
+ ```text
314
+ page_shell
315
+ page_header
316
+ page_title
317
+ global_filters
318
+ global_actions
319
+ primary_metrics
320
+ metric_card x 3-4
321
+ main_grid
322
+ left_column
323
+ trend_panel
324
+ detail_table
325
+ right_rail
326
+ breakdown_panel
327
+ ratio_panel
328
+ assistant_or_status_panel
329
+ ```
330
+
331
+ ## 8. 布局稳定性硬规则
332
+
333
+ - 主网格必须使用 `align-items: stretch`;桌面端同一行同类面板顶部、底部对齐。
334
+ - 所有主面板使用 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。
335
+ - 面板标题区固定高度或自然高度,内容区使用 `flex: 1; min-height: 0`。
336
+ - 图表容器必须有固定高度或稳定高度范围:`trend_panel` 约 440px,`side_chart_panel` 约 300px,`ratio_panel` 约 300px。
337
+ - `metric_card` 建议 168px 高;`quick_action_item` 建议 82px 高;`detail_panel` 建议 560px 高;`table_row` 建议 76px 高。
338
+ - 表格、列表、聊天输入、图表 tooltip 和长文本必须在面板内部滚动、截断或折叠,不能撑破外层 grid。
339
+ - 页面区块间距由父级 `grid` / `flex` 的 `gap` 管理,禁止用零散 `margin-bottom` / `margin-top` 拼接大结构。
340
+ - 移动端可切为单列并解除桌面等高要求,但仍要保留控件高度、文字截断、图表固定高度和内部滚动策略。
341
+ - 禁止瀑布流、`align-items: start`、自由高度卡片、无固定高度图表容器、长内容撑破父级和外边距拼接造成的错位。
342
+
343
+ ## 9. 层级与深度
344
+
345
+ - 第一层:浅灰页面画布,无装饰渐变、无大面积图案。
346
+ - 第二层:白色面板,以 `1px` 浅边框和非常轻的阴影浮在画布上。
347
+ - 第三层:内嵌小卡、输入框、表格缩略图,使用更轻的边框和局部浅底。
348
+ - 第四层:tooltip、popover、下拉菜单,使用白底、浅边框、`floating` 阴影和 10-14px 圆角。
349
+ - 主按钮可使用蓝色阴影,但阴影范围要小,不能扩散成发光效果。
350
+ - 图表面积填充可以使用透明蓝渐变,但不应成为背景装饰。
351
+
352
+ ## 10. 形状规则
353
+
354
+ - `panel`: 28px,用于主面板和大型卡片。
355
+ - `card`: 24px,用于指标卡和分组卡片。
356
+ - `inner-card`: 18px,用于嵌套条目、输入容器、快捷入口。
357
+ - `control-lg`: 24px,用于顶部胶囊按钮和筛选器。
358
+ - `control`: 18px,用于普通输入框、选择器和组合控件。
359
+ - `status-pill`: 10px,用于趋势徽标、状态标签、短文本徽章。
360
+ - `icon-tile`: 10px,用于表格缩略图、图标容器。
361
+ - 圆角必须成体系递减,禁止在同一层级随机混用 4px、8px、32px、999px。
362
+
363
+ ## 11. 组件样式
364
+
365
+ ### 顶部栏 / 命令区
366
+
367
+ - `page_header` 高度约 56px,左侧标题,右侧控件组。
368
+ - 筛选器和按钮高度统一为 48px,白底、浅边框、胶囊圆角。
369
+ - 主操作为蓝底白字,可带图标;次级操作白底黑字。
370
+ - 控件间距 10-12px,移动端允许折行但保持统一高度。
371
+
372
+ 状态:
373
+
374
+ - hover:边框提升到 `border-strong`,白色控件背景略亮或阴影略增。
375
+ - active:蓝色按钮降低亮度到 `brand-strong`;白色控件背景改为 `surface-muted`。
376
+ - focus:显示 `2px` 蓝色 focus ring,不能只靠阴影。
377
+ - disabled:透明度 0.48,禁用点击和 hover 阴影。
378
+
379
+ ### 指标卡 / 面板
380
+
381
+ - 背景为 `surface`,边框 `border-subtle`,圆角 24-28px。
382
+ - 内边距 24-28px;标题在左上,图标在右上或标题旁。
383
+ - 主数字必须明显大于标题和说明;趋势徽标贴近数字,不另起大面积色块。
384
+ - 说明文本使用 `text-secondary`,最多两行。
385
+ - 面板标题右侧可放 `more_button`,用纯图标并提供 `aria-label`。
386
+
387
+ ### 图表
388
+
389
+ - 主序列使用蓝色,辅助序列使用浅灰、虚线或低透明度。
390
+ - 网格线和坐标轴必须低对比,轴标签使用 `text-secondary`。
391
+ - 折线可叠加淡蓝面积填充,但填充透明度不超过 18%。
392
+ - 柱状图未选中柱使用浅灰,选中柱使用蓝色垂直渐变。
393
+ - 半环图可使用分段刻度,已完成部分用状态色,未完成部分用 `chart-muted`。
394
+ - tooltip 白底、浅边框、轻阴影、10-14px 圆角;可用一条细色线标识主序列。
395
+
396
+ ### 表格 / 列表
397
+
398
+ - 表格置于白色大面板内,表头小字号、弱文字、底部分割线。
399
+ - 行高 72-76px;行间用浅虚线或浅实线分隔。
400
+ - 首列可为编号、头像、缩略图或图标容器,但必须使用统一小圆角浅底。
401
+ - 长文本使用单行截断,必要时 tooltip 展示完整内容。
402
+ - 数值列右对齐或按列对齐,状态值用颜色和图标共同表达。
403
+
404
+ ### 输入框 / 辅助输入模块
405
+
406
+ - 输入容器白底或极浅灰底,圆角 24px,内含左侧附件/辅助图标、文本输入和右侧动作按钮。
407
+ - 右侧主动作使用圆形或胶囊蓝色按钮,尺寸不小于 40px。
408
+ - 占位文本使用 `text-secondary`,真实输入文本使用 `text-primary`。
409
+
410
+ ### 标签 / 徽标
411
+
412
+ - 趋势徽标使用浅底色和小图标,文案短,内边距约 `4px 10px`。
413
+ - 正向为绿,负向为粉红,警示为琥珀;不要只靠颜色表达方向。
414
+ - 徽标不能变成大面积横幅。
415
+
416
+ ### 浮层 / 弹窗
417
+
418
+ - 使用白底、浅边框、10-16px 圆角和轻阴影。
419
+ - 宽度按内容约束,避免撑满面板。
420
+ - 浮层内容只显示关键值、短标签和必要操作,不放长说明。
421
+
422
+ ### 空状态 / 错误状态
423
+
424
+ - 空状态放在面板内容区中央,使用轻量线性图标、短标题、弱说明和一个可选次级按钮。
425
+ - 错误状态保留面板高度,展示简短错误原因和重试按钮;不要让面板塌陷。
426
+ - 加载状态使用骨架屏或淡灰占位,保持固定高度。
427
+
428
+ ## 12. 快捷入口区域
429
+
430
+ 截图未出现独立快捷入口,但该页面类型通常需要 `quick_actions`。本风格按整体视觉 DNA 推断快捷入口,置信度为 `inferred`。
431
+
432
+ - 位置:放在 `primary_metrics` 之后、`main_grid` 之前;或放在 `right_rail` 顶部作为辅助操作面板。不要抢占 `metric_card` 和主图表。
433
+ - 容器:白色软边框面板,圆角 24-28px,内边距 20-24px,阴影同普通面板。
434
+ - 条目:使用 `quick_action_item`,包含 `action_icon`、`action_label`、可选 `action_meta`、可选 `action_badge`。
435
+ - 数量:桌面端 4-8 个;超过 8 个应分组、折叠或横向滚动。
436
+ - 图标:线性或小面性图标,放在 36-40px 的浅蓝或浅灰图标容器中;不要使用大插画。
437
+ - 文字:`action_label` 14-15px / 600,一行截断;`action_meta` 12-13px / 400,弱化为 `text-secondary`。
438
+ - 状态:hover 时边框增强并出现轻微上浮;active 时背景转 `surface-muted`;focus 有蓝色 ring;disabled 降低透明度且保留布局尺寸;loading 保留条目高度并显示小型 spinner 或骨架。
439
+ - 响应式:桌面 4 列或 6 列,平板 2-4 列,移动端 2 列或横向滚动;触控目标不小于 44px。
440
+ - 与 DNA 的关系:快捷入口必须继承软边框卡片、胶囊/圆角控件、蓝色小面积焦点和父级 gap 布局。
441
+ - 禁止漂移:不要做成彩色宫格、营销卡片、超大插画入口、无边界按钮墙或深色命令面板。
442
+
443
+ ## 13. 页面结构配方
444
+
445
+ ### 配方 A:标准分析工作台
446
+
447
+ ```text
448
+ page_shell
449
+ page_header
450
+ page_title
451
+ global_filters
452
+ global_actions
453
+ primary_metrics
454
+ metric_card x 4
455
+ quick_actions
456
+ quick_action_item x 4-8
457
+ main_grid
458
+ left_column
459
+ trend_panel
460
+ detail_table
461
+ right_rail
462
+ breakdown_panel
463
+ ratio_panel
464
+ assistant_panel
465
+ ```
466
+
467
+ ### 配方 B:摘要 + 趋势 + 明细
468
+
469
+ ```text
470
+ page_shell
471
+ page_header
472
+ primary_metrics
473
+ main_grid
474
+ left_column
475
+ hero_metric_with_trend
476
+ supporting_breakdown
477
+ detail_table
478
+ right_rail
479
+ vertical_bar_panel
480
+ ratio_panel
481
+ status_note
482
+ ```
483
+
484
+ ### 配方 C:辅助输入工作台
485
+
486
+ ```text
487
+ page_shell
488
+ page_header
489
+ primary_metrics
490
+ main_grid
491
+ left_column
492
+ trend_panel
493
+ detail_list
494
+ right_rail
495
+ quick_actions
496
+ assistant_panel
497
+ supporting_media
498
+ input_shell
499
+ ```
500
+
501
+ ## 14. 状态与交互
502
+
503
+ - hover:卡片和按钮只做轻微边框增强、阴影增强或 `translateY(-1px)`;不要有大幅位移。
504
+ - active:主按钮使用更深蓝色,白色控件使用浅灰底。
505
+ - selected:用蓝色主序列、浅蓝底或蓝色描边表达;同一区域只允许一个强选中焦点。
506
+ - focus:所有按钮、输入、菜单项、表格行操作都必须有 2px focus ring。
507
+ - loading:保留原模块尺寸,用骨架线、浅灰柱或 spinner;图表加载时保持坐标区域高度。
508
+ - empty:保持面板高度,用中性空状态替代内容,不让布局塌陷。
509
+ - error:使用短文案 + 重试动作,状态色和图标同时出现。
510
+ - disabled:降低透明度到 0.48-0.56,禁用 pointer 交互。
511
+ - 动效:120-180ms,`ease-out`;图表入场可 220ms 内完成。
512
+ - reduced motion:关闭上浮和图表绘制动画,只保留状态变化。
513
+
514
+ ## 15. 响应式行为
515
+
516
+ - `>= 1200px`:使用完整结构,`primary_metrics` 4 列,主体左宽右窄。
517
+ - `900px - 1199px`:指标卡 2-4 列,右侧栏可移到主趋势下方,仍保持卡片等高。
518
+ - `640px - 899px`:顶部命令换行,主体单列或两列,表格横向滚动。
519
+ - `< 640px`:单列布局,页面边距 16px,控件高度保留 44-48px,指标卡 1-2 列。
520
+ - 移动端图表高度不低于 260px,表格使用横向滚动或列表化摘要。
521
+ - 长标题、按钮文案和表格单元格必须截断或换行,不能覆盖相邻内容。
522
+
523
+ ## 16. 可访问性
524
+
525
+ - 正文和关键数值对比度至少达到 WCAG AA;弱说明也不能低于 4.5:1 的可读阈值,除非是装饰性占位。
526
+ - 纯图标按钮必须提供 `aria-label` 和 hover/focus tooltip。
527
+ - 趋势、评分、异常不能只靠颜色表达,需配合箭头、符号、图标或文字。
528
+ - 所有交互控件触控目标不小于 44px。
529
+ - 表格必须有明确列标题;排序、筛选、选中状态需要可被辅助技术感知。
530
+ - 图表需提供摘要文本或数据表替代信息。
531
+ - 支持键盘导航,focus 顺序遵循从顶部命令到摘要、主体、明细的阅读顺序。
532
+
533
+ ## 17. 实现适配
534
+
535
+ ### CSS 变量
536
+
537
+ ```css
538
+ :root {
539
+ --oyd-bg-app: #f4f7fa;
540
+ --oyd-surface: #ffffff;
541
+ --oyd-surface-muted: #f6f8fb;
542
+ --oyd-text-primary: #0f1217;
543
+ --oyd-text-secondary: #6f7782;
544
+ --oyd-border-subtle: #e4e9ef;
545
+ --oyd-brand: #2f6ff4;
546
+ --oyd-brand-soft: #eaf2ff;
547
+ --oyd-positive: #39b981;
548
+ --oyd-negative: #e84f83;
549
+ --oyd-radius-panel: 28px;
550
+ --oyd-radius-card: 24px;
551
+ --oyd-radius-control: 24px;
552
+ --oyd-shadow-panel: 0 1px 2px rgba(18, 31, 44, 0.04), 0 10px 24px rgba(18, 31, 44, 0.035);
553
+ --oyd-gap: 24px;
554
+ }
555
+ ```
556
+
557
+ ### 布局骨架
558
+
559
+ ```css
560
+ .page-shell {
561
+ min-height: 100vh;
562
+ padding: 28px 36px;
563
+ background: var(--oyd-bg-app);
564
+ }
565
+
566
+ .main-grid {
567
+ display: grid;
568
+ grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr);
569
+ gap: var(--oyd-gap);
570
+ align-items: stretch;
571
+ }
572
+
573
+ .panel {
574
+ min-width: 0;
575
+ min-height: 0;
576
+ height: 100%;
577
+ display: flex;
578
+ flex-direction: column;
579
+ border: 1px solid var(--oyd-border-subtle);
580
+ border-radius: var(--oyd-radius-panel);
581
+ background: var(--oyd-surface);
582
+ box-shadow: var(--oyd-shadow-panel);
583
+ }
584
+
585
+ .panel-body {
586
+ flex: 1;
587
+ min-height: 0;
588
+ overflow: auto;
589
+ }
590
+ ```
591
+
592
+ ### Ant Design / React
593
+
594
+ - `Button`、`DatePicker`、`Select`、`Input` 高度统一到 44-48px,圆角设置为 18-24px。
595
+ - `Card` 不使用默认厚阴影,改为浅边框 + 轻阴影。
596
+ - 表格行高 72-76px,列标题弱化,长文本使用 `ellipsis`。
597
+ - 图表建议使用 ECharts / Recharts,主题 token 映射到 `brand`、`chart-muted`、`status-positive`、`status-negative`。
598
+
599
+ ### Yida / YidaCodeCanvas
600
+
601
+ - 页面根节点重置 `box-sizing: border-box`,避免宜搭容器默认样式影响布局。
602
+ - 图表和表格容器必须设定稳定高度,发布前检查不同宽度下是否溢出。
603
+ - 图标按钮必须带可读标签或 tooltip,适配钉钉内嵌浏览器的键盘和触控行为。
604
+
605
+ ## 18. 必须包含
606
+
607
+ - 必须保留 `soft_metric_card_row`:首屏 3-4 个等高软边框指标卡,大数字、短标题、小趋势徽标和弱说明。
608
+ - 必须保留 `pill_command_header`:左标题右命令组,胶囊筛选器和蓝色主操作对齐。
609
+ - 必须保留 `blue_focus_visualization`:图表以一个蓝色主焦点序列为核心,辅助元素低对比。
610
+ - 必须保留 `modular_two_column_canvas`:桌面端左宽右窄,左侧主分析与明细,右侧辅助模块堆叠。
611
+ - 必须保留 `rounded_micro_detail`:圆角 token、浅边框、轻阴影贯穿面板、控件、浮层和细节组件。
612
+ - 工作台、仪表盘、管理后台、运营首页必须包含 `quick_actions`,除非 PRD 明确不需要快捷入口。
613
+ - 所有图表、表格、列表、快捷入口必须有固定高度或内部滚动策略。
614
+ - 所有内容都必须使用中性槽位承载,不写死具体业务指标、商品、人物、行业术语或示例数据。
615
+
616
+ ## 19. 禁止项
617
+
618
+ - 禁止把源截图中的具体指标名、日期、商品、列表项、助手文案或示例数字写进最终业务页面。
619
+ - 禁止把页面做成深色大屏、营销 hero、图片展示页或一整屏蓝色渐变背景。
620
+ - 禁止指标卡自由高度、瀑布流排列、`align-items: start` 或用外边距拼接网格。
621
+ - 禁止图表使用多种高饱和颜色抢焦,或让辅助序列比主蓝色序列更强。
622
+ - 禁止顶部命令区控件高度不一、圆角不一、主次操作不清。
623
+ - 禁止面板阴影过重、边框过黑、圆角随机、内部元素撑破面板。
624
+ - 禁止快捷入口变成默认彩色宫格、超大插画卡、无边界图标墙或与软边框体系无关的独立模块。
625
+ - 禁止用纯颜色表达状态,必须配合图标、文字或方向符号。
626
+
627
+ ## 20. 错误 vs 正确
628
+
629
+ | 错误 | 正确 |
630
+ | --- | --- |
631
+ | 顶部摘要卡数量随机、高度随内容变化 | 3-4 个 `metric_card` 等高排列,标题、数字、徽标、说明结构稳定 |
632
+ | 页面标题、筛选器、按钮分散在不同面板里 | `page_header` 左标题右命令组,胶囊控件同高同基线 |
633
+ | 图表所有序列都使用高饱和色 | 只保留一个蓝色焦点序列,辅助序列用浅灰或低透明度 |
634
+ | 主体模块按内容自然堆叠成瀑布流 | 桌面端使用左宽右窄 `main_grid`,面板边缘对齐 |
635
+ | tooltip 和输入框无边框或阴影厚重 | 白底、浅边框、轻阴影、统一圆角 |
636
+ | 快捷入口做成彩色大按钮宫格 | `quick_actions` 继承白色软边框容器、浅图标块和蓝色小面积焦点 |
637
+ | 表格长文本撑宽页面 | 单行截断、tooltip 补充、表格容器内部横向滚动 |
638
+ | 移动端直接压缩桌面网格 | 移动端改为单列或 2 列,保留 44px 触控目标和稳定图表高度 |
639
+
640
+ ## 21. Agent 使用提示
641
+
642
+ 使用本 DESIGN.md 生成界面时,先读取 PRD 的信息拓扑,再把内容映射到 `page_title`、`global_filters`、`primary_metrics`、`trend_panel`、`breakdown_panel`、`ratio_panel`、`detail_table`、`quick_actions` 等中性槽位。视觉 DNA 必须在内容替换后保留:`soft_metric_card_row`、`pill_command_header`、`blue_focus_visualization`、`modular_two_column_canvas`、`rounded_micro_detail`。主题色只能替换小面积强调色,不能改变浅灰画布、白色软边框面板、左宽右窄网格和轻量圆角系统。工作台、仪表盘、管理后台或运营首页必须按 `quick_actions` 规则生成快捷入口区域,除非 PRD 明确排除。
643
+
644
+ ## 22. 交付自检清单
645
+
646
+ - [ ] 已把所有业务内容抽象为中性槽位,没有复制源图中的指标名、记录名、日期、示例数字或具体文案。
647
+ - [ ] 首屏存在 3-4 个等高 `metric_card`,主数字、趋势徽标和弱说明层级明确。
648
+ - [ ] 顶部使用左标题右命令组,筛选器、次级按钮、主按钮保持胶囊形和同高。
649
+ - [ ] 图表只使用一个蓝色主焦点,辅助序列、网格线、未选中状态保持低对比。
650
+ - [ ] 桌面端主体为左宽右窄网格,左列主分析和明细,右列辅助模块堆叠。
651
+ - [ ] 面板、控件、tooltip、输入框、徽标、缩略图都继承统一圆角 token。
652
+ - [ ] 快捷入口区域存在或有明确 PRD 排除理由,并继承软边框、浅图标块和蓝色小面积焦点。
653
+ - [ ] 主网格使用 `align-items: stretch`,面板使用 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。
654
+ - [ ] 图表、表格、列表、快捷入口和长文案有固定高度、内部滚动、截断或折叠策略。
655
+ - [ ] 页面区块间距由父级 `gap` 管理,没有零散外边距造成错位。
656
+ - [ ] hover、active、focus、loading、empty、error、disabled、selected 状态完整。
657
+ - [ ] 纯图标控件具备 `aria-label`,状态表达不只依赖颜色。
658
+ - [ ] 移动端单列或 2 列布局可用,控件不小于 44px,表格不会撑破屏幕。