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,300 @@
1
+ ---
2
+ version: alpha
3
+ template_type: visual_dna_preset
4
+ name: soft-curated-filter-gallery
5
+ design_id: yida-style-soft-curated-filter-gallery
6
+ design_status: draft
7
+ description: 内容中立的柔和筛选画廊视觉 DNA,适合带分类切换、筛选面板、排序控制和大图卡片浏览的选择型页面。
8
+ scenes: [curated_gallery, visual_catalog, selection_browser, item_discovery, card_market]
9
+ density: medium
10
+ layout: left_soft_filter_panel_with_visual_grid
11
+ tone: [soft, airy, curated, visual_first, approachable]
12
+ tags: [soft_filter_panel, category_tabs, visual_cards, favorite_action, histogram_range]
13
+ avoid: [dense_admin_table, executive_dashboard, long_form_content, multi_step_form, dark_console]
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: headline_tabs_toolbar
27
+ name: 标题与分类标签工具条
28
+ confidence: observed
29
+ hooks: [layout.header, components.category_tabs, components.dropdown_button, components.sort_select]
30
+ invariant: [左侧大号标题建立页面语境, 中部分类标签使用白底胶囊容器, 右侧筛选和排序控件并列, 当前分类以填充色突出]
31
+ variable: [标题语义, 分类数量, 排序维度, 是否显示筛选按钮, 当前分类名称]
32
+ - id: soft_filter_canvas
33
+ name: 柔和筛选面板
34
+ confidence: observed
35
+ hooks: [layout.filter_panel, components.search_input, components.checkbox_grid, components.option_tiles, components.range_histogram]
36
+ invariant: [筛选区使用大圆角白色面板, 分组标题醒目, 控件以两列或短网格排列, 分组之间留出明显呼吸感]
37
+ variable: [筛选字段, 控件类型, 分组数量, 是否出现搜索框, 小屏是否折叠]
38
+ - id: oversized_visual_cards
39
+ name: 大图留白卡片
40
+ confidence: observed
41
+ hooks: [layout.card_grid, components.visual_card, components.media_stage, css.aspect-ratio, css.object-fit-contain]
42
+ invariant: [卡片以大面积媒体/预览区域吸引视线, 信息区留白充足, 卡片圆角柔和, 同一行卡片高度一致]
43
+ variable: [媒体内容, 卡片列数, 信息字段, 是否展示角标, 是否有收藏动作]
44
+ - id: corner_badges_and_favorites
45
+ name: 角标与悬浮标记动作
46
+ confidence: observed
47
+ hooks: [components.corner_badge, components.favorite_button, tokens.colors.brand, tokens.colors.favorite]
48
+ invariant: [角标贴在媒体区左上, 标记动作贴在右上, 两者不占据信息区高度, 状态变化清晰但面积很小]
49
+ variable: [角标语义, 图标语义, 收藏/标记/关注动作, 是否默认高亮]
50
+ - id: visual_range_histogram
51
+ name: 轻量直方范围筛选
52
+ confidence: observed
53
+ hooks: [components.histogram_slider, components.range_slider, tokens.colors.brand-soft, tokens.colors.border-subtle]
54
+ invariant: [范围筛选用浅灰柱状纹理表达分布, 选中范围以强调色覆盖, 双端点清晰, 不渲染复杂图表坐标轴]
55
+ variable: [范围语义, 分布数据, 端点值, 是否显示输入框]
56
+ theme_adaptation:
57
+ accepts_theme_color: true
58
+ strategy: replace_hue_preserve_visual_mechanism
59
+ input: theme_color
60
+ replace_tokens: [tokens.colors.brand, tokens.colors.brand-soft, tokens.colors.brand-strong, tokens.colors.focus-ring]
61
+ derive_tokens: [tokens.colors.brand-hover, tokens.colors.brand-pressed, tokens.colors.histogram-active, tokens.colors.selected-tile-bg, tokens.colors.favorite-active]
62
+ preserve_tokens: [tokens.colors.bg-page, tokens.colors.surface, tokens.colors.media-bg, tokens.colors.text-primary, tokens.colors.text-secondary, tokens.colors.text-muted, tokens.colors.border-subtle, tokens.colors.shadow-soft]
63
+ rules:
64
+ - theme_color_only_changes_accent_hue
65
+ - do_not_tint_page_background
66
+ - do_not_turn_neutral_cards_into_colored_cards
67
+ - keep_accent_usage_small_area
68
+ - preserve_soft_white_gallery_feel
69
+ tokens:
70
+ colors:
71
+ bg-page: "#F7F7F8"
72
+ surface: "#FFFFFF"
73
+ media-bg: "#FAFAFA"
74
+ surface-muted: "#F4F5F7"
75
+ text-primary: "#111111"
76
+ text-secondary: "#69707D"
77
+ text-muted: "#A0A6B2"
78
+ border-subtle: "#E8EAEE"
79
+ border-strong: "#DADDE4"
80
+ brand: "#FF6B57"
81
+ brand-soft: "#FFF0ED"
82
+ brand-strong: "#E95B49"
83
+ brand-hover: "#F8624F"
84
+ brand-pressed: "#D94D3D"
85
+ focus-ring: "rgba(255, 107, 87, 0.28)"
86
+ histogram-active: "#FF6B57"
87
+ selected-tile-bg: "#FF6B57"
88
+ favorite-active: "#F43F45"
89
+ rating: "#FFC107"
90
+ shadow-soft: "rgba(15, 23, 42, 0.05)"
91
+ typography:
92
+ fontFamily: "Inter, PingFang SC, Microsoft YaHei, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
93
+ page-title: { fontSize: 42, fontWeight: 800, lineHeight: 1.12, letterSpacing: 0 }
94
+ section-title: { fontSize: 28, fontWeight: 800, lineHeight: 1.2, letterSpacing: 0 }
95
+ card-title: { fontSize: 22, fontWeight: 600, lineHeight: 1.32, letterSpacing: 0 }
96
+ card-value: { fontSize: 26, fontWeight: 700, lineHeight: 1.18, letterSpacing: 0 }
97
+ body: { fontSize: 17, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
98
+ meta: { fontSize: 15, fontWeight: 500, lineHeight: 1.4, letterSpacing: 0 }
99
+ spacing:
100
+ page-x-desktop: 56
101
+ page-y-desktop: 32
102
+ page-x-tablet: 28
103
+ page-x-mobile: 16
104
+ header-gap: 32
105
+ shell-gap: 32
106
+ filter-width: 460
107
+ filter-x: 24
108
+ filter-y: 34
109
+ filter-group-gap: 34
110
+ card-gap-x: 34
111
+ card-gap-y: 34
112
+ card-x: 18
113
+ card-y: 18
114
+ media-height: 292
115
+ rounded:
116
+ panel: 18
117
+ card: 14
118
+ control: 10
119
+ tab: 10
120
+ badge: 8
121
+ icon-button: 999
122
+ shadow:
123
+ panel: "0 1px 2px rgba(15, 23, 42, 0.02)"
124
+ card-hover: "0 14px 36px rgba(15, 23, 42, 0.09)"
125
+ layout_stability:
126
+ grid_align_items: stretch
127
+ panel_display: flex-column
128
+ panel_height: "100%"
129
+ overflow_policy: internal_scroll_or_truncate
130
+ spacing_policy: parent_gap_only
131
+ equal_height_rule: same_row_cards_align
132
+ fixed_height_tokens:
133
+ header_height: 72px
134
+ filter_panel_min_height: 880px
135
+ category_tabs_height: 68px
136
+ card_media: 292px
137
+ card_info: 210px
138
+ card_min_height: 520px
139
+ quality_anchors:
140
+ - id: pill_category_switcher
141
+ name: 胶囊分类切换器
142
+ required_when: PRD 包含分类、视图或对象族群切换
143
+ rule: 分类切换器必须是白底圆角容器,当前项使用小面积填充强调色,未选项保持低对比文字。
144
+ - id: soft_filter_panel
145
+ name: 柔和筛选面板
146
+ required_when: PRD 包含多组筛选条件
147
+ rule: 筛选面板使用白底大圆角、明显分组标题和两列控件节奏;不要用密集表单样式压缩筛选。
148
+ - id: large_media_stage
149
+ name: 大幅媒体承载区
150
+ required_when: PRD 对象存在图片、图标、预览或可视摘要
151
+ rule: 卡片顶部媒体区要宽松、留白充足、内容居中,加载和空态不改变高度。
152
+ - id: corner_micro_actions
153
+ name: 卡片角落微操作
154
+ required_when: PRD 需要收藏、标记、推荐或状态提示
155
+ rule: 角标和图标动作固定在媒体区角落,视觉面积小,状态明确,不能挤压标题和数值区。
156
+ - id: histogram_range_control
157
+ name: 直方范围控件
158
+ required_when: PRD 需要范围筛选并能展示分布感
159
+ rule: 用浅柱状纹理和双端点滑块表达范围;没有分布数据时可用普通范围滑块,但保留高度和留白。
160
+ quality_floor:
161
+ target: polished_visual_gallery_level
162
+ avoid_default_admin_feel: true
163
+ requires_visible_micro_detail: true
164
+ minimum_craft_signals: [pill_tabs, soft_filter_panel, large_media_frames, corner_actions, subtle_card_shadow, stable_grid_heights]
165
+ components:
166
+ header: { heightRef: layout_stability.fixed_height_tokens.header_height, gapRef: tokens.spacing.header-gap }
167
+ category_tabs: { height: 68, roundedRef: tokens.rounded.tab, backgroundRef: tokens.colors.surface }
168
+ filter_panel: { widthRef: tokens.spacing.filter-width, roundedRef: tokens.rounded.panel, backgroundRef: tokens.colors.surface }
169
+ search_input: { height: 62, roundedRef: tokens.rounded.control, borderRef: tokens.colors.border-subtle }
170
+ checkbox: { size: 28, roundedRef: tokens.rounded.control, checkedColorRef: tokens.colors.brand }
171
+ option_tile: { height: 50, roundedRef: tokens.rounded.control, selectedBgRef: tokens.colors.selected-tile-bg }
172
+ histogram_slider: { height: 120, activeRef: tokens.colors.histogram-active }
173
+ card: { roundedRef: tokens.rounded.card, backgroundRef: tokens.colors.surface, hoverShadowRef: tokens.shadow.card-hover }
174
+ media_stage: { heightRef: layout_stability.fixed_height_tokens.card_media, backgroundRef: tokens.colors.media-bg }
175
+ favorite_button: { size: 44, roundedRef: tokens.rounded.icon-button }
176
+ modules:
177
+ quick_actions:
178
+ confidence: inferred
179
+ render_policy: prd_only
180
+ placement: independent_section_between_header_and_grid
181
+ item_count: 3-6
182
+ visual_rule: 使用轻量胶囊或图标按钮,保持与分类切换器同一圆角语言。
183
+ filter_panel:
184
+ confidence: observed
185
+ render_policy: prd_required_when_filters_exist
186
+ placement: left_desktop_top_drawer_mobile
187
+ visual_grid:
188
+ confidence: observed
189
+ render_policy: prd_required_when_items_exist
190
+ placement: main_content_grid
191
+ ---
192
+
193
+ # Soft Curated Filter Gallery DESIGN.md
194
+
195
+ > front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和业务取舍以正文为准。
196
+
197
+ ## 1. 快速理解
198
+
199
+ 这个视觉 DNA 适合以大图卡片为核心的筛选浏览体验。页面先用标题和分类胶囊建立上下文,再用左侧柔和筛选面板收敛条件,右侧以等高视觉卡片承载候选对象。PRD 决定对象、字段、筛选项、分类和动作是否存在;本文件只定义柔和画廊式布局、控件形态、密度、状态和响应式。主题色可以替换当前强调色,但不能改变浅灰画布、白色卡片、大图留白和小面积角落动作这些机制。
200
+
201
+ ## 2. 使用边界
202
+
203
+ 该风格适合对象有可视预览、图标或可抽象媒体区域的页面。若 PRD 的主要任务是录入、审批、复杂表格分析或长文阅读,应选择其他视觉母体。
204
+
205
+ PRD 决定内容结构,DESIGN.md 决定 UI 风格。不要为了套用分类、角标、收藏、评分或范围筛选而创造 PRD 没有的功能。所有字段、标题、数值、分类名称和动作名称都必须来自 PRD。
206
+
207
+ ## 3. 设计风格选择与换色逻辑
208
+
209
+ 当用户目标是“浏览一批候选对象并按偏好筛选”,且对象之间需要视觉比较时选择该风格。它强调轻商业感、柔和留白、图片/预览优先和清楚的筛选路径。
210
+
211
+ 主题色只改写选中分类、勾选框、选中选项、范围控件活动段、角标、focus ring 和少量关键动作。背景、卡片、筛选面板、媒体区、中性文字和浅边框必须保持中性。不要让主题色污染整页,否则会破坏清爽的画廊气质。
212
+
213
+ ## 4. 视觉 DNA
214
+
215
+ `headline_tabs_toolbar` 要让用户在首屏快速知道当前结果语境。标题大而明确,分类切换器使用白底胶囊,右侧控制项保持统一高度。可变的是标题和分类内容,不可变的是“标题、分类、控制”的横向扫描关系。
216
+
217
+ `soft_filter_canvas` 是柔和筛选承载。它不应像后台表单,而应像独立控制面板:大圆角、分组清楚、控件松弛。小屏可折叠为抽屉,但分组节奏不变。
218
+
219
+ `oversized_visual_cards` 是主内容品质来源。卡片顶部媒体区要足够大,信息区不能过密;同一行卡片必须等高。媒体缺失时也要用图标或摘要纹理保持稳定框体。
220
+
221
+ `corner_badges_and_favorites` 用于承载短状态和微操作。角标与图标动作只占据媒体区角落,不能把卡片标题区挤乱。主题色替换后仍需保持小面积表达。
222
+
223
+ `visual_range_histogram` 让范围筛选更有质感。它是轻量纹理,不是复杂图表;没有分布数据时可以退化为普通滑块,但保留高度、端点和柔和底色。
224
+
225
+ ## 5. 视觉品质基线
226
+
227
+ 胶囊分类切换器必须有稳定高度、当前项填充色、未选项弱文字和容器阴影。它让页面避免普通标签栏的生硬感。
228
+
229
+ 柔和筛选面板通过大圆角、白底、两列控件和清晰分组提升亲和力。筛选项很少时可转为顶部弹出面板,但仍要保持相同控件语言。
230
+
231
+ 大幅媒体承载区是卡片的视觉重心。图片、图标、骨架屏和空态都必须居中,不能拉伸变形,不能改变卡片高度。
232
+
233
+ 卡片角落微操作用于收藏、标记或短状态。它提升可操作感,但只在 PRD 需要时出现。
234
+
235
+ 直方范围控件用于范围筛选;它通过浅灰柱和强调色活动段形成微细节。没有范围筛选时不要强行渲染。
236
+
237
+ ## 6. 布局规则
238
+
239
+ 页面外层使用浅灰画布和宽松内边距。桌面端采用 `grid-template-columns: minmax(320px, 460px) minmax(0, 1fr)`,主内容网格使用 `repeat(auto-fit, minmax(320px, 1fr))`。
240
+
241
+ 主 grid 必须 `align-items: stretch`。卡片、筛选面板都使用 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。媒体区域固定高度,信息区域用截断和内部布局保护高度。
242
+
243
+ 区块间距使用父级 `gap`,不要用零散 margin。分类栏和顶部控制项在窄屏允许换行,筛选面板折叠后以按钮或抽屉进入。
244
+
245
+ ## 7. PRD 槽位映射
246
+
247
+ | PRD 内容类型 | 视觉槽位 | 渲染规则 |
248
+ | --- | --- | --- |
249
+ | 页面标题或结果概览 | `page_identity` | 使用大号粗体标题;没有数量时用页面名或视图名 |
250
+ | 分类/视图切换 | `category_tabs` | 白底胶囊容器,当前项填充主题色;没有分类则隐藏 |
251
+ | 筛选条件 | `filter_panel` | 分组垂直堆叠;只渲染 PRD 存在的条件 |
252
+ | 搜索条件 | `filter_search` | 放在筛选面板顶部或工具条内,高度稳定 |
253
+ | 对象预览 | `media_stage` | 顶部大图/图标/摘要纹理;缺失时用中性占位 |
254
+ | 对象主标题 | `card_title` | 1-2 行,超长截断 |
255
+ | 首要数值或状态 | `card_value` | 靠右或靠左醒目展示,视 PRD 信息优先级决定 |
256
+ | 角标/收藏/标记 | `corner_micro_actions` | 只在 PRD 需要时渲染,不占位 |
257
+ | 范围筛选 | `histogram_range` | 有分布数据时使用直方纹理,无数据时用普通滑块 |
258
+
259
+ ## 8. 组件规则
260
+
261
+ 卡片使用白底、14px 左右圆角和轻阴影。hover 只提升阴影、边框和轻微位移,避免大面积变色。
262
+
263
+ 筛选输入、复选框、选项块和滑块要尺寸统一。选中态使用主题色,未选态保持浅灰。所有控件必须有 hover、focus、disabled 状态。
264
+
265
+ 媒体区使用中性底色和稳定高度。内容以 `object-fit: contain` 或等价策略居中,加载态用骨架,空态用短说明和图标。
266
+
267
+ 角标使用圆角矩形,收藏或标记按钮使用圆形/纯图标按钮,并提供可访问标签和 tooltip。
268
+
269
+ 排序和筛选入口使用白底按钮,边框轻,箭头图标清晰。按钮文字不能溢出,窄屏允许换行或进入更多菜单。
270
+
271
+ ## 9. 响应式与可访问性
272
+
273
+ 桌面端保留左侧筛选面板与多列卡片。平板端将筛选栏收窄,卡片降为 2 列。移动端筛选进入抽屉,卡片单列或双列,分类标签横向滚动。
274
+
275
+ 触控目标不小于 44px。纯图标动作必须有 `aria-label`。状态不能只靠颜色表达,选中态需要图标、边框或文字层级辅助。动效控制在 120-180ms,并遵守 reduced motion。
276
+
277
+ ## 10. 禁止项
278
+
279
+ 禁止复制具体业务词、示例数据、人名、品牌名、分类名或页面专属文案。
280
+
281
+ 禁止把 PRD 没有的分类、筛选项、收藏、角标、评分或范围控件强行加入页面。
282
+
283
+ 禁止把主题色铺满背景、卡片、筛选面板或媒体区。
284
+
285
+ 禁止瀑布流、自由高度卡片、媒体框随图片比例变化、长标题撑破卡片、零散 margin 拼接和默认后台质感。
286
+
287
+ ## 11. Agent 使用提示
288
+
289
+ 先读 PRD,确认对象是否适合视觉卡片、是否需要分类、筛选、排序和角落动作。再应用主题色,只替换小面积强调色,不改变浅灰画布、白底柔和面板、大图媒体区和等高卡片。实现时优先保证分类胶囊、筛选分组、媒体区、卡片高度、角落动作和移动端抽屉的完整状态。
290
+
291
+ ## 12. 交付自检清单
292
+
293
+ - 内容是否全部来自 PRD。
294
+ - 是否保留大标题、分类胶囊、柔和筛选面板和大图卡片网格。
295
+ - 主题色是否只用于小面积选中态和动作态。
296
+ - 卡片媒体区是否固定高度且不变形。
297
+ - 同一行卡片是否等高。
298
+ - 筛选控件、排序按钮和图标动作状态是否完整。
299
+ - 小屏筛选是否折叠为抽屉或顶部入口。
300
+ - 是否避免了具体业务绑定、默认后台质感和瀑布流。