openyida 2026.9.21 → 2026.9.22-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -20
- package/bin/yida.js +6 -11
- package/lib/app/app-list.js +3 -7
- package/lib/app/canvas-compile.js +12 -22
- package/lib/app/check-prd-completeness.js +0 -7
- package/lib/app/create-app.js +1 -4
- package/lib/app/create-form/args.js +12 -37
- package/lib/app/create-form/batch.js +11 -86
- package/lib/app/create-form.js +86 -193
- package/lib/app/create-page.js +17 -84
- package/lib/app/custom-theme.js +0 -11
- package/lib/app/form-field-validator.js +41 -26
- package/lib/app/form-open-guard.js +10 -97
- package/lib/app/get-form-config.js +0 -1
- package/lib/app/inline-css-guard.js +31 -1
- package/lib/app/services/form-compiler.js +4 -2
- package/lib/app/theme-from-design.js +41 -144
- package/lib/app/theme-presets.js +1 -1
- package/lib/app/update-app.js +13 -63
- package/lib/asset/ai-image.js +9 -59
- package/lib/asset/asset-cmd.js +7 -18
- package/lib/asset/asset-plan.js +9 -102
- package/lib/asset/asset-resolve.js +10 -55
- package/lib/asset/asset-status.js +4 -5
- package/lib/asset/host-capabilities.js +2 -11
- package/lib/asset/url-verify.js +4 -19
- package/lib/auth/dws-sync.js +148 -0
- package/lib/auth/token-auth.js +73 -9
- package/lib/auth/token-store.js +50 -0
- package/lib/connector/connector-test.js +5 -19
- package/lib/connector/contract.js +1 -3
- package/lib/core/agent-capabilities.js +16 -19
- package/lib/core/command-manifest.js +40 -329
- package/lib/core/locales/en.js +17 -74
- package/lib/core/locales/zh.js +16 -73
- package/lib/core/redact.js +10 -15
- package/lib/core/sample.js +30 -72
- package/lib/core/utils.js +4 -0
- package/lib/design-plan/design-plan.js +4 -51
- package/lib/design-plan/init.js +26 -121
- package/lib/design-plan/materialize.js +348 -451
- package/lib/design-plan/normalize.js +29 -74
- package/lib/design-plan/parallel.js +16 -71
- package/lib/design-plan/patch.js +16 -63
- package/lib/design-plan/preview.js +8 -6
- package/lib/design-plan/validate.js +11 -71
- package/lib/process/create-process.js +50 -84
- package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
- package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
- package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
- package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
- package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
- package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
- package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
- package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
- package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
- package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
- package/package.json +1 -3
- package/scripts/postinstall.js +3 -3
- package/yida-skills/SKILL.md +16 -19
- package/yida-skills/references/official-example-schema-patterns.md +1 -1
- package/yida-skills/references/yida-api.md +0 -4
- package/yida-skills/skills/yida-app/SKILL.md +23 -46
- package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
- package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
- package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
- package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
- package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
- package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
- package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
- package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
- package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
- package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
- package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
- package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
- package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
- package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
- package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
- package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
- package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
- package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
- package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
- package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
- package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
- package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
- package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
- package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
- package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
- package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
- package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
- package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
- package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
- package/yida-skills/skills/yida-design/SKILL.md +14 -29
- package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
- package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
- package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
- package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
- package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
- package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
- package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
- package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
- package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
- package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
- package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
- package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
- package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
- package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
- package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
- package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
- package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
- package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
- package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
- package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
- package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
- package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
- package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
- package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
- package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
- package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
- package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
- package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
- package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
- package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
- package/yida-skills/skills/yida-integration/SKILL.md +0 -1
- package/yida-skills/skills/yida-login/SKILL.md +0 -2
- package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
- package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
- package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
- package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
- package/yida-skills/skills/yida-prd/SKILL.md +3 -5
- package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
- package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
- package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
- package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
- package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
- package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
- package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
- package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
- package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
- package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
- package/yida-skills/skills-index.json +16 -36
- package/lib/app/application-entry-urls.js +0 -31
- package/lib/app/application-style.js +0 -69
- package/lib/app/canvas-icon-exports.json +0 -6160
- package/lib/app/canvas-icon-guard.js +0 -87
- package/lib/app/canvas-navigation-guard.js +0 -84
- package/lib/app/canvas-path-guard.js +0 -78
- package/lib/app/canvas-theme-guard.js +0 -184
- package/lib/app/form-data-response-guard.js +0 -57
- package/lib/asset/asset-execution.js +0 -79
- package/lib/core/css-structure.js +0 -37
- package/lib/design/check-design.js +0 -51
- package/lib/design/document.js +0 -458
- package/lib/design/icon-contrast.js +0 -85
- package/lib/design/page-content.js +0 -11
- package/lib/design-plan/artifact-updates.js +0 -117
- package/lib/design-plan/confirmation.js +0 -13
- package/lib/design-plan/entry-navigation.js +0 -97
- package/lib/design-plan/navigation-policy.js +0 -38
- package/lib/design-plan/rebase.js +0 -60
- package/lib/design-plan/themes.js +0 -101
- package/lib/design-plan/visual-policy.js +0 -42
- package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
- package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
- package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
- package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
- package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
- package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
- package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
- package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
- package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
- package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
- package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
- package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
- package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
- package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
- package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
- package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
- package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
- package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: alpha
|
|
3
|
+
template_type: visual_dna_preset
|
|
4
|
+
name: filterable-card-catalog
|
|
5
|
+
design_id: yida-style-filterable-card-catalog
|
|
6
|
+
design_status: draft
|
|
7
|
+
description: 内容中立的筛选型卡片目录视觉 DNA,适合需要左侧条件收敛、顶部结果控制和多列对象卡片浏览的页面。
|
|
8
|
+
scenes: [catalog_page, search_results, resource_gallery, selection_console, inventory_browser]
|
|
9
|
+
density: medium-high
|
|
10
|
+
layout: left_filter_rail_with_card_grid
|
|
11
|
+
tone: [clean, commercial, scannable, light, action_ready]
|
|
12
|
+
tags: [filter_rail, result_toolbar, card_grid, chip_filters, compact_actions]
|
|
13
|
+
avoid: [single_form_flow, long_text_reading, executive_dashboard, immersive_landing_page, data_heavy_table_only]
|
|
14
|
+
selection:
|
|
15
|
+
best_for: [筛选目录页, 搜索结果页, 资源选择页, 卡片列表页, 轻量采购/分发/选择控制台]
|
|
16
|
+
user_intent: [快速筛选, 浏览比较, 选择条目, 批量定位, 从候选对象中进入操作]
|
|
17
|
+
visual_tone: [明亮克制, 条理清晰, 电商式可扫描, 中高密度, 强调色小面积点亮]
|
|
18
|
+
avoid_for: [纯表单录入, 深色展示大屏, 长文内容页, 单一详情页, 需要复杂图表分析的工作台]
|
|
19
|
+
policies:
|
|
20
|
+
prd_first: true
|
|
21
|
+
content_neutral: true
|
|
22
|
+
no_source_locked_content: true
|
|
23
|
+
quick_actions_rendered_by_prd: true
|
|
24
|
+
theme_can_change_hue_not_dna: true
|
|
25
|
+
visual_dna:
|
|
26
|
+
- id: left_filter_rail
|
|
27
|
+
name: 固定筛选侧栏
|
|
28
|
+
confidence: observed
|
|
29
|
+
hooks: [layout.sidebar, components.checkbox, components.range_slider, components.segmented_option, tokens.spacing.sidebar_gap]
|
|
30
|
+
invariant: [左侧独立筛选栏与主内容并列, 筛选分组垂直堆叠, 控件对齐清晰, 侧栏使用浅边框承载而非深色块]
|
|
31
|
+
variable: [筛选字段数量, 分组名称, 控件类型, 是否吸顶, 侧栏在小屏折叠为抽屉]
|
|
32
|
+
- id: result_toolbar_with_chips
|
|
33
|
+
name: 结果工具条与条件胶囊
|
|
34
|
+
confidence: observed
|
|
35
|
+
hooks: [layout.toolbar, components.filter_chip, components.select, components.view_toggle, components.clear_action]
|
|
36
|
+
invariant: [结果摘要在左, 排序和视图切换在右, 已选条件以圆角胶囊横向排列, 清除入口使用强调色文本]
|
|
37
|
+
variable: [结果摘要文案, 筛选条件数量, 排序维度, 视图切换模式, 工具条是否换行]
|
|
38
|
+
- id: uniform_media_card_grid
|
|
39
|
+
name: 等高媒体卡片矩阵
|
|
40
|
+
confidence: observed
|
|
41
|
+
hooks: [layout.card_grid, components.item_card, components.media_frame, css.aspect-ratio, css.align-items-stretch]
|
|
42
|
+
invariant: [主区域使用规则多列网格, 卡片等宽等高, 顶部保留稳定媒体框, 信息区固定层级, 同一行高度一致]
|
|
43
|
+
variable: [卡片列数, 媒体类型, 主标题长度, 辅助信息种类, 操作按钮数量]
|
|
44
|
+
- id: compact_value_and_meta
|
|
45
|
+
name: 紧凑价值信息层
|
|
46
|
+
confidence: observed
|
|
47
|
+
hooks: [components.primary_value, components.secondary_value, components.meta_pill, components.inline_divider]
|
|
48
|
+
invariant: [主数值大号加粗, 次级数值弱化并可用细线划分, 元信息用胶囊或短行承载, 信息区高度稳定]
|
|
49
|
+
variable: [数值语义, 是否展示历史值/对比值, 元信息类型, 状态语义, 辅助指标个数]
|
|
50
|
+
- id: small_area_accent_actions
|
|
51
|
+
name: 小面积高饱和操作点
|
|
52
|
+
confidence: observed
|
|
53
|
+
hooks: [tokens.colors.brand, tokens.colors.rating, components.icon_button, components.badge, components.range_slider]
|
|
54
|
+
invariant: [强调色只用于勾选、滑块、胶囊、图标按钮和关键文本, 大面积背景保持中性, 操作按钮圆形且易识别]
|
|
55
|
+
variable: [主题色相, 操作图标, 状态颜色, hover/focus 反馈, 是否出现次级强调色]
|
|
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.accent-pill-bg, tokens.colors.accent-track, tokens.colors.status-positive-soft]
|
|
62
|
+
preserve_tokens: [tokens.colors.bg-page, tokens.colors.surface, tokens.colors.surface-muted, tokens.colors.surface-raised, tokens.colors.text-primary, tokens.colors.text-secondary, tokens.colors.text-muted, tokens.colors.border-subtle, tokens.colors.border-strong, 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
|
+
- keep_media_frames_neutral_and_consistent
|
|
69
|
+
tokens:
|
|
70
|
+
colors:
|
|
71
|
+
bg-page: "#FFFFFF"
|
|
72
|
+
surface: "#FFFFFF"
|
|
73
|
+
surface-muted: "#F1F3F6"
|
|
74
|
+
surface-raised: "#FFFFFF"
|
|
75
|
+
text-primary: "#111318"
|
|
76
|
+
text-secondary: "#6F7480"
|
|
77
|
+
text-muted: "#9AA0AB"
|
|
78
|
+
border-subtle: "#E7EAF0"
|
|
79
|
+
border-strong: "#D9DDE6"
|
|
80
|
+
brand: "#FF6A00"
|
|
81
|
+
brand-soft: "#FFF0E5"
|
|
82
|
+
brand-strong: "#E85C00"
|
|
83
|
+
brand-hover: "#F56400"
|
|
84
|
+
brand-pressed: "#D85200"
|
|
85
|
+
focus-ring: "rgba(255, 106, 0, 0.28)"
|
|
86
|
+
accent-pill-bg: "#FFC21A"
|
|
87
|
+
accent-track: "#FF6A00"
|
|
88
|
+
status-positive-soft: "#EAF6FF"
|
|
89
|
+
shadow-soft: "rgba(17, 24, 39, 0.06)"
|
|
90
|
+
typography:
|
|
91
|
+
fontFamily: "Inter, PingFang SC, Microsoft YaHei, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
92
|
+
page-title: { fontSize: 22, fontWeight: 700, lineHeight: 1.25, letterSpacing: 0 }
|
|
93
|
+
section-title: { fontSize: 18, fontWeight: 700, lineHeight: 1.35, letterSpacing: 0 }
|
|
94
|
+
card-value: { fontSize: 28, fontWeight: 800, lineHeight: 1.12, letterSpacing: 0 }
|
|
95
|
+
card-title: { fontSize: 16, fontWeight: 700, lineHeight: 1.35, letterSpacing: 0 }
|
|
96
|
+
body: { fontSize: 15, fontWeight: 400, lineHeight: 1.5, letterSpacing: 0 }
|
|
97
|
+
meta: { fontSize: 14, fontWeight: 500, lineHeight: 1.4, letterSpacing: 0 }
|
|
98
|
+
spacing:
|
|
99
|
+
page-x-desktop: 48
|
|
100
|
+
page-y-desktop: 18
|
|
101
|
+
page-x-tablet: 24
|
|
102
|
+
page-x-mobile: 16
|
|
103
|
+
shell-gap: 42
|
|
104
|
+
sidebar-width: 460
|
|
105
|
+
sidebar-x: 32
|
|
106
|
+
sidebar-y: 34
|
|
107
|
+
sidebar-group-gap: 38
|
|
108
|
+
toolbar-gap: 20
|
|
109
|
+
chip-gap: 12
|
|
110
|
+
grid-gap-x: 34
|
|
111
|
+
grid-gap-y: 34
|
|
112
|
+
card-x: 22
|
|
113
|
+
card-y: 24
|
|
114
|
+
media-padding: 26
|
|
115
|
+
rounded:
|
|
116
|
+
sidebar: 12
|
|
117
|
+
card: 8
|
|
118
|
+
media: 8
|
|
119
|
+
control: 9
|
|
120
|
+
chip: 999
|
|
121
|
+
icon-button: 999
|
|
122
|
+
shadow:
|
|
123
|
+
panel: "0 1px 2px rgba(17, 24, 39, 0.03)"
|
|
124
|
+
card-hover: "0 10px 28px rgba(17, 24, 39, 0.10)"
|
|
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
|
+
sidebar_min_height: 720px
|
|
134
|
+
toolbar_height: 72px
|
|
135
|
+
chip_row_min_height: 58px
|
|
136
|
+
media_frame_desktop: 230px
|
|
137
|
+
card_info_area: 210px
|
|
138
|
+
card_min_height: 440px
|
|
139
|
+
card_row_gap: 34px
|
|
140
|
+
quality_anchors:
|
|
141
|
+
- id: crisp_filter_rail
|
|
142
|
+
name: 清晰分组筛选栏
|
|
143
|
+
required_when: PRD 包含多条件筛选、范围筛选或状态筛选
|
|
144
|
+
rule: 侧栏必须使用明确标题、分组间距、统一控件高度和轻边框;选中态只用小面积强调色,未选中态保持安静。
|
|
145
|
+
- id: removable_filter_chips
|
|
146
|
+
name: 可移除条件胶囊
|
|
147
|
+
required_when: PRD 需要展示当前已选筛选条件
|
|
148
|
+
rule: 条件胶囊使用白底、浅边框、圆角胶囊和小型关闭图标;胶囊横向排列并允许换行,清除入口使用强调色文本。
|
|
149
|
+
- id: stable_media_grid
|
|
150
|
+
name: 稳定媒体卡片网格
|
|
151
|
+
required_when: PRD 的主要对象适合以卡片浏览、比较或选择
|
|
152
|
+
rule: 每张卡片顶部都有固定比例媒体/预览区域,主体信息在同一基线展开,整行卡片高度一致,hover 只提升阴影和边框精度。
|
|
153
|
+
- id: bold_primary_value_row
|
|
154
|
+
name: 强主值与弱辅助值
|
|
155
|
+
required_when: PRD 对象存在价格、分数、容量、进度、优先级或其他首要数值
|
|
156
|
+
rule: 主值大号粗体靠左,辅助值低对比并缩小;不要让两个数值抢同一层级,比较关系可用细线、弱化文本或短装饰线表达。
|
|
157
|
+
- id: round_accent_action
|
|
158
|
+
name: 圆形强调操作按钮
|
|
159
|
+
required_when: PRD 中每个卡片有主要快捷操作
|
|
160
|
+
rule: 主要操作使用固定尺寸圆形图标按钮并贴近卡片右下信息区;按钮需有 hover、focus、disabled 和 loading 状态。
|
|
161
|
+
- id: dense_but_breathing_spacing
|
|
162
|
+
name: 中高密度留白节奏
|
|
163
|
+
required_when: 页面同时包含侧栏、工具条和三列以上卡片
|
|
164
|
+
rule: 页面保持大块区域分明,卡片内部留白紧凑但不拥挤;靠父级 gap 管理间距,避免零散 margin 破坏对齐。
|
|
165
|
+
quality_floor:
|
|
166
|
+
target: polished_catalog_level
|
|
167
|
+
avoid_default_admin_feel: true
|
|
168
|
+
requires_visible_micro_detail: true
|
|
169
|
+
minimum_craft_signals: [precise_filter_alignment, stable_card_heights, neutral_media_frames, removable_chips, small_area_accent, complete_interaction_states]
|
|
170
|
+
components:
|
|
171
|
+
page_shell:
|
|
172
|
+
backgroundRef: tokens.colors.bg-page
|
|
173
|
+
paddingXRef: tokens.spacing.page-x-desktop
|
|
174
|
+
gapRef: tokens.spacing.shell-gap
|
|
175
|
+
sidebar:
|
|
176
|
+
widthRef: tokens.spacing.sidebar-width
|
|
177
|
+
backgroundRef: tokens.colors.surface
|
|
178
|
+
borderRef: tokens.colors.border-subtle
|
|
179
|
+
roundedRef: tokens.rounded.sidebar
|
|
180
|
+
filter_group:
|
|
181
|
+
titleStyleRef: tokens.typography.section-title
|
|
182
|
+
gap: 16
|
|
183
|
+
checkbox:
|
|
184
|
+
size: 28
|
|
185
|
+
roundedRef: tokens.rounded.control
|
|
186
|
+
checkedColorRef: tokens.colors.brand
|
|
187
|
+
range_slider:
|
|
188
|
+
trackHeight: 8
|
|
189
|
+
thumbSize: 24
|
|
190
|
+
activeTrackRef: tokens.colors.accent-track
|
|
191
|
+
input:
|
|
192
|
+
height: 56
|
|
193
|
+
roundedRef: tokens.rounded.control
|
|
194
|
+
borderRef: tokens.colors.border-subtle
|
|
195
|
+
filter_chip:
|
|
196
|
+
height: 58
|
|
197
|
+
roundedRef: tokens.rounded.chip
|
|
198
|
+
borderRef: tokens.colors.border-subtle
|
|
199
|
+
card:
|
|
200
|
+
backgroundRef: tokens.colors.surface
|
|
201
|
+
roundedRef: tokens.rounded.card
|
|
202
|
+
borderRef: tokens.colors.border-subtle
|
|
203
|
+
hoverShadowRef: tokens.shadow.card-hover
|
|
204
|
+
media_frame:
|
|
205
|
+
backgroundRef: tokens.colors.surface-muted
|
|
206
|
+
heightRef: layout_stability.fixed_height_tokens.media_frame_desktop
|
|
207
|
+
icon_button:
|
|
208
|
+
size: 46
|
|
209
|
+
roundedRef: tokens.rounded.icon-button
|
|
210
|
+
backgroundRef: tokens.colors.brand
|
|
211
|
+
modules:
|
|
212
|
+
quick_actions:
|
|
213
|
+
confidence: inferred
|
|
214
|
+
render_policy: prd_only
|
|
215
|
+
placement: independent_section_above_grid_or_toolbar_extension
|
|
216
|
+
item_count: 3-8
|
|
217
|
+
visual_rule: 使用紧凑图标按钮或轻量胶囊入口,不能挤占筛选侧栏,也不能替代卡片主操作。
|
|
218
|
+
filter_rail:
|
|
219
|
+
confidence: observed
|
|
220
|
+
render_policy: prd_required_when_filters_exist
|
|
221
|
+
placement: left_side_desktop_drawer_mobile
|
|
222
|
+
result_grid:
|
|
223
|
+
confidence: observed
|
|
224
|
+
render_policy: prd_required_when_items_exist
|
|
225
|
+
placement: main_content_below_toolbar
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
# Filterable Card Catalog DESIGN.md
|
|
229
|
+
|
|
230
|
+
> front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和业务取舍以正文为准。
|
|
231
|
+
|
|
232
|
+
## 1. 快速理解
|
|
233
|
+
|
|
234
|
+
这个视觉 DNA 的核心是左侧筛选栏、顶部结果控制区和主区域等高卡片矩阵。它适合把一组可比较对象以图片、图标、摘要或预览块承载,并让用户通过筛选、排序和视图切换快速收敛范围。PRD 决定页面展示什么对象、哪些字段可筛选、是否有主操作;本文件只约束视觉母体、组件形态、密度、状态和响应式。默认强调色是小面积操作色,可被主题色替换,但不能改变白底、浅灰媒体框、圆角胶囊和规则网格这些机制。编码结果必须有清晰对齐、稳定卡片高度和完整交互状态,不能退化成普通后台列表。
|
|
235
|
+
|
|
236
|
+
## 2. 使用边界
|
|
237
|
+
|
|
238
|
+
PRD 决定内容、功能、信息架构、业务优先级和模块是否存在。没有筛选需求时,不要强行渲染左侧筛选栏;没有可卡片化对象时,不要把表格数据硬改成卡片;没有快捷操作时,不要虚构卡片按钮。
|
|
239
|
+
|
|
240
|
+
DESIGN.md 约束的是视觉 DNA:并列式页面骨架、筛选控件层级、结果工具条、胶囊条件、卡片网格、媒体框比例、信息密度、强调色使用边界、响应式折叠和可访问性。
|
|
241
|
+
|
|
242
|
+
禁止复制任何风格材料中的具体字段、示例数据、品牌词、对象名称、分类名称或页面专属文案。所有标题、字段、数值和操作名称都必须来自 PRD。
|
|
243
|
+
|
|
244
|
+
## 3. 设计风格选择与换色逻辑
|
|
245
|
+
|
|
246
|
+
当页面主要任务是“筛选一组候选对象并浏览比较”,且内容可以被拆成重复卡片时,优先选择该风格。典型信息拓扑是:左侧筛选条件、顶部结果摘要与排序控制、已选条件胶囊、主内容卡片网格、卡片内主值与辅助信息、卡片级快捷操作。
|
|
247
|
+
|
|
248
|
+
默认强调色只代表“可操作、已选中、关键动作”的视觉层级,不是 DNA 本身。主题色输入后,只改写 `brand`、`brand-soft`、`focus-ring`、滑块活动轨道、按钮 hover/pressed 和少量状态辅助色。页面背景、卡片底、媒体框、浅边框、中性文字、卡片圆角、等高网格和侧栏结构必须保持不变。
|
|
249
|
+
|
|
250
|
+
不要把主题色铺满页面背景、筛选栏底色、卡片底色或媒体框。该风格的品质来自大量中性留白与小面积高饱和强调之间的对比。
|
|
251
|
+
|
|
252
|
+
## 4. 视觉 DNA
|
|
253
|
+
|
|
254
|
+
`left_filter_rail` 是页面的条件收敛机制。它必须是独立侧栏,拥有清楚的标题、分组和控件节奏。可变的是字段、控件和折叠方式;不可变的是侧栏和主内容的并列关系,以及浅边框白底的轻量容器气质。缺失时页面会变成普通卡片墙,筛选任务不再清晰。
|
|
255
|
+
|
|
256
|
+
`result_toolbar_with_chips` 是主内容区的上下文说明机制。结果摘要、排序控件、视图切换和条件胶囊应该在首屏上方可见。可变的是文案和控制项,不可变的是“左摘要、右操作、下方胶囊条件”的扫描路径。缺失时用户无法理解当前列表状态和筛选结果。
|
|
257
|
+
|
|
258
|
+
`uniform_media_card_grid` 是主要浏览机制。卡片必须使用规则网格、固定媒体框和稳定信息区,同一行高度一致。可变的是媒体内容、列数和字段数量,不可变的是等高、对齐和媒体框比例。缺失时页面会出现自由高度卡片和破碎视觉节奏。
|
|
259
|
+
|
|
260
|
+
`compact_value_and_meta` 是卡片内部的层级机制。主值大号加粗,辅助值弱化,元信息以胶囊、短文本或分隔线承载。可变的是数值语义和辅助信息,不可变的是主值明显优先、辅助信息轻量靠后的层级。缺失时卡片会失去比较效率。
|
|
261
|
+
|
|
262
|
+
`small_area_accent_actions` 是操作识别机制。强调色只出现在勾选、滑块、胶囊、按钮和关键文本上。可变的是主题色相和图标语义,不可变的是小面积高饱和使用和中性大面积背景。缺失时页面会过于平淡;滥用时会显得廉价和嘈杂。
|
|
263
|
+
|
|
264
|
+
## 5. 视觉品质基线
|
|
265
|
+
|
|
266
|
+
清晰分组筛选栏用于承载多条件筛选。它通过明确分组标题、统一控件尺寸和垂直节奏,让用户快速判断条件集合。若 PRD 筛选项很少,可替换为顶部横向筛选条,但仍要保留分组清晰、控件尺寸一致和选中态明确。
|
|
267
|
+
|
|
268
|
+
可移除条件胶囊用于展示当前筛选状态。胶囊必须有圆角、浅边框、小关闭图标和足够水平内边距。若 PRD 不需要展示已选条件,可将同等品质用于标签筛选、分段控件或当前视图提示。
|
|
269
|
+
|
|
270
|
+
稳定媒体卡片网格用于承载主要对象。媒体框固定高度并使用中性浅灰底,信息区按照主值、标题、元信息、操作的顺序组织。若对象没有图片或预览,可用图标、缩略摘要、状态纹理或首字母块替代,但框体比例仍要稳定。
|
|
271
|
+
|
|
272
|
+
强主值与弱辅助值用于提升比较效率。主值必须清楚、有重量、有一致基线;辅助值不能抢层级。若 PRD 不存在数值,可用主状态、主标题或关键摘要替代该层级。
|
|
273
|
+
|
|
274
|
+
圆形强调操作按钮用于卡片级主要动作。按钮尺寸固定,位置稳定,图标语义清晰。没有主操作时不要渲染空按钮,可改用 hover 后出现的轻量文本链接或整卡进入详情。
|
|
275
|
+
|
|
276
|
+
中高密度留白节奏要求页面看起来信息充足但不拥挤。筛选栏、工具条和卡片网格都要依赖父级 `gap`,不要用零散 margin 拼出空间。
|
|
277
|
+
|
|
278
|
+
## 6. 布局规则
|
|
279
|
+
|
|
280
|
+
桌面端优先使用双栏布局:左侧 `filter_rail`,右侧 `main_results`。外层页面使用 `display: grid`,列宽为 `minmax(280px, 460px) minmax(0, 1fr)`,列间距使用 `tokens.spacing.shell-gap`。主内容内部依次放置 `result_toolbar`、`active_filter_chips`、`result_grid`。
|
|
281
|
+
|
|
282
|
+
卡片网格使用 `display: grid`,桌面端建议 `repeat(auto-fit, minmax(260px, 1fr))`,宽屏可以限制为 4 列或由容器宽度决定。主 grid 必须 `align-items: stretch`。卡片设置 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`、`flex-direction: column`。
|
|
283
|
+
|
|
284
|
+
媒体框使用固定高度或固定 `aspect-ratio`,不能被图片、图标或加载态撑开。卡片信息区用固定顺序和稳定间距组织,长标题最多 2 行截断,辅助信息 1 行截断。长内容应该内部滚动、截断或折叠。
|
|
285
|
+
|
|
286
|
+
区块间距由父级 `gap` 管理。禁止在卡片、筛选组和工具条之间堆叠临时 margin,避免不同状态下布局漂移。
|
|
287
|
+
|
|
288
|
+
## 7. PRD 槽位映射
|
|
289
|
+
|
|
290
|
+
| PRD 内容类型 | 视觉槽位 | 渲染规则 |
|
|
291
|
+
| --- | --- | --- |
|
|
292
|
+
| 页面对象集合 | `result_grid` | 使用等高卡片矩阵;没有卡片化需求时改用 PRD 指定的列表或表格,不强行套用 |
|
|
293
|
+
| 对象主图、图标或预览 | `media_frame` | 放在卡片顶部固定比例区域;缺失时使用中性占位、图标或摘要纹理 |
|
|
294
|
+
| 对象主值或关键状态 | `primary_value` | 大号粗体靠左;没有数值时用主状态或主标题承担首要层级 |
|
|
295
|
+
| 对象标题 | `card_title` | 2 行内截断,保持同一卡片区块高度稳定 |
|
|
296
|
+
| 次级信息 | `meta_row` | 使用短文本、胶囊、分隔线或小图标;不能堆成长段描述 |
|
|
297
|
+
| 多条件筛选 | `filter_rail` | 桌面端左侧栏,小屏抽屉;只渲染 PRD 中存在的筛选项 |
|
|
298
|
+
| 当前条件 | `active_filter_chips` | 条件多于 1 个时显示可移除胶囊;没有当前条件则隐藏 |
|
|
299
|
+
| 排序与视图切换 | `result_toolbar` | 右侧对齐,控件高度统一;没有排序需求则不渲染 |
|
|
300
|
+
| 卡片主操作 | `card_primary_action` | 固定尺寸圆形图标按钮或明确文本按钮;没有主操作则不占位 |
|
|
301
|
+
| 快捷入口 | `quick_actions` | 由 PRD 决定是否渲染;作为独立区块或工具条扩展,不塞入侧栏尾部 |
|
|
302
|
+
|
|
303
|
+
## 8. 组件规则
|
|
304
|
+
|
|
305
|
+
卡片和面板使用白底、浅边框、8px 左右圆角和轻阴影。默认状态应非常克制,hover 时只提升边框对比、阴影和轻微上移,不能出现大面积彩色底。
|
|
306
|
+
|
|
307
|
+
筛选控件必须尺寸统一。复选框、单选、分段选项、范围滑块和输入框都要有明确 focus ring。选中态使用 `brand`,禁用态降低透明度但保留边框。
|
|
308
|
+
|
|
309
|
+
条件胶囊使用白底浅边框,关闭图标放在右侧,图标按钮至少 24px 可点区域。胶囊过多时允许横向滚动或换行,但不能压缩主内容标题。
|
|
310
|
+
|
|
311
|
+
媒体框使用 `surface-muted`,图片或预览内容居中展示,保持 `object-fit: contain` 或等价策略。加载态用浅灰骨架,不改变框体尺寸。空态用中性图标和短说明,不能使用长文。
|
|
312
|
+
|
|
313
|
+
主值行使用大号粗体,辅助值和比较信息使用 `text-muted`。若需要表达修正、变化或对比,使用细线、浅色文本或短图形标记,不要引入复杂图表。
|
|
314
|
+
|
|
315
|
+
按钮分为主要操作、次要操作和图标操作。主要操作可使用小面积主题色;次要操作使用白底边框;纯图标按钮必须有可访问标签和 tooltip。所有按钮都要覆盖 hover、focus、pressed、loading、disabled 状态。
|
|
316
|
+
|
|
317
|
+
## 9. 响应式与可访问性
|
|
318
|
+
|
|
319
|
+
宽屏保持左侧筛选栏和多列卡片矩阵。中等屏幕可将筛选栏收窄,卡片降为 2-3 列。小屏幕把筛选栏折叠为抽屉或顶部筛选按钮,卡片使用单列或双列,工具条允许分行。
|
|
320
|
+
|
|
321
|
+
触控目标不小于 44px。纯图标按钮必须有 `aria-label` 或等价文本。focus ring 使用 `tokens.colors.focus-ring`,不能只依赖颜色表达状态。
|
|
322
|
+
|
|
323
|
+
长标题、长条件名和长数值都要有截断策略。小屏下胶囊行可横向滚动,并保留清除入口。动效控制在 120-180ms,遵守 reduced motion,禁用夸张缩放和大幅位移。
|
|
324
|
+
|
|
325
|
+
## 10. 禁止项
|
|
326
|
+
|
|
327
|
+
禁止复制具体业务内容、示例数据、对象名称、品牌词、分类名称或页面专属文案。
|
|
328
|
+
|
|
329
|
+
禁止让 DESIGN.md 覆盖 PRD 的内容决策;没有的模块不要强行补。
|
|
330
|
+
|
|
331
|
+
禁止把输入主题色铺满背景、筛选栏、卡片底、媒体框或大面积面板。
|
|
332
|
+
|
|
333
|
+
禁止把默认强调色误当成视觉 DNA;DNA 是结构、密度、层级和组件机制。
|
|
334
|
+
|
|
335
|
+
禁止瀑布流、自由高度卡片、无固定高度媒体框、无固定高度图表容器、长内容撑破父级、零散 margin 拼接和默认后台质感。
|
|
336
|
+
|
|
337
|
+
禁止在卡片里塞入过多字段。超过 5 个核心信息点时,应根据 PRD 改用详情抽屉、展开区或表格。
|
|
338
|
+
|
|
339
|
+
## 11. Agent 使用提示
|
|
340
|
+
|
|
341
|
+
先读 PRD,确认页面是否真的需要筛选、排序、卡片浏览和卡片级操作。再应用主题色,只替换强调色相和派生状态色,不改变白底、浅边框、浅灰媒体框、等高卡片网格和小面积操作点。实现时优先保证左侧筛选栏、结果工具条、条件胶囊、媒体框、主值行、卡片操作和响应式折叠的完整状态。所有字段、数据、标题、动作都必须来自 PRD;不要为了套视觉槽位创造内容。交付时检查卡片是否等高、媒体框是否稳定、胶囊是否可移除、按钮是否有状态、长内容是否截断。
|
|
342
|
+
|
|
343
|
+
## 12. 交付自检清单
|
|
344
|
+
|
|
345
|
+
- 内容、字段、数据和操作是否全部来自 PRD。
|
|
346
|
+
- 是否保留左侧筛选栏、顶部工具条、条件胶囊和等高卡片矩阵这些核心 DNA。
|
|
347
|
+
- 主题色是否只用于勾选、滑块、胶囊、图标按钮、focus ring 和关键文本。
|
|
348
|
+
- 页面背景、卡片底、媒体框和中性文字是否保持干净克制。
|
|
349
|
+
- 同一行卡片是否等高,媒体框和信息区是否稳定。
|
|
350
|
+
- 长标题、长条件、长数值是否截断或折叠,没有撑破父级。
|
|
351
|
+
- hover、focus、pressed、loading、disabled、empty、error 状态是否完整。
|
|
352
|
+
- 小屏是否将筛选栏折叠为抽屉或顶部入口,工具条是否能自然换行。
|
|
353
|
+
- 纯图标按钮是否有可访问标签和 tooltip。
|
|
354
|
+
- 是否避免了默认后台质感、瀑布流、自由高度卡片和零散 margin 拼接。
|
package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: alpha
|
|
3
|
+
template_type: visual_dna_preset
|
|
4
|
+
name: green-timeline-progress-workbench
|
|
5
|
+
design_id: green-timeline-progress-workbench
|
|
6
|
+
design_status: draft
|
|
7
|
+
description: "适用于主进度摘要、浮动时间轴、趋势图和明细表结合的绿色柔和进度工作台视觉 DNA。"
|
|
8
|
+
scenes: [dashboard, workbench, progress_tracking, staged_operations, operations_overview]
|
|
9
|
+
density: medium-high
|
|
10
|
+
layout: left_metric_stack_right_timeline_trend_table
|
|
11
|
+
tone: [soft, analytical, fresh, precise, operational]
|
|
12
|
+
tags: [green_dashboard, progress_summary, timeline_cards, trend_chart, detail_table]
|
|
13
|
+
avoid: [marketing_landing_page, single_form, media_story_page, dark_big_screen]
|
|
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: green_priority_summary_stack
|
|
27
|
+
name: 绿色优先摘要栈
|
|
28
|
+
confidence: observed
|
|
29
|
+
hooks: [primary_summary_card, progress_arc_texture, metric_grid, icon_badge, large_number]
|
|
30
|
+
invariant: [左侧窄列顶部使用大面积强调色摘要卡, 摘要卡内有超大数字和低透明进度纹理, 下方 2x2 指标卡白底轻边框, 指标数字层级清晰]
|
|
31
|
+
variable: [摘要语义, 指标数量, 图标语义, 数值格式, 强调色]
|
|
32
|
+
- id: floating_date_timeline
|
|
33
|
+
name: 浮动日期时间轴
|
|
34
|
+
confidence: observed
|
|
35
|
+
hooks: [date_strip, active_date_pill, dotted_vertical_axis, node_card, selected_node]
|
|
36
|
+
invariant: [右上大面板顶部为日期条, 当前项用小胶囊高亮, 内容区有浅色描边容器, 垂直虚线贯穿当前列, 节点卡错落但网格对齐]
|
|
37
|
+
variable: [时间粒度, 节点数量, 节点标题, 附加信息, 图标或头像, 操作]
|
|
38
|
+
- id: polished_line_trend_panel
|
|
39
|
+
name: 精致折线趋势面板
|
|
40
|
+
confidence: observed
|
|
41
|
+
hooks: [line_chart, hollow_points, dotted_secondary_line, dark_tooltip, range_pill]
|
|
42
|
+
invariant: [趋势面板白底大圆角, 标题栏和筛选胶囊同层, 主折线使用强调色和空心节点, 辅助序列浅灰虚线, tooltip 为深色浮层]
|
|
43
|
+
variable: [趋势指标, 时间范围, 序列数量, tooltip 内容, 主题色]
|
|
44
|
+
- id: full_width_detail_table
|
|
45
|
+
name: 全宽明细表
|
|
46
|
+
confidence: observed
|
|
47
|
+
hooks: [table_panel, search_input, sortable_header, checkbox_column, status_pill]
|
|
48
|
+
invariant: [底部明细表横跨页面宽度, 标题与搜索框同层, 表头浅灰底, 首列复选框, 列标题带排序图标, 状态使用胶囊和点状信号]
|
|
49
|
+
variable: [列定义, 行数据, 搜索筛选, 状态集合, 单元格图标]
|
|
50
|
+
- id: low_noise_green_texture
|
|
51
|
+
name: 低噪声绿色纹理
|
|
52
|
+
confidence: observed
|
|
53
|
+
hooks: [subtle_pattern, soft_border, micro_shadow, accent_rail, status_dot]
|
|
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-strong, tokens.colors.brand-soft, tokens.colors.focus-ring]
|
|
61
|
+
derive_tokens: [tokens.colors.chart-primary, tokens.colors.chart-soft, tokens.colors.timeline-active, tokens.colors.status-positive, tokens.colors.surface-accent]
|
|
62
|
+
preserve_tokens: [tokens.colors.bg-page, tokens.colors.surface, tokens.colors.surface-muted, tokens.colors.text-primary, tokens.colors.text-secondary, tokens.colors.border-subtle, tokens.colors.shadow-color]
|
|
63
|
+
rules:
|
|
64
|
+
- theme_color_only_changes_accent_hue
|
|
65
|
+
- do_not_tint_page_background
|
|
66
|
+
- do_not_turn_neutral_cards_into_colored_cards
|
|
67
|
+
- preserve_white_panels_and_soft_borders
|
|
68
|
+
tokens:
|
|
69
|
+
colors:
|
|
70
|
+
bg-page: "#F6F7F5"
|
|
71
|
+
surface: "#FFFFFF"
|
|
72
|
+
surface-muted: "#F2F4F3"
|
|
73
|
+
surface-accent: "#EAF8F2"
|
|
74
|
+
text-primary: "#111827"
|
|
75
|
+
text-secondary: "#5B6472"
|
|
76
|
+
text-tertiary: "#8B95A1"
|
|
77
|
+
border-subtle: "#E5E9E7"
|
|
78
|
+
border-accent-soft: "#CFEFE1"
|
|
79
|
+
brand: "#1FB975"
|
|
80
|
+
brand-strong: "#13A463"
|
|
81
|
+
brand-soft: "#DFF7EC"
|
|
82
|
+
chart-primary: "#20B875"
|
|
83
|
+
chart-soft: "#DDF5EA"
|
|
84
|
+
chart-secondary: "#CBD5D1"
|
|
85
|
+
status-positive: "#22B879"
|
|
86
|
+
status-warning: "#F0A92E"
|
|
87
|
+
status-danger: "#E35D5D"
|
|
88
|
+
focus-ring: "#8BE0B8"
|
|
89
|
+
shadow-color: "rgba(17, 24, 39, 0.06)"
|
|
90
|
+
typography:
|
|
91
|
+
fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
|
|
92
|
+
page-title: { fontSize: 30, fontWeight: 700, lineHeight: 1.2, letterSpacing: 0 }
|
|
93
|
+
panel-title: { fontSize: 18, fontWeight: 700, lineHeight: 1.3, letterSpacing: 0 }
|
|
94
|
+
hero-number: { fontSize: 64, fontWeight: 700, lineHeight: 1, letterSpacing: 0 }
|
|
95
|
+
metric-number: { fontSize: 44, fontWeight: 700, lineHeight: 1.05, letterSpacing: 0 }
|
|
96
|
+
body: { fontSize: 15, fontWeight: 500, lineHeight: 1.45, letterSpacing: 0 }
|
|
97
|
+
caption: { fontSize: 13, fontWeight: 500, lineHeight: 1.35, letterSpacing: 0 }
|
|
98
|
+
spacing:
|
|
99
|
+
page-x-desktop: 24
|
|
100
|
+
page-y-desktop: 32
|
|
101
|
+
grid-gap: 16
|
|
102
|
+
panel-x: 24
|
|
103
|
+
panel-y: 22
|
|
104
|
+
table-cell-x: 20
|
|
105
|
+
rounded:
|
|
106
|
+
panel: 20
|
|
107
|
+
summary: 20
|
|
108
|
+
card: 16
|
|
109
|
+
control: 14
|
|
110
|
+
pill: 999
|
|
111
|
+
shadow:
|
|
112
|
+
panel: "0 1px 2px rgba(17,24,39,0.04), 0 12px 28px rgba(17,24,39,0.04)"
|
|
113
|
+
floating: "0 10px 24px rgba(17,24,39,0.08)"
|
|
114
|
+
layout_stability:
|
|
115
|
+
grid_align_items: stretch
|
|
116
|
+
panel_display: flex-column
|
|
117
|
+
panel_height: "100%"
|
|
118
|
+
overflow_policy: internal_scroll_or_truncate
|
|
119
|
+
spacing_policy: parent_gap_only
|
|
120
|
+
equal_height_rule: same_row_panels_align
|
|
121
|
+
fixed_height_tokens:
|
|
122
|
+
summary_card: 270px
|
|
123
|
+
metric_card: 168px
|
|
124
|
+
timeline_panel: 360px
|
|
125
|
+
trend_panel: 300px
|
|
126
|
+
table_row: 64px
|
|
127
|
+
table_header: 56px
|
|
128
|
+
quality_anchors:
|
|
129
|
+
- id: textured_summary_card
|
|
130
|
+
name: 纹理化主摘要卡
|
|
131
|
+
required_when: PRD 提供最高优先级进度、状态或总览
|
|
132
|
+
rule: 摘要卡使用强调色底、超大数字、低透明纹理和局部进度弧。
|
|
133
|
+
- id: aligned_timeline_nodes
|
|
134
|
+
name: 对齐的时间轴节点
|
|
135
|
+
required_when: PRD 包含时间、阶段、流程或里程碑
|
|
136
|
+
rule: 日期条、当前胶囊、垂直虚线、节点卡和选中态共同出现。
|
|
137
|
+
- id: dark_chart_tooltip
|
|
138
|
+
name: 深色图表浮层
|
|
139
|
+
required_when: PRD 包含趋势或周期对比
|
|
140
|
+
rule: 折线图有空心节点、辅助虚线、垂直辅助线和深色 tooltip。
|
|
141
|
+
- id: sortable_table_shell
|
|
142
|
+
name: 可排序表格壳
|
|
143
|
+
required_when: PRD 包含明细记录
|
|
144
|
+
rule: 表格有搜索框、浅灰表头、排序图标、复选框、状态胶囊和稳定行高。
|
|
145
|
+
- id: accent_micro_signals
|
|
146
|
+
name: 小面积强调信号
|
|
147
|
+
required_when: PRD 包含状态、节点或列表
|
|
148
|
+
rule: 通过短竖条、点状状态、胶囊和 focus ring 表达,不大面积染色。
|
|
149
|
+
quality_floor:
|
|
150
|
+
target: polished_sample_level
|
|
151
|
+
avoid_default_admin_feel: true
|
|
152
|
+
requires_visible_micro_detail: true
|
|
153
|
+
minimum_craft_signals: [textured_summary, aligned_timeline, hollow_chart_points, dark_tooltip, sortable_table, status_pills]
|
|
154
|
+
components:
|
|
155
|
+
panel: { surface: tokens.colors.surface, rounded: tokens.rounded.panel, border: "1px solid tokens.colors.border-subtle", shadow: tokens.shadow.panel }
|
|
156
|
+
summary_card: { surface: tokens.colors.brand, rounded: tokens.rounded.summary, texture: progress_arc_pattern, text: "#FFFFFF" }
|
|
157
|
+
metric_card: { minHeight: 168, icon: circular_subtle_outline }
|
|
158
|
+
timeline_node: { height: 76, rounded: tokens.rounded.card, selectedSurface: tokens.colors.brand, activeRail: tokens.colors.timeline-active }
|
|
159
|
+
chart: { height: 230, lineStyle: smooth_with_hollow_points, tooltip: dark_compact_card }
|
|
160
|
+
table: { rowHeight: 64, headerHeight: 56, headerSurface: tokens.colors.surface-muted, statusStyle: pill_with_dot }
|
|
161
|
+
modules:
|
|
162
|
+
quick_actions:
|
|
163
|
+
confidence: inferred
|
|
164
|
+
render_policy: prd_only
|
|
165
|
+
placement: independent_section_after_summary_or_before_detail
|
|
166
|
+
item_count: 4-8
|
|
167
|
+
timeline:
|
|
168
|
+
confidence: observed
|
|
169
|
+
render_policy: prd_only
|
|
170
|
+
placement: upper_right_primary_panel
|
|
171
|
+
detail_table:
|
|
172
|
+
confidence: observed
|
|
173
|
+
render_policy: prd_only
|
|
174
|
+
placement: full_width_bottom_panel
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
# Green Timeline Progress Workbench DESIGN.md
|
|
178
|
+
|
|
179
|
+
> front matter 是给流程和生成器读取的结构化配置;人工评审优先阅读下方正文。若两者冲突,风格选择、换色策略和 token 数值以前面的 YAML 为准,使用边界和业务取舍以正文为准。
|
|
180
|
+
|
|
181
|
+
## 1. 快速理解
|
|
182
|
+
|
|
183
|
+
这是一个绿色柔和的进度分析工作台。它用左侧主摘要和指标栈建立状态判断,用右侧浮动时间轴呈现阶段或节点,用趋势图和底部明细表完成分析与检索。PRD 决定内容是否存在,DESIGN.md 只约束视觉 DNA。主题色只替换绿色强调,不改变白色面板、浅边框、时间轴和图表工艺。
|
|
184
|
+
|
|
185
|
+
## 2. 使用边界
|
|
186
|
+
|
|
187
|
+
适合进度追踪、阶段管理、周期任务、运营概览和记录管理。不适合没有时间或阶段语义的普通后台、纯表单、媒体页或暗色大屏。禁止复制视觉材料中的具体业务词、记录名、日期、数值、路线、对象名和表格字段。
|
|
188
|
+
|
|
189
|
+
## 3. 设计风格选择与换色逻辑
|
|
190
|
+
|
|
191
|
+
当 PRD 包含主进度、多个辅助指标、节点或日程、趋势分析和明细记录时选择该风格。主题色替换摘要卡、选中节点、主折线和状态点;背景、白色卡片、浅灰表头、中性文字和圆角机制保持。
|
|
192
|
+
|
|
193
|
+
## 4. 视觉 DNA
|
|
194
|
+
|
|
195
|
+
`green_priority_summary_stack` 保持左侧主摘要和 2x2 指标。`floating_date_timeline` 保持日期条、垂直当前线和错落节点。`polished_line_trend_panel` 保持空心节点、辅助虚线和深色 tooltip。`full_width_detail_table` 保持全宽表格壳、搜索、排序和状态胶囊。`low_noise_green_texture` 控制强调色只小面积出现。
|
|
196
|
+
|
|
197
|
+
## 5. 视觉品质基线
|
|
198
|
+
|
|
199
|
+
主摘要需要纹理和大数字。时间轴需要日期条、当前胶囊、虚线和节点卡。趋势图需要空心点、深色 tooltip 和浅网格。表格需要搜索、排序、复选框、状态胶囊。强调色必须集中,不能染满页面。
|
|
200
|
+
|
|
201
|
+
## 6. 布局规则
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
page_shell
|
|
205
|
+
page_identity
|
|
206
|
+
main_grid
|
|
207
|
+
left_metric_stack
|
|
208
|
+
right_timeline_and_trend
|
|
209
|
+
full_width_detail_table
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
主 grid `align-items: stretch`,同排面板等高。面板使用 `height: 100%`、`min-width: 0`、`min-height: 0`、`display: flex`。图表、时间轴、表格行固定高度。长文本截断或内部滚动。间距用父级 `gap`。
|
|
213
|
+
|
|
214
|
+
## 7. PRD 槽位映射
|
|
215
|
+
|
|
216
|
+
| PRD 内容类型 | 视觉槽位 | 规则 |
|
|
217
|
+
| --- | --- | --- |
|
|
218
|
+
| 主进度或总览状态 | `primary_summary` | 强调色摘要卡加纹理。 |
|
|
219
|
+
| 辅助指标 | `metric_grid` | 白底 2x2 指标卡。 |
|
|
220
|
+
| 阶段、节点、日程 | `timeline` | 日期条加错落节点。 |
|
|
221
|
+
| 趋势或周期对比 | `trend_panel` | 折线图加深色 tooltip。 |
|
|
222
|
+
| 明细记录 | `detail_table` | 全宽表格壳。 |
|
|
223
|
+
|
|
224
|
+
## 8. 组件规则
|
|
225
|
+
|
|
226
|
+
摘要卡圆角 20px,白字,大数字 64px。指标卡白底轻边框。节点卡高度 76px,选中态强调色。图表高度 230px,主线 3px,空心节点。表格表头 56px,行高 64px,状态胶囊加点。
|
|
227
|
+
|
|
228
|
+
## 9. 响应式与可访问性
|
|
229
|
+
|
|
230
|
+
桌面左右布局,移动端按摘要、指标、时间轴、趋势、明细排列。表格可横向滚动或转卡片。触控目标不小于 44px。状态不能只靠颜色,需文本或图形辅助。
|
|
231
|
+
|
|
232
|
+
## 10. 禁止项
|
|
233
|
+
|
|
234
|
+
- 禁止复制具体业务内容、字段、日期、数值和示例对象。
|
|
235
|
+
- 禁止主题色污染背景和普通卡片。
|
|
236
|
+
- 禁止默认折线图、裸表格、自由高度时间轴。
|
|
237
|
+
- 禁止瀑布流和零散 margin。
|
|
238
|
+
- 禁止 PRD 无时间语义时强行创建时间轴。
|
|
239
|
+
|
|
240
|
+
## 11. Agent 使用提示
|
|
241
|
+
|
|
242
|
+
先读 PRD,判断主进度、指标、时间节点、趋势和明细是否存在。再用主题色替换绿色强调。不要凭空创建模块。实现时必须保留纹理摘要、对齐时间轴、精制折线和工具化表格。
|
|
243
|
+
|
|
244
|
+
## 12. 交付自检清单
|
|
245
|
+
|
|
246
|
+
- 内容是否来自 PRD。
|
|
247
|
+
- 适用 DNA 是否保留。
|
|
248
|
+
- 主题色是否只改写小面积强调。
|
|
249
|
+
- 时间轴、图表、表格是否稳定。
|
|
250
|
+
- 状态、响应式和可访问性是否完整。
|