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
package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md
ADDED
|
@@ -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
|
+
- 是否避免了具体业务绑定、默认后台质感和瀑布流。
|