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-canvas-custom-page/references/canvas-style-implementation-guide.md
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
# YidaCodeCanvas 组件样式实现指南
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文件是 `YidaCodeCanvas` 组件的样式实现适配指南,不是新的设计系统,也不产出配色、视觉 DNA 或页面风格。业务事实来自 `yida-prd` 输出的 `prd.md`,视觉事实来自 `yida-design` 输出的 `design.md`。`YidaCodeCanvas` 页面只在 `YidaComp` 内消费当前应用的主题 token,并把布局、材质、密度、图表、控件状态和背景规则落到组件内部。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`app-theme.css` 只在应用级配置,平台负责应用壳、原生表单、详情页和 `YidaCodeCanvas` 外层的主题一致性。Canvas Page 宿主的 `contentBgColor`、`pageStyle.backgroundColor` 和 `contentBgColorMobile` 使用 `var(--pod-page-bg-color, var(--color-white, #fff))`,保证平台宿主背景一致;自绘导航页的内部画布允许采用下文的局部背景方案。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
CLI 将 Canvas 宿主的 `contentBgColor`、`pageStyle.backgroundColor`、`contentBgColorMobile` 设为 `var(--pod-page-bg-color, var(--color-white, #fff))`。自绘导航页的内部画布按下方规则设置局部背景。
|
|
10
|
-
|
|
11
|
-
## 导航、画布与切换
|
|
12
|
-
|
|
13
|
-
先按[管理页面边界](navigation-and-entry-guide.md#平台导航下的管理页面)确认本页是否拥有导航。平台导航管理页只实现业务内容,不套带菜单的内容壳;以下自绘导航的背景与切换规则仅适用于已确认的独立入口或应用级自绘导航。
|
|
14
|
-
|
|
15
|
-
按 [页面与导航连续性](../../yida-design/references/page-continuity.md) 实现共同背景、滚动和切换;沉浸展示页不套业务工作区。加载/错误保留导航和画布,验收首屏、第二屏和窄屏菜单。
|
|
7
|
+
宿主属性绑定不是主题注入。严禁生成 `body` 背景 CSS,也严禁 `YidaComp` 修改 `document.documentElement`、`document.body`、父页面或平台容器的主题变量。组件自己的背景、卡片和控件样式留在 `YidaComp` 内,并使用 `--pod-page-*`、`--pod-card-*`、`--color-brand1-*` 和 `--color-group`。
|
|
16
8
|
|
|
17
9
|
## 嵌入页面的宿主高度
|
|
18
10
|
|
|
@@ -42,66 +34,65 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
42
34
|
|
|
43
35
|
| 冲突现象 | 处理方式 |
|
|
44
36
|
| --- | --- |
|
|
45
|
-
|
|
|
46
|
-
| design.md
|
|
37
|
+
| 左侧平台导航选中态是应用主题色,页面主按钮 / 标题强调 / 卡片选中态用了另一套主色 | 页面主操作、链接、选中态、重点标签和图表主序列改回应用主题 `--color-brand1-*` |
|
|
38
|
+
| design.md 生成了青绿、紫色、蓝色等辅助色,但当前应用主题是橙色或其他色 | 保留 `design.md` 的布局、卡片、密度、图表语言,把生成色彩降为辅助色、浅底背景、分组色或第二图表序列 |
|
|
47
39
|
| 用户要求导航和内容一起换色 | 交给 `yida-design` 更新应用主题设计 |
|
|
48
40
|
| 页面是沉浸页、自绘壳、独立官网、活动页或公开落地页 | 仍消费应用主题变量;页面差异通过布局、材质、素材、构图和辅助色表达,不覆盖品牌 token |
|
|
49
41
|
|
|
50
|
-
|
|
42
|
+
实现时先读取 `themeRelation`。默认值是 `跟随应用主题`,不是 `跟随生成色盘色相`。
|
|
51
43
|
|
|
52
44
|
## 工作台卡片密度红线
|
|
53
45
|
|
|
54
46
|
工作台、门户首页、业务首页默认是“进入应用后马上处理事情”的工具页,不是通用 SaaS 展示页。实现工作台页面时:
|
|
55
47
|
|
|
56
|
-
- 禁止使用“4 个等宽大 KPI 白卡 + 彩色图标盒 + 大数字 0
|
|
48
|
+
- 禁止使用“4 个等宽大 KPI 白卡 + 彩色图标盒 + 大数字 0”作为首屏主体;统计摘要只能作为 64-88px 的圆润紧凑条、分段摘要或右侧小面板。
|
|
57
49
|
- 禁止把状态摘要做成横跨整页但内容稀疏的空矩形;如果占满宽度,必须放入趋势、更新时间、筛选、主操作或风险状态。
|
|
58
50
|
- 禁止用 160px 以上的大空态白卡显示“暂无数据”;空态应是薄行、列表内空态或右侧提示条,并带登记/发布/刷新等下一步动作。
|
|
59
51
|
- 快捷入口不要做孤立图标大卡片阵列;高频动作放按钮组、工具条或 40-56px 的紧凑入口,低频动作折叠到更多。
|
|
60
52
|
- 首屏必须至少有一个任务/动态/最近记录/待处理列表承接真实工作流;若当前没有记录,显示可执行空态,而不是把空白面积留给装饰。
|
|
61
53
|
- 页面整体推荐包含 8-10 个有业务目的的区块以上;这些区块应通过密度、主次、分栏和列表节奏形成丰富度,不通过重复大卡片形成面积。区块数量不是实现准出硬门槛,窄场景或用户要求精简时可以更少。计数按区块组算,KPI 子项、快捷入口子项和列表行不能分别计数。
|
|
62
54
|
|
|
63
|
-
##
|
|
55
|
+
## 默认圆润高密与呼吸感落地
|
|
64
56
|
|
|
65
|
-
|
|
57
|
+
YidaCodeCanvas 必须把 `design.md` 的 `roundedRule`、`densityRule` 和 `breathingRule` 落成具体 CSS 与 antd token。若 design.md 未写明数值,先回写 design.md,不要在源码里凭感觉补。
|
|
66
58
|
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
59
|
+
- 卡片 `border-radius` 范围 `0px-32px`,业务面板 / 卡片默认 `20px-24px`,主面板、抽屉和重点容器默认 `22px-32px`。
|
|
60
|
+
- Button、Input、Select、DatePicker 等控件 `borderRadius` 默认 `10px-14px`;状态标签和徽标使用 `999px` 胶囊。
|
|
61
|
+
- 页面 padding 默认 `20px-28px`,卡片和卡片的 gap 默认 `12px-18px` 且必须小于 `20px`,卡片 padding 默认 `22px-28px` 且必须大于 `20px`。
|
|
62
|
+
- 页面布局必须有呼吸感:主区、右侧上下文、工具条和列表之间通过 `12px-18px` 的紧凑 gap 和清晰分组形成节奏;列表行内部 `10px-12px`,文字、按钮和标签不能贴边。
|
|
63
|
+
- 列表行高 `44px-56px`,高频按钮高度 `36px-40px`,状态摘要高度 `64px-88px`。
|
|
64
|
+
- 空态默认高度 `88px-120px`;超过 `120px` 必须有说明、主操作或配置入口,超过 `160px` 的纯空白不通过。
|
|
65
|
+
- 大圆角和呼吸感只负责形状性格与阅读节奏,不负责撑版面;出现大面积空白时,优先压缩容器或补任务、动态、风险、负责人、下一步动作。
|
|
73
66
|
|
|
74
67
|
## 视觉落地顺序
|
|
75
68
|
|
|
76
|
-
|
|
69
|
+
页面实现不要从“高级、简洁、好看”等形容词直接写 CSS。先读取 `prd/<项目名>/design.md`,再用 PRD 的 `pageSpecHandoff.designRefs` 定位当前页面要遵守的 `visualScaffold`,按固定顺序落地:
|
|
77
70
|
|
|
78
|
-
1.
|
|
79
|
-
2.
|
|
80
|
-
3.
|
|
81
|
-
4.
|
|
82
|
-
5.
|
|
71
|
+
1. `layoutRecipe`:先确定页面骨架和分栏比例。
|
|
72
|
+
2. `surfaceMap`:决定每个区块是无框、细线面板、浅底条、列表行、表格、右侧栏还是抽屉。
|
|
73
|
+
3. `sectionRhythm` / `breathingRule`:确定首屏主次、区块间距、阅读顺序、组内/组间节奏和移动端折叠间距。
|
|
74
|
+
4. `densityRule`:控制卡片高度、列表行高、按钮尺寸和信息密度。
|
|
75
|
+
5. `componentRecipe`:统一按钮、入口、标签、图标、列表、图表、空态和弹层。
|
|
76
|
+
6. `acceptanceChecks`:逐项检查 contentBlocks 是否支撑业务目标、无大空白卡、主色跟随应用主题、KPI/快捷入口子项不计数、移动端不挤压;区块数量不作为硬门槛。
|
|
83
77
|
|
|
84
78
|
## 背景与导航的关联
|
|
85
79
|
|
|
86
80
|
背景职责统一:Shell 的 `--pod-shell-bg-color-light/white/gray/dark` 承载外层氛围;原生页面与自定义页面的基础底色统一消费 `--pod-page-bg-color`;卡片、表格外壳和面板消费 `--pod-card-bg-color`,回退 `--color-white`。渐变、纹理和图片作为页面局部装饰层叠加,不另设应用基础背景变量。
|
|
87
81
|
|
|
88
|
-
应用根背景已提供 `--pod-app-root-bg-color` 和 `--pod-app-root-bg-image`,后者可表达图片或 CSS 渐变。它们只影响实际消费这些变量的根容器;不透明页面和卡片仍显示各自底色。全应用背景由主题 CSS 配置,单页渐变在本页根容器用 `background-image` 实现;颜色变量不放渐变,页面代码不向父页面 body 注入样式。Fast 与 Plan 共用这套规则,详见 [背景作用范围](../../yida-design/workflow/output-design.md#背景颜色渐变与图片)。
|
|
89
|
-
抽屉外壳背景默认使用 `--pod-shell-theme-bg-color`,回退 `--color-white`;标题栏、正文容器透明承接外壳,不铺 `--pod-card-bg-color`。抽屉内独立业务卡片才使用卡片 token。
|
|
90
|
-
|
|
91
82
|
导航布局和页面底色分别配置。隐藏应用导航不自动把 Canvas 改为透明;深色或明确的应用底色在 `design.md` 的平台 token 中定义,生成 `app-theme.css` 后统一生效。页面局部视觉不能通过修改应用 token 影响其他页面。
|
|
92
83
|
|
|
93
84
|
普通 Canvas 根背景默认使用 `background: var(--pod-page-bg-color, var(--color-white, #fff));`。自绘应用导航页的内部画布按下节设计,不要求可见底色与平台宿主相同。
|
|
94
85
|
|
|
95
|
-
|
|
86
|
+
浮导距顶部的留白放在自定义页根节点内部。发布层的 `.yida-code-canvas{display:flow-root}` 只保护宿主,不能阻止 `.doll-page` / `.oy-page-root` 等内层根节点与导航的 margin 折叠。页面根必须使用 `display:flow-root`(已有 flex/grid 可保留),或用根容器 padding 承载顶部间距;不能仅给 Canvas 宿主加 flow-root。验收时分别测量宿主、页面根与导航的 top:宿主和页面根贴齐,导航仍保留设计间距。不要用 overflow:hidden 修复,它可能影响 sticky 和弹层;不要向平台父容器写负 margin 抵消。
|
|
96
87
|
|
|
97
88
|
## 自定义导航页的独立画布
|
|
98
89
|
|
|
99
90
|
**MUST** 区分平台宿主与自绘应用画布:宿主继续使用平台背景 token;内部导航壳可按 `design.md` 使用浅灰、浅彩、低饱和渐变或局部纹理,不强制使用 `--pod-page-bg-color` 作为唯一可见底色。`design.md` 明确 `canvasBackground`、`navigationSurface` 和 `cardSurface`,仅在当前页面根选择器实现,不修改 body、父页面或全局变量。
|
|
100
91
|
|
|
101
|
-
|
|
92
|
+
浅色非白或渐变画布,顶部浮导默认白色或近白半透明、柔和投影;白卡默认无框,品牌色留给 Logo、导航选中态和主操作。白色画布上的白卡用细边框或投影。深色画布按独立对比方案设计,不强制白色浮导。渐变应低饱和、集中于顶部或局部,内容区域保持安静,不能遮挡文字或滚动内容。
|
|
102
93
|
|
|
103
94
|
```css
|
|
104
|
-
/*
|
|
95
|
+
/* 自定义导航页局部设计示例,色值由本页 design.md 确认。 */
|
|
105
96
|
.custom-nav-canvas {
|
|
106
97
|
min-height: 100dvh;
|
|
107
98
|
display: flow-root;
|
|
@@ -113,11 +104,7 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
113
104
|
}
|
|
114
105
|
```
|
|
115
106
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
## 分组标题与分割线
|
|
119
|
-
|
|
120
|
-
执行 [分组标题与分割线选型](../../yida-design/references/application-theme-consistency.md#分组标题与分割线):按当前页用途、密度和主题选形态,不把所有页面都写成左竖条或一条实线。同页同层级使用同一实现与配色,不同业务页面优先使用不同且合适的形态。平台 Divider 的选型表可作为外观参考;Canvas 使用自己的标题/CSS 实现,不导入未提供的原生表单组件。表格网格和卡片边框不套用章节装饰。
|
|
107
|
+
验收覆盖首屏、滚动底部、窄屏和导航切换:画布铺满内容区,无意外白边;浮导与卡片边界清楚,品牌色不过度铺满导航;原生 iframe 不被跨框样式修改。工作台同时压缩重复操作条、等权大指标卡和过高空态,不能仅靠渐变声称完成设计优化。
|
|
121
108
|
|
|
122
109
|
## 同色表面的卡片边界
|
|
123
110
|
|
|
@@ -151,7 +138,7 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
151
138
|
|
|
152
139
|
## 背景层实现规则
|
|
153
140
|
|
|
154
|
-
实现 `design.md`
|
|
141
|
+
实现 `design.md` 的 `backgroundLayer` 时,先考虑页面根画布,再做内容面板。不要先堆白卡片再临时补装饰。展示型页面、工作台、看板、门户、官网、登录页和空状态页推荐有非纯空白的画布;近白画布可以保留,但要通过淡渐变、细线、星芒、局部装饰、素材或内容密度形成背景感。如果 `design.md` 指定 `topIrregularWash`、`radialGlowWash`、`flowLight` 或 `organicNoise`,必须在源码里落成对应 CSS。
|
|
155
142
|
|
|
156
143
|
推荐结构:
|
|
157
144
|
|
|
@@ -218,7 +205,7 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
218
205
|
|
|
219
206
|
落地要求:
|
|
220
207
|
|
|
221
|
-
-
|
|
208
|
+
- 普通页面和业务卡片按上述主题契约实现;自绘应用导航页的局部画布、浮导按下述独立画布规则实现,不覆盖平台或原生内页主题。
|
|
222
209
|
- `softTintCanvas`:根节点使用低饱和浅底、带弱渐变的近白画布或深色舞台;不要为了背景感强行铺满高饱和色。
|
|
223
210
|
- `topIrregularWash`:用 `::before`、`clip-path`、局部 SVG 背景或伪元素形成顶部波浪、斜切、有机边界、细线曲线或图形标记;内容层固定在规则栅格上。
|
|
224
211
|
- `radialGlowWash`:使用大面积柔和径向光或光洗,禁止离散装饰圆球、bokeh 和随机漂浮点。
|
|
@@ -227,7 +214,7 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
227
214
|
|
|
228
215
|
## 源码结构验收
|
|
229
216
|
|
|
230
|
-
页面源码不能只堆 section 或 Card
|
|
217
|
+
页面源码不能只堆 section 或 Card。写完 `.canvas.jsx` 后,按下面结构自检:
|
|
231
218
|
|
|
232
219
|
- 文件输入:实现前已读取 `prd.md` 和 `design.md`;视觉规则来自 `design.md`,业务区块和数据来源来自 PRD。
|
|
233
220
|
- `rootShell`:有页面根类、背景带、内容宽度、平台导航可见时的宽度处理。
|
|
@@ -235,10 +222,10 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
235
222
|
- `statusPrimitive`:有紧凑状态摘要、数据在线、更新时间、主健康分或状态胶囊。
|
|
236
223
|
- `actionPrimitive`:主按钮、次按钮、高频动作条或批量动作条能触发真实路径。
|
|
237
224
|
- `contentPrimitive`:有表格、列表、任务流、事件流、排行、时间线、图表或详情预览之一作为主要承接。
|
|
238
|
-
- `contextPrimitive
|
|
225
|
+
- `contextPrimitive`:有右侧洞察、风险、负责人、下一步建议或关联对象,避免页面只有左到右平铺卡片。
|
|
239
226
|
- `statePrimitive`:loading、empty、error、未接数据都有薄空态、刷新、登记或补录动作。
|
|
240
227
|
- `responsiveRule`:移动端分栏退化为单列,关键状态、动作和主内容保留,不让文字和按钮挤压。
|
|
241
|
-
-
|
|
228
|
+
- `backgroundLayer` / `surfaceMaterial` / `colorRoles` / `depthRule` / `roundedRule` / `densityRule` / `breathingRule`:源码按 `design.md` 落地分层背景、半透明玻璃或细线面板、明确辅助色角色、深度规则、大圆角、紧凑密度和呼吸节奏;近白画布可接受,但应有渐变、装饰、素材焦点或内容密度支撑。
|
|
242
229
|
|
|
243
230
|
缺少 `prioritySurface`、`contentPrimitive` 或 `statePrimitive` 任意一项,不能交付为“已打磨页面”。
|
|
244
231
|
要求玻璃感但源码只有普通白底和纯白不透明卡片,也不能交付为“已打磨页面”;如果选择极简近白背景,需要在截图和源码中体现细节层次。
|
|
@@ -251,10 +238,9 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
251
238
|
| token | design.md 语义 | YidaCodeCanvas 使用方式 |
|
|
252
239
|
| --- | --- | --- |
|
|
253
240
|
| `--color-brand1-6` | 主色 | 主按钮、链接、选中态、信息强调、图表主序列 |
|
|
254
|
-
| `--color-brand1-1` |
|
|
255
|
-
| `--color-brand1-
|
|
256
|
-
| `--color-brand1-
|
|
257
|
-
| `--color-brand1-9` / `--color-brand1-10` | 激活 / 禁用色 | 分别用于 pressed / disabled,不用作普通标题、指标或默认按钮背景 |
|
|
241
|
+
| `--color-brand1-1` / `--color-brand1-2` / `--color-brand1-3` | 浅底色阶 | 标签浅底、提示块、筛选选中底、弱强调背景 |
|
|
242
|
+
| `--color-brand1-5` / `--color-brand1-9` | 交互色阶 | hover / active / pressed 状态 |
|
|
243
|
+
| `--color-brand1-9` / `--color-brand1-10` | 深色阶 | 深色标题、深底按钮、深色主题强调 |
|
|
258
244
|
| `--color-brand-1` ~ `--color-brand-4` | 移动端品牌色阶 | 当前自定义页面的移动端布局和品牌状态 |
|
|
259
245
|
| `--color-group` | 平台图表色组 | 多系列折线、柱状、排名、环形图配色 |
|
|
260
246
|
| `--oyd-control-selected-bg` | 页面级选中浅底 | 下拉选中项、Tabs 选中底、轻量筛选块 |
|
|
@@ -295,18 +281,16 @@ body.pod-premium.page-type-workbench .vc-page-yida-pure-container:has(> .vc-root
|
|
|
295
281
|
|
|
296
282
|
## 统一主题适配
|
|
297
283
|
|
|
298
|
-
antd
|
|
284
|
+
新 antd 页面使用 [CanvasThemeProvider 脚本](canvas-theme-provider.md),不再复制变量映射、读取 hook 或监听代码。纯 DOM 页面直接使用 CSS 变量。
|
|
299
285
|
|
|
300
|
-
`openyida sample openyida-page-template canvas-theme`
|
|
286
|
+
旧页面已有 `useCanvasTheme` 和 `ConfigProvider` 时可继续维护;不要再叠加新的 Provider。迁移时按脚本指南替换整条主题接入链路。旧示例和 `openyida sample openyida-page-template canvas-theme` 仅保留供存量维护,不作为新页面起点。
|
|
301
287
|
|
|
302
288
|
### 按钮语义与优先级
|
|
303
289
|
|
|
304
|
-
-
|
|
305
|
-
- 内容面板切换用 Tabs,类别单选用 Segmented/Radio.Group,主动作才用实心 Button。按 [默认控件状态](canvas-theme-provider.md#默认控件状态) 接入 Provider:中性普通项、轻底选中项、清晰文字与独立禁用态;不把分类筛选做成一排主操作,不以主色文字叠加同色实心底。
|
|
306
|
-
- 主按钮、链接、选中态消费项目为相应角色定义的 token,可与品牌色不同;同类操作跨页面保持一致,普通按钮保持次要层级。
|
|
290
|
+
- 主按钮、链接、选中态跟随应用品牌 token;普通按钮使用中性表面、文字和边框。
|
|
307
291
|
- 删除、失败、成功、警告保留语义色,不能把所有按钮和提示都染成品牌色。
|
|
308
292
|
- 原生 DOM 按钮直接消费 CSS 变量;antd 控件使用 `ConfigProvider` 的解析值,保留库的 disabled/loading/focus 行为。
|
|
309
|
-
- 应用 token 优先于 design.md 兜底。内层 `ConfigProvider` 或按钮行内 `background/color`
|
|
293
|
+
- 应用 token 优先于 design.md 兜底。内层 `ConfigProvider` 或按钮行内 `background/color` 会覆盖外层主题;仅在明确的业务语义或用户要求下覆盖,不能复制固定蓝色主按钮。
|
|
310
294
|
- 浮层保持 React provider 上下文;CSS 变量还取决于实际挂载 DOM。优先使用声明式 Modal/Drawer 和上下文内的消息 API,避免静态调用绕过主题;根据滚动和裁剪情况选择弹层容器并验收。
|
|
311
295
|
- 页面差异通过布局、密度、圆角、材质和素材实现,默认不创建另一套页面品牌色。
|
|
312
296
|
|
|
@@ -319,7 +303,7 @@ antd 页面统一使用 [CanvasThemeProvider](canvas-theme-provider.md) 读取
|
|
|
319
303
|
| colorPrimary / colorLink | --color-brand1-6,主操作、链接与选中焦点 |
|
|
320
304
|
| colorBgLayout | --pod-page-bg-color,回退 --color-white;与页面根容器一致 |
|
|
321
305
|
| colorBgContainer | --pod-card-bg-color,回退 --color-white |
|
|
322
|
-
| colorBgElevated | --pod-card-bg-color
|
|
306
|
+
| colorBgElevated | --pod-card-bg-color,浮层的可读表面;有独立浮层设计时使用其已确认 token |
|
|
323
307
|
| colorText / colorTextHeading | --color-text1-4,正文与标题 |
|
|
324
308
|
| colorTextSecondary / colorTextDescription | --color-text1-3,辅助说明 |
|
|
325
309
|
| colorTextPlaceholder | --color-text1-10,表头与 placeholder 层级 |
|
|
@@ -329,13 +313,13 @@ antd 页面统一使用 [CanvasThemeProvider](canvas-theme-provider.md) 读取
|
|
|
329
313
|
|
|
330
314
|
这些映射不改变业务数据和操作。表格表头、卡片外壳、自绘文字等 CSS 同步消费对应 token;外壳卡片使用 `background: var(--pod-card-bg-color, var(--color-white, #fff))` 与主题卡片边框;卡片边界按上文背景搭配选择细边框、投影或无框,不能只映射 antd 而遗漏自绘表面。
|
|
331
315
|
|
|
332
|
-
颜色解析和刷新由 Provider
|
|
316
|
+
颜色解析和刷新由 Provider 处理。当前脚本不自动映射尺寸、圆角、字体、图表色组或完整 CSS 选择器,也不会把平台所有组件样式转换成 antd 样式。布局与圆角仍按 design.md 实现;需要 antd 局部配置时仅覆盖所需的尺寸、圆角等属性,保留外层颜色主题。
|
|
333
317
|
|
|
334
318
|
应用主题模式主色缺失时为 missing、解析抛异常时为 error;其他缺失颜色保留 antd 默认值;这不代表主题验收通过。本地快照只在显式 preview 模式下使用。
|
|
335
319
|
|
|
336
320
|
## 默认 light 模式避免灰黑主题
|
|
337
321
|
|
|
338
|
-
业务列表、协同表、数据管理页、工作台和门户默认都是 light
|
|
322
|
+
业务列表、协同表、数据管理页、工作台和门户默认都是 light 模式。正文使用深色保证可读性;主操作、选中态、筛选焦点、批量操作和信息标签使用平台品牌色或当前页面确认的品牌色;卡片边框、表格分割线和下拉浮层边框使用浅色品牌混合,例如 `#DCE6F2`、`color-mix(in srgb, var(--oy-brand) 16%, #DDE8F4)`。用户明确要求暗色大屏、夜间模式或高对比风格时使用深色主视觉。
|
|
339
323
|
|
|
340
324
|
## 控件焦点态与下拉浮层 reset
|
|
341
325
|
|
|
@@ -385,12 +369,12 @@ Canvas 节点在页面 DOM 树内,Tailwind 运行时对普通元素直接用 a
|
|
|
385
369
|
```jsx
|
|
386
370
|
// 主色文字 / 背景 / 边框,直接引平台变量,跟随 App 主题
|
|
387
371
|
<div className="text-[var(--color-brand1-6)] border border-[var(--color-brand1-3)]">…</div>
|
|
388
|
-
<button className="bg-[var(--color-brand1-6)] hover:bg-[var(--color-brand1-
|
|
372
|
+
<button className="bg-[var(--color-brand1-6)] hover:bg-[var(--color-brand1-5)] text-white rounded-lg px-4 py-2">
|
|
389
373
|
主操作
|
|
390
374
|
</button>
|
|
391
375
|
```
|
|
392
376
|
|
|
393
|
-
|
|
377
|
+
色阶对应以 `design.md` 和 yida-design 主题 token 语义为准:主色 `brand1-6`、填充按钮 hover 使用 `brand1-5`、按下使用深色档 `brand1-9`、通用浅色 hover 底使用 `brand1-1`、选中/标签浅底使用 `brand1-2`。
|
|
394
378
|
|
|
395
379
|
## 图表 / recharts:用解析后的品牌色组
|
|
396
380
|
|
|
@@ -1,39 +1,50 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 脚本生成 CanvasThemeProvider
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
用于现有 CodeCanvas 运行时。主题适配由本技能的脚本生成,业务页面无需复制变量映射、颜色解析或更新监听。不需要修改 vc-deep-yida,也不新增运行时依赖包。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 选择接入方式
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
| 页面情况 | 操作 |
|
|
7
|
+
| 当前情况 | 做法 |
|
|
10
8
|
| --- | --- |
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
9
|
+
| 新 antd 页面,有本地主题文件 | 用本脚本装配 Provider |
|
|
10
|
+
| 没有本地主题文件 | 先取得当前应用的主题文件;暂保留原接入,不凭 URL 编造配色 |
|
|
11
|
+
| 纯 DOM 页面 | 直接消费平台 CSS 变量,不引入 Provider |
|
|
12
|
+
| 已有 useCanvasTheme 页面 | 保留原链路继续维护,或按下方步骤完整迁移;不叠加 Provider |
|
|
13
|
+
| 存量 .oyd.jsx / 平台 Jsx 页面 | 继续使用 yida-custom-page;本脚本不负责迁移运行时 |
|
|
14
|
+
| 只测试本地主题 | 生成默认测试页,保留 preview;不要求发布 |
|
|
15
|
+
|
|
16
|
+
## 设计与主题来源
|
|
17
|
+
|
|
18
|
+
1. 从 design.md 生成或定点更新应用 app-theme.css。页面基础背景是 --pod-page-bg-color,卡片是 --pod-card-bg-color;不另定义页面品牌色。
|
|
19
|
+
2. 应用级上传与保存仍走 create-app/update-app --theme-file。主题 URL 必须来自真实上传结果或应用配置回读,不能根据文件名拼接。保存的 URL 与当前本地 CSS 应是同一次主题产物。
|
|
20
|
+
3. 调用本技能 scripts/build-canvas-theme.js。`<skill-dir>` 使用当前实际安装技能目录,不要硬编码开发者路径。
|
|
21
|
+
|
|
22
|
+
脚本不上传或下载主题。URL 作为来源标识和已加载 link 的加载事件匹配条件;页面由平台加载应用 CSS。SHA256 标识本地生成快照,不证明远端文件与本地一致。
|
|
23
|
+
|
|
24
|
+
## 先生成测试页
|
|
15
25
|
|
|
16
26
|
```bash
|
|
17
|
-
|
|
27
|
+
node <skill-dir>/scripts/build-canvas-theme.js \
|
|
28
|
+
--theme-file <项目目录>/app-theme.css \
|
|
29
|
+
--theme-url <已上传主题的HTTPS地址> \
|
|
30
|
+
--output <项目目录>/pages/src/theme-preview.canvas.jsx
|
|
18
31
|
```
|
|
19
32
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
组件结构固定为 `YidaComp → CanvasThemeProvider → PageContent`。主题上下文和 Provider 定义放在模块顶层;`useCanvasThemeContext()` 放在 PageContent 或其子组件中;通过 `<PageContent />` 渲染业务内容。
|
|
33
|
+
未上传时可省略 --theme-url。输出是可独立编译的 Canvas 页面,默认开启 `preview`:把本地 CSS 的顶层 :root token 快照放在当前 Provider 容器上,供本地预览。不会插入全局样式表、修改 body 或加载完整平台 CSS。快照保留变量引用,不携带选择器、媒体查询、字体资源等完整 CSS 行为。
|
|
23
34
|
|
|
24
|
-
|
|
35
|
+
测试主按钮、次按钮、危险按钮、禁用和确认弹窗。`preview` 只验证快照;验证应用真实主题时移除 `preview`,由当前应用样式驱动。
|
|
25
36
|
|
|
26
|
-
|
|
37
|
+
## 业务页面接入
|
|
27
38
|
|
|
28
|
-
|
|
39
|
+
源文件保留一个模块级标记,让脚本展开 Provider:
|
|
29
40
|
|
|
30
41
|
```jsx
|
|
31
42
|
/* @canvas-theme-provider */
|
|
32
43
|
import { Button } from 'antd';
|
|
33
44
|
|
|
34
45
|
function PageContent() {
|
|
35
|
-
|
|
36
|
-
return <
|
|
46
|
+
// 普通按钮自动继承;图表可在此组件内调用 useCanvasThemeContext() 取色。
|
|
47
|
+
return <Button type="primary">新增</Button>;
|
|
37
48
|
}
|
|
38
49
|
function YidaComp() {
|
|
39
50
|
return <CanvasThemeProvider><PageContent /></CanvasThemeProvider>;
|
|
@@ -49,63 +60,30 @@ node <skill-dir>/scripts/build-canvas-theme.js \
|
|
|
49
60
|
--output <项目目录>/pages/src/workbench.themed.canvas.jsx
|
|
50
61
|
```
|
|
51
62
|
|
|
52
|
-
|
|
53
|
-
- `--theme-file`、`--output` 必填。输出使用独立文件,保留业务源文件和主题 CSS。
|
|
54
|
-
- `--theme-url` 可省略;填写时使用该 CSS 的真实上传地址或应用配置回读结果。
|
|
55
|
-
- 标记只写一次。脚本会插入 React、ConfigProvider、CanvasThemeProvider 和 useCanvasThemeContext;业务代码共用这些声明,hooks 使用 `React.useState` 等。
|
|
56
|
-
- 后续修改写入业务源文件或 app-theme.css,再运行脚本。编译和发布使用输出的 `.themed.canvas.jsx`。
|
|
57
|
-
|
|
58
|
-
需要本地主题预览时,省略 `--page`,将 `--output` 指向 `theme-preview.canvas.jsx`。生成的测试页默认开启 `preview`,使用 CSS 顶层 `:root` 变量;完整选择器、媒体查询和字体资源在实际应用中验证。测试真实应用主题时移除 `preview`。
|
|
59
|
-
|
|
60
|
-
## 3. 接入控件和图表
|
|
61
|
-
|
|
62
|
-
### 默认控件状态
|
|
63
|
+
生成片段已声明 React、ConfigProvider、CanvasThemeProvider 和 useCanvasThemeContext。源文件不要重复声明这些名字;React hooks 使用 `React.useState` 等。标记必须恰好出现一次,输出不能覆盖输入。修改主题或业务代码后重新运行脚本,只编译 `.themed.canvas.jsx`;需要发布时也使用这个文件。不要直接编辑派生文件,否则下次生成会覆盖手动修改。含标记的输入不能直接发布。
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
## 旧页面迁移
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
1. 先保留原页面用于对照。业务内容提取到 PageContent,清除旧 useCanvasTheme/readThemeColor、旧根 ref 和负责配色的 ConfigProvider;尺寸或圆角等独立配置可以保留。
|
|
68
|
+
2. 按上方示例加一个标记和一个 CanvasThemeProvider。Provider 已提供页面最小高度和底色,内容层不再重复设置整页 min-height;业务 padding、卡片和装饰仍保留。
|
|
69
|
+
3. 用脚本输出独立文件,编译并对照原页面验证。旧示例中的 Modal.useModal holder 仍须放在新 Provider 下。
|
|
70
|
+
4. 既有主题若使用旧页面背景别名 `--oyd-page-background`,先比对其与 --pod-page-bg-color 的值;有差异时在 design.md 确认共享底色再定点修改主题。脚本不会自动迁移旧主题文件、Schema 或已发布页面。
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
脚本只装配已维护的 Provider,不改写业务逻辑或主题 CSS。源码只读要求仍然优先。三个旧示例继续使用原 hook,供存量维护;直接拿来创建新页面时,必须按上述步骤替换主题链路。
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
## 运行契约
|
|
71
75
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
- antd 自动接收主色、表面、文字、填充和边框色,并应用上述控件状态默认值。成功、警告和错误使用 antd 默认色;尺寸、圆角、字体和图表色组按 design.md 设置。
|
|
83
|
-
- 图表在 PageContent 内调用 `useCanvasThemeContext()` 获取解析后的 token。
|
|
84
|
-
- 弹窗使用 `Modal.useModal`,消息使用上下文 API,holder 放在 Provider 内。
|
|
85
|
-
- 弹层默认使用 antd 的挂载位置。需要继承局部 CSS 时设置 `getPopupContainer`,并检查弹层是否被容器裁剪。
|
|
86
|
-
|
|
87
|
-
## 4. 检查主题和发布结果
|
|
88
|
-
|
|
89
|
-
先执行 `openyida compile <输出文件> --json`,再检查实际页面的主色、按钮状态、确认弹窗、延迟加载和换肤效果。用户要求发布时,执行 `openyida publish <输出文件> <appType> <formUuid>`。
|
|
90
|
-
|
|
91
|
-
编译会检查主题容器是否挂载、入口是否提前读取主题、主题上下文是否放在模块顶层。报错包含位置和调整方法,按提示修正后再次编译。发布后实际打开页面,检查首屏和主题交互;`--health-check` 用于核对保存内容,页面能否正常运行以浏览器结果为准。
|
|
92
|
-
|
|
93
|
-
编译还会拦截 ConfigProvider 中可确定的固定品牌色覆盖,报 `OPENYIDA_CANVAS_THEME_FIXED_BRAND`。按提示改为标准 Provider 或上下文解析值;仅把色值提到常量中不算修复。动态表达式、自绘 CSS、组件是否实际被 Provider 包住及宿主主题加载仍需验证,静态检查通过不能证明全部控件跟随主题。
|
|
94
|
-
|
|
95
|
-
验收至少切换两种不同应用主色,再逐一操作主按钮、链接、每个 Tab、禁用控件与弹层,检查选中/悬停/按下/焦点状态;再检查切页返回、异步内容出现后的颜色。只测默认蓝色无法发现写死蓝色的问题。记录实测项,无法使用真实页面时明确保留待验收项。
|
|
96
|
-
|
|
97
|
-
原始文件仍有 `/* @canvas-theme-provider */` 时,编译和发布会报 `OPENYIDA_CANVAS_THEME_NOT_ASSEMBLED`。按第 2 节生成独立输出文件后编译该输出;不要仅删除标记掩盖尚未接入的 Provider。
|
|
98
|
-
|
|
99
|
-
Context 返回 `token/status/source/revision`:
|
|
100
|
-
|
|
101
|
-
| status | 含义与处理 |
|
|
102
|
-
| --- | --- |
|
|
103
|
-
| loading | 正在读取主题 |
|
|
104
|
-
| ready | 已读到应用主色,继续检查页面效果 |
|
|
105
|
-
| preview | 使用本地变量快照,实际应用效果另行验证 |
|
|
106
|
-
| missing | 未读到主色,检查应用 CSS 是否加载 |
|
|
107
|
-
| error | 解析失败,检查主题变量和运行错误 |
|
|
76
|
+
- 默认模式:读取 Provider 实际作用域中的应用变量,由统一 ConfigProvider 传给 antd;不把本地快照覆盖到线上应用。
|
|
77
|
+
- `preview` 模式:使用本地 :root 快照,仅作用于当前页面;移除此属性后恢复应用主题。
|
|
78
|
+
- Context 提供 `token/status/source/revision`;状态为 loading、ready、preview、missing、error。ready 表示读到了主色,不代表整套主题完成视觉验收。revision 是生成快照的 SHA256,不是平台实时版本。
|
|
79
|
+
- 主色未读到时为 missing,解析抛异常时为 error;其他缺失颜色保留 antd 默认值。页面仍可渲染,但 missing/error 不能当成主题验收通过。
|
|
80
|
+
- 当前只自动适配主色、表面、文字、填充和边框。成功/警告/错误沿用 antd 默认;尺寸、圆角、字体、图表色组和完整 CSS 选择器不自动转换。
|
|
81
|
+
- 页面根背景由 Provider 提供;内容区只决定布局、卡片和装饰。不要再包带固定主色的 ConfigProvider。
|
|
82
|
+
- 如需弹层继承局部 CSS,给 Provider 传 getPopupContainer,并验证目标容器不会裁剪浮层;默认保留 antd 的挂载位置。
|
|
83
|
+
- 弹窗使用上下文内 Modal.useModal,消息使用上下文 API,保留 holder 在 Provider 下。不要用静态调用绕过主题。
|
|
84
|
+
- 主题通过祖先属性、head 样式变化、匹配 URL 的 link load 和 resize 更新。CSSOM 更新方需要显式派发 `openyida:theme-change`;平台尚未承诺该事件。
|
|
85
|
+
- 当前适配层不会修改底层 CodeCanvas。将来底层能力验证通过后再迁移,不能提前删掉兼容实现。
|
|
108
86
|
|
|
109
|
-
|
|
87
|
+
## 验收
|
|
110
88
|
|
|
111
|
-
|
|
89
|
+
先 compileCanvasLocal 检查生成页面;再分别验证 preview 和应用主题模式、主题延迟加载、换肤、按钮交互态、确认弹窗、缺失和异常状态。解析色值与颜色对比度仍需实际浏览器验证,脚本成功和编译成功不能替代视觉验收。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
| 场景 | 推荐库 | 何时使用 | 使用要点 |
|
|
8
8
|
| --- | --- | --- | --- |
|
|
9
|
-
| B 端业务界面 | `antd` | 表格、表单控件、按钮、弹窗、Tabs、Tag、Dropdown、分页 |
|
|
9
|
+
| B 端业务界面 | `antd` | 表格、表单控件、按钮、弹窗、Tabs、Tag、Dropdown、分页 | 通过 [CanvasThemeProvider 脚本](canvas-theme-provider.md) 统一接入主题;资源加载交给 YidaCodeCanvas runtime |
|
|
10
10
|
| 图表看板 | `recharts` | 折线、柱状、面积、饼图、简单仪表盘 | 容器必须有稳定高度;颜色用品牌色和语义色,不硬编码默认蓝 |
|
|
11
11
|
| 复杂可视化 | `d3` | 自定义关系图、力导向、桑基、特殊坐标系 | 只在 Recharts 覆盖不了时使用;自己管理 DOM/cleanup |
|
|
12
12
|
| 图标 | `lucide-react`,必要时 `@ant-design/icons` | 按钮、操作、状态、导航等功能性图标 | 默认使用 `lucide-react` named import;antd 语境可使用 `@ant-design/icons` Outlined 图标 |
|
|
@@ -73,18 +73,6 @@ import { SearchOutlined, PlusOutlined, EyeOutlined } from '@ant-design/icons';
|
|
|
73
73
|
|
|
74
74
|
同一页面选择一套主图标语言。默认主图标语言是 `lucide-react`;选择 `@ant-design/icons` 时,快捷入口、按钮、状态和导航仍然使用具体组件映射。
|
|
75
75
|
|
|
76
|
-
## 运行时图标校验
|
|
77
|
-
|
|
78
|
-
图标与底盒分别使用设计中的前景和背景变量,按 [主题一致性门禁](../../yida-design/references/page-quality-gates.md#4-主题一致性门禁) 验收。Lucide 用 `color` / `currentColor` 控制描边,Ant Design 图标用 `color`;不要统一覆盖全页 SVG 的 `fill`,也不要通过父级 opacity 弱化整组图标。
|
|
79
|
-
|
|
80
|
-
`openyida compile <源文件.canvas.jsx> --json` 和 Canvas 发布前编译都会离线检查 `lucide-react`、`@ant-design/icons` 的实际运行时导出。支持 named import(含别名)、命名空间的静态成员、解构和不可变别名;报错 `OPENYIDA_CANVAS_ICON_EXPORT_UNAVAILABLE` 包含 `packageName`、`exportName`、源码行列、`runtimeAsset` 和 `suggestions`。
|
|
81
|
-
|
|
82
|
-
不要根据业务词拼造组件名,也不要把最新版 npm / 官网图标目录当成宜搭运行时清单。例如当前运行时没有 `Museum`,可按语义选 `Landmark`;保留原 JSX 名称时写 `import { Landmark as Museum } from 'lucide-react'`。CLI 不会自动替换业务图标。
|
|
83
|
-
|
|
84
|
-
动态配置应先映射到明确导入的组件:`const Icon = actionIconMap[action] || AlertCircle`。任意 `Icons[name]` 的运行时值不在静态校验保证范围内;优先使用上面的显式映射,不能用动态取值或手写 window 全局绕过报错。默认导入的 `DynamicIcon` 及其既有用法保持兼容,仍需验证实际名称和渲染结果。
|
|
85
|
-
|
|
86
|
-
导出清单随 CLI 分发,编译不访问 CDN。平台升级图标包时维护者需重新核对运行时资产并更新清单。编译通过和发布回读均不代表浏览器渲染验收通过。
|
|
87
|
-
|
|
88
76
|
## emoji 报错时的图标修复
|
|
89
77
|
|
|
90
78
|
OpenYida 禁止页面源码和 page-spec 中出现 emoji。遇到 `contains emoji` 时,先判断该符号是否承担图标语义:
|