@salesforce/afv-skills 1.14.0 → 1.15.0
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/package.json +1 -1
- package/skills/applying-slds/SKILL.md +322 -0
- package/skills/applying-slds/checklists.md +83 -0
- package/skills/applying-slds/examples.md +283 -0
- package/skills/applying-slds/guidance/README.md +83 -0
- package/skills/applying-slds/guidance/blueprints-index.md +213 -0
- package/skills/applying-slds/guidance/icons-guidance.md +186 -0
- package/skills/applying-slds/guidance/overviews/borders.md +236 -0
- package/skills/applying-slds/guidance/overviews/color.md +266 -0
- package/skills/applying-slds/guidance/overviews/display-density.md +366 -0
- package/skills/applying-slds/guidance/overviews/icons.md +240 -0
- package/skills/applying-slds/guidance/overviews/illustrations.md +235 -0
- package/skills/applying-slds/guidance/overviews/shadows.md +176 -0
- package/skills/applying-slds/guidance/overviews/spacing.md +216 -0
- package/skills/applying-slds/guidance/overviews/typography.md +323 -0
- package/skills/applying-slds/guidance/overviews/utilities.md +542 -0
- package/skills/applying-slds/guidance/slds-development-guide.md +288 -0
- package/skills/applying-slds/guidance/styling-hooks/borders.md +202 -0
- package/skills/applying-slds/guidance/styling-hooks/color/expressive-palette-hooks.md +153 -0
- package/skills/applying-slds/guidance/styling-hooks/color/index.md +171 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/accent-hooks.md +204 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/feedback-hooks.md +768 -0
- package/skills/applying-slds/guidance/styling-hooks/color/semantic/surface-hooks.md +337 -0
- package/skills/applying-slds/guidance/styling-hooks/color/system-hooks.md +132 -0
- package/skills/applying-slds/guidance/styling-hooks/index.md +327 -0
- package/skills/applying-slds/guidance/styling-hooks/shadows.md +238 -0
- package/skills/applying-slds/guidance/styling-hooks/spacing.md +254 -0
- package/skills/applying-slds/guidance/styling-hooks/typography.md +448 -0
- package/skills/applying-slds/guidance/utilities/alignment.md +119 -0
- package/skills/applying-slds/guidance/utilities/borders.md +131 -0
- package/skills/applying-slds/guidance/utilities/box.md +125 -0
- package/skills/applying-slds/guidance/utilities/color.md +165 -0
- package/skills/applying-slds/guidance/utilities/dark-mode.md +111 -0
- package/skills/applying-slds/guidance/utilities/description-list.md +168 -0
- package/skills/applying-slds/guidance/utilities/floats.md +117 -0
- package/skills/applying-slds/guidance/utilities/grid.md +264 -0
- package/skills/applying-slds/guidance/utilities/horizontal-list.md +110 -0
- package/skills/applying-slds/guidance/utilities/hyphenation.md +84 -0
- package/skills/applying-slds/guidance/utilities/index.md +205 -0
- package/skills/applying-slds/guidance/utilities/interactions.md +89 -0
- package/skills/applying-slds/guidance/utilities/layout.md +109 -0
- package/skills/applying-slds/guidance/utilities/line-clamp.md +131 -0
- package/skills/applying-slds/guidance/utilities/margin.md +155 -0
- package/skills/applying-slds/guidance/utilities/media-object.md +161 -0
- package/skills/applying-slds/guidance/utilities/name-value-list.md +152 -0
- package/skills/applying-slds/guidance/utilities/padding.md +155 -0
- package/skills/applying-slds/guidance/utilities/position.md +177 -0
- package/skills/applying-slds/guidance/utilities/print.md +114 -0
- package/skills/applying-slds/guidance/utilities/scrollable.md +126 -0
- package/skills/applying-slds/guidance/utilities/sizing.md +190 -0
- package/skills/applying-slds/guidance/utilities/themes.md +121 -0
- package/skills/applying-slds/guidance/utilities/truncate.md +127 -0
- package/skills/applying-slds/guidance/utilities/typography.md +166 -0
- package/skills/applying-slds/guidance/utilities/vertical-list.md +166 -0
- package/skills/applying-slds/guidance/utilities/visibility.md +228 -0
- package/skills/applying-slds/metadata/README.md +84 -0
- package/skills/applying-slds/metadata/blueprints/components/accordion.yaml +304 -0
- package/skills/applying-slds/metadata/blueprints/components/activity-timeline.yaml +92 -0
- package/skills/applying-slds/metadata/blueprints/components/alert.yaml +103 -0
- package/skills/applying-slds/metadata/blueprints/components/app-launcher.yaml +94 -0
- package/skills/applying-slds/metadata/blueprints/components/avatar-group.yaml +81 -0
- package/skills/applying-slds/metadata/blueprints/components/avatar.yaml +97 -0
- package/skills/applying-slds/metadata/blueprints/components/badges.yaml +102 -0
- package/skills/applying-slds/metadata/blueprints/components/brand-band.yaml +198 -0
- package/skills/applying-slds/metadata/blueprints/components/breadcrumbs.yaml +95 -0
- package/skills/applying-slds/metadata/blueprints/components/builder-header.yaml +192 -0
- package/skills/applying-slds/metadata/blueprints/components/button-groups.yaml +82 -0
- package/skills/applying-slds/metadata/blueprints/components/button-icons.yaml +295 -0
- package/skills/applying-slds/metadata/blueprints/components/buttons.yaml +230 -0
- package/skills/applying-slds/metadata/blueprints/components/cards.yaml +124 -0
- package/skills/applying-slds/metadata/blueprints/components/carousel.yaml +140 -0
- package/skills/applying-slds/metadata/blueprints/components/chat.yaml +179 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-button-group.yaml +192 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-button.yaml +204 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox-toggle.yaml +177 -0
- package/skills/applying-slds/metadata/blueprints/components/checkbox.yaml +108 -0
- package/skills/applying-slds/metadata/blueprints/components/color-picker.yaml +172 -0
- package/skills/applying-slds/metadata/blueprints/components/combobox.yaml +136 -0
- package/skills/applying-slds/metadata/blueprints/components/counter.yaml +147 -0
- package/skills/applying-slds/metadata/blueprints/components/data-tables.yaml +157 -0
- package/skills/applying-slds/metadata/blueprints/components/datepickers.yaml +130 -0
- package/skills/applying-slds/metadata/blueprints/components/datetime-picker.yaml +155 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-composer.yaml +201 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-form-footer.yaml +161 -0
- package/skills/applying-slds/metadata/blueprints/components/docked-utility-bar.yaml +175 -0
- package/skills/applying-slds/metadata/blueprints/components/drop-zone.yaml +115 -0
- package/skills/applying-slds/metadata/blueprints/components/dueling-picklist.yaml +196 -0
- package/skills/applying-slds/metadata/blueprints/components/dynamic-icons.yaml +128 -0
- package/skills/applying-slds/metadata/blueprints/components/dynamic-menu.yaml +141 -0
- package/skills/applying-slds/metadata/blueprints/components/expandable-section.yaml +115 -0
- package/skills/applying-slds/metadata/blueprints/components/expression.yaml +143 -0
- package/skills/applying-slds/metadata/blueprints/components/feeds.yaml +125 -0
- package/skills/applying-slds/metadata/blueprints/components/file-selector.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/files.yaml +119 -0
- package/skills/applying-slds/metadata/blueprints/components/form-element.yaml +145 -0
- package/skills/applying-slds/metadata/blueprints/components/global-header.yaml +120 -0
- package/skills/applying-slds/metadata/blueprints/components/global-navigation.yaml +100 -0
- package/skills/applying-slds/metadata/blueprints/components/icons.yaml +138 -0
- package/skills/applying-slds/metadata/blueprints/components/illustration.yaml +205 -0
- package/skills/applying-slds/metadata/blueprints/components/input.yaml +151 -0
- package/skills/applying-slds/metadata/blueprints/components/list-builder.yaml +127 -0
- package/skills/applying-slds/metadata/blueprints/components/lookups.yaml +132 -0
- package/skills/applying-slds/metadata/blueprints/components/map.yaml +118 -0
- package/skills/applying-slds/metadata/blueprints/components/menus.yaml +134 -0
- package/skills/applying-slds/metadata/blueprints/components/modals.yaml +152 -0
- package/skills/applying-slds/metadata/blueprints/components/notifications.yaml +88 -0
- package/skills/applying-slds/metadata/blueprints/components/page-headers.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/panels.yaml +149 -0
- package/skills/applying-slds/metadata/blueprints/components/path.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/picklist.yaml +125 -0
- package/skills/applying-slds/metadata/blueprints/components/pills.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/popovers.yaml +120 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-bar.yaml +110 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-indicator.yaml +133 -0
- package/skills/applying-slds/metadata/blueprints/components/progress-ring.yaml +102 -0
- package/skills/applying-slds/metadata/blueprints/components/prompt.yaml +126 -0
- package/skills/applying-slds/metadata/blueprints/components/publishers.yaml +178 -0
- package/skills/applying-slds/metadata/blueprints/components/radio-button-group.yaml +172 -0
- package/skills/applying-slds/metadata/blueprints/components/radio-group.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/rich-text-editor.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/scoped-notifications.yaml +188 -0
- package/skills/applying-slds/metadata/blueprints/components/scoped-tabs.yaml +97 -0
- package/skills/applying-slds/metadata/blueprints/components/select.yaml +127 -0
- package/skills/applying-slds/metadata/blueprints/components/setup-assistant.yaml +152 -0
- package/skills/applying-slds/metadata/blueprints/components/slider.yaml +111 -0
- package/skills/applying-slds/metadata/blueprints/components/spinners.yaml +135 -0
- package/skills/applying-slds/metadata/blueprints/components/split-view.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/summary-detail.yaml +103 -0
- package/skills/applying-slds/metadata/blueprints/components/tabs.yaml +138 -0
- package/skills/applying-slds/metadata/blueprints/components/textarea.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/tiles.yaml +108 -0
- package/skills/applying-slds/metadata/blueprints/components/timepicker.yaml +111 -0
- package/skills/applying-slds/metadata/blueprints/components/toast.yaml +154 -0
- package/skills/applying-slds/metadata/blueprints/components/tooltips.yaml +107 -0
- package/skills/applying-slds/metadata/blueprints/components/tree-grid.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/trees.yaml +116 -0
- package/skills/applying-slds/metadata/blueprints/components/trial-bar.yaml +112 -0
- package/skills/applying-slds/metadata/blueprints/components/vertical-navigation.yaml +130 -0
- package/skills/applying-slds/metadata/blueprints/components/vertical-tabs.yaml +140 -0
- package/skills/applying-slds/metadata/blueprints/components/visual-picker.yaml +150 -0
- package/skills/applying-slds/metadata/blueprints/components/welcome-mat.yaml +136 -0
- package/skills/applying-slds/metadata/hooks-index.json +6272 -0
- package/skills/applying-slds/metadata/icon-metadata.json +38466 -0
- package/skills/applying-slds/metadata/utilities-index.json +21912 -0
- package/skills/applying-slds/references/component-selection.md +112 -0
- package/skills/applying-slds/references/icons-decision-guide.md +124 -0
- package/skills/applying-slds/references/styling-decision-guide.md +228 -0
- package/skills/applying-slds/references/utilities-quick-ref.md +125 -0
- package/skills/applying-slds/scripts/search-blueprints.cjs +117 -0
- package/skills/applying-slds/scripts/search-hooks.cjs +139 -0
- package/skills/applying-slds/scripts/search-icons.cjs +174 -0
- package/skills/applying-slds/scripts/search-utilities.cjs +161 -0
- package/skills/generating-custom-lightning-type/SKILL.md +17 -39
- package/skills/generating-custom-lightning-type/assets/primitive-types-and-constraints.md +41 -0
- package/skills/generating-custom-lightning-type/references/widget-rendition.md +124 -0
- package/skills/investigating-agentforce-architecture/README.md +156 -0
- package/skills/investigating-agentforce-architecture/SKILL.md +230 -0
- package/skills/investigating-agentforce-architecture/assets/cli/describe_sobject.yaml +16 -0
- package/skills/investigating-agentforce-architecture/assets/cli/describe_tooling_sobject.yaml +17 -0
- package/skills/investigating-agentforce-architecture/assets/cli/list_metadata_genaiprompttemplate.yaml +17 -0
- package/skills/investigating-agentforce-architecture/assets/cli/org_display.yaml +15 -0
- package/skills/investigating-agentforce-architecture/assets/cli/retrieve_genai_plugin.yaml +18 -0
- package/skills/investigating-agentforce-architecture/assets/cli/show_access_token.yaml +27 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/action_tree.mmd +20 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/data_flow.mmd +19 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/dependency_graph.mmd +19 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/invocation_sequence.mmd +20 -0
- package/skills/investigating-agentforce-architecture/assets/mermaid/planner_state.mmd +18 -0
- package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/apex_class_bodies_by_names.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/bot_definition_details.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/bot_version_lookup.soql +4 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_by_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_ids_by_names.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_definition_view_by_durable_ids.soql +4 -0
- package/skills/investigating-agentforce-architecture/assets/soql/flow_metadata_by_id.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/functions_by_plugins.soql +5 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_attrs_by_parent_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_bundle_functions.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/planner_definition_by_agent_chain.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugin_functions_by_plugin_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugin_instructions_by_plugin_ids.soql +3 -0
- package/skills/investigating-agentforce-architecture/assets/soql/plugins_by_planner.soql +4 -0
- package/skills/investigating-agentforce-architecture/references/architecture_sections.md +243 -0
- package/skills/investigating-agentforce-architecture/references/contract.json +244 -0
- package/skills/investigating-agentforce-architecture/references/soql_fields.md +512 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/__init__.py +1 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/fs_guard.py +329 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/paths.py +110 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/runtime.py +59 -0
- package/skills/investigating-agentforce-architecture/scripts/_shared/sql.py +10 -0
- package/skills/investigating-agentforce-architecture/scripts/cache_check.py +234 -0
- package/skills/investigating-agentforce-architecture/scripts/config.py +131 -0
- package/skills/investigating-agentforce-architecture/scripts/fetch_soql.py +689 -0
- package/skills/investigating-agentforce-architecture/scripts/finalize.py +295 -0
- package/skills/investigating-agentforce-architecture/scripts/main.py +2835 -0
- package/skills/investigating-agentforce-architecture/scripts/metadata_listing.py +265 -0
- package/skills/investigating-agentforce-architecture/scripts/parallel_retrieve.py +69 -0
- package/skills/investigating-agentforce-architecture/scripts/parse_bundle.py +215 -0
- package/skills/investigating-agentforce-architecture/scripts/parse_wave.py +845 -0
- package/skills/investigating-agentforce-architecture/scripts/probe_channels.py +302 -0
- package/skills/investigating-agentforce-architecture/scripts/render_architecture.py +1043 -0
- package/skills/investigating-agentforce-architecture/scripts/resolve_bot.py +255 -0
- package/skills/investigating-agentforce-architecture/scripts/resolve_invocation_target.py +130 -0
- package/skills/investigating-agentforce-architecture/scripts/rest_client.py +763 -0
- package/skills/investigating-agentforce-architecture/scripts/retrieve_planner.py +13 -0
- package/skills/investigating-agentforce-architecture/scripts/sf_cli.py +242 -0
- package/skills/investigating-agentforce-architecture/scripts/soql_loader.py +253 -0
- package/skills/investigating-agentforce-architecture/scripts/summarize_tree.py +143 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/__init__.py +0 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/_bootstrap.py +23 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/__init__.py +0 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/fixtures/genai_payloads.py +400 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check.py +307 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_cache_check_main.py +283 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_config.py +115 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_end_to_end_fixture.py +651 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_finalize.py +278 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_flow_children_inflation.py +582 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_fs_guard.py +113 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_iterative_wave_b.py +478 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_main_pipeline.py +3359 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parallel_retrieve.py +131 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_bundle.py +400 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave.py +644 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_classifiers.py +224 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_helpers.py +380 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_parse_wave_main.py +397 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_per_branch_visited.py +244 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_channels.py +359 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_probe_cli_recipes.py +185 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_render_architecture.py +810 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_bot.py +203 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_creds.py +157 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_resolve_invocation_target.py +145 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_rest_client.py +1253 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_runtime_override.py +100 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_sf_cli.py +261 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_signature_stamping.py +466 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_soql_loader.py +501 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_summarize_tree.py +241 -0
- package/skills/investigating-agentforce-architecture/scripts/tests/test_write_emit_ctx.py +480 -0
- package/skills/investigating-agentforce-architecture/tools/emit_env.py +157 -0
- package/skills/investigating-agentforce-architecture/tools/emit_result.py +262 -0
- package/skills/investigating-agentforce-architecture/tools/sanitize.py +33 -0
- package/skills/investigating-agentforce-architecture/tools/write_emit_ctx.py +332 -0
- package/skills/investigating-agentforce-d360/README.md +123 -0
- package/skills/investigating-agentforce-d360/SKILL.md +163 -0
- package/skills/investigating-agentforce-d360/assets/dc/app_generation.sql +51 -0
- package/skills/investigating-agentforce-d360/assets/dc/content_category.sql +44 -0
- package/skills/investigating-agentforce-d360/assets/dc/content_quality.sql +41 -0
- package/skills/investigating-agentforce-d360/assets/dc/discover_sessions.sql +36 -0
- package/skills/investigating-agentforce-d360/assets/dc/feedback.sql +47 -0
- package/skills/investigating-agentforce-d360/assets/dc/feedback_details.sql +38 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_records.sql +45 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_llm.sql +50 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_metadata.sql +44 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_request_tags.sql +42 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_requests.sql +89 -0
- package/skills/investigating-agentforce-d360/assets/dc/gateway_responses.sql +43 -0
- package/skills/investigating-agentforce-d360/assets/dc/generations.sql +52 -0
- package/skills/investigating-agentforce-d360/assets/dc/interactions.sql +53 -0
- package/skills/investigating-agentforce-d360/assets/dc/messages.sql +53 -0
- package/skills/investigating-agentforce-d360/assets/dc/messaging_session.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/moment_interactions.sql +34 -0
- package/skills/investigating-agentforce-d360/assets/dc/moments.sql +39 -0
- package/skills/investigating-agentforce-d360/assets/dc/participants.sql +48 -0
- package/skills/investigating-agentforce-d360/assets/dc/sessions.sql +78 -0
- package/skills/investigating-agentforce-d360/assets/dc/steps.sql +64 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_associations.sql +46 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_definition_associations.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/tag_definitions.sql +50 -0
- package/skills/investigating-agentforce-d360/assets/dc/tags.sql +37 -0
- package/skills/investigating-agentforce-d360/assets/dc/telemetry_spans.sql +55 -0
- package/skills/investigating-agentforce-d360/references/artifacts.md +50 -0
- package/skills/investigating-agentforce-d360/references/dc_dmo_fields.md +823 -0
- package/skills/investigating-agentforce-d360/references/dc_pipeline_contract.md +608 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/__init__.py +2 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/cli_override.py +98 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/fs_guard.py +334 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/paths.py +155 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/runtime.py +59 -0
- package/skills/investigating-agentforce-d360/scripts/_shared/sql.py +14 -0
- package/skills/investigating-agentforce-d360/scripts/assemble_dc.py +1624 -0
- package/skills/investigating-agentforce-d360/scripts/config.py +45 -0
- package/skills/investigating-agentforce-d360/scripts/dc.py +188 -0
- package/skills/investigating-agentforce-d360/scripts/discover_sessions.py +556 -0
- package/skills/investigating-agentforce-d360/scripts/fetch_dc.py +1045 -0
- package/skills/investigating-agentforce-d360/scripts/render_dc.py +1750 -0
- package/skills/investigating-agentforce-d360/scripts/resolve_session.py +264 -0
- package/skills/investigating-agentforce-d360/scripts/storage.py +92 -0
- package/skills/investigating-agentforce-d360/scripts/tests/__init__.py +0 -0
- package/skills/investigating-agentforce-d360/scripts/tests/_bootstrap.py +15 -0
- package/skills/investigating-agentforce-d360/scripts/tests/fixtures/__init__.py +0 -0
- package/skills/investigating-agentforce-d360/scripts/tests/fixtures/synthetic_session.py +424 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_bootstrap_and_mode.py +115 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct.py +220 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_gateway_direct_integration.py +158 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_helpers.py +287 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_assemble_dc_integration.py +247 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_dc_and_resolve_session.py +433 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions.py +458 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_discover_sessions_grep_ci.py +193 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_helpers.py +266 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_identity.py +528 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_main.py +251 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall.py +229 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_fetch_dc_waterfall_full.py +283 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_identity_coherence.py +327 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_branches.py +256 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_gateway_direct.py +130 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_helpers.py +291 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_integration.py +220 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_planner_llm_calls.py +284 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_render_dc_show_prompts_gating.py +215 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_from_disk.py +100 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_resolve_session_main.py +149 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_runtime_override.py +104 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape.py +95 -0
- package/skills/investigating-agentforce-d360/scripts/tests/test_session_shape_dropped_by_stdm.py +85 -0
- package/skills/managing-managed-event-subscription/SKILL.md +152 -0
- package/skills/managing-managed-event-subscription/assets/managed-event-subscription-template.xml +20 -0
- package/skills/managing-managed-event-subscription/references/delete-guide.md +57 -0
- package/skills/managing-managed-event-subscription/references/topic-name-formats.md +26 -0
- package/skills/managing-managed-event-subscription/references/update-constraints.md +30 -0
- package/skills/uplifting-components-to-slds2/SKILL.md +3 -2
- package/skills/uplifting-components-to-slds2/references/color-hooks-decision-guide.md +30 -9
- package/skills/uplifting-components-to-slds2/references/examples.md +24 -6
- package/skills/validating-slds/SKILL.md +262 -0
- package/skills/validating-slds/references/quality-checks.md +308 -0
- package/skills/validating-slds/references/report-format.md +302 -0
- package/skills/validating-slds/scripts/analyze-quality.cjs +521 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: slds.guidance.overview.borders
|
|
3
|
+
title: Borders and Radius Overview
|
|
4
|
+
description: Foundational principles and constraints for border and radius decisions in SLDS
|
|
5
|
+
summary: "Comprehensive border guidance covering SLDS 2 design philosophy (minimal borders), border width usage, radius categories, and when borders are appropriate. Critical for SLDS 1 to SLDS 2 migration."
|
|
6
|
+
|
|
7
|
+
artifact_type: overview
|
|
8
|
+
domain: overviews
|
|
9
|
+
topic: borders
|
|
10
|
+
|
|
11
|
+
content_format: narrative
|
|
12
|
+
complexity: foundational
|
|
13
|
+
audience: [implementer, designer]
|
|
14
|
+
|
|
15
|
+
tasks: [learn, choose, implement]
|
|
16
|
+
|
|
17
|
+
refs:
|
|
18
|
+
- slds.guidance.hooks.borders
|
|
19
|
+
|
|
20
|
+
tags: [borders, radius, corners, visual-structure, slds2-migration]
|
|
21
|
+
keywords: [border width, border radius, corners, SLDS 2 design, minimal borders, visual separation, container borders]
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Borders and Radius Guidance for SLDS Implementation
|
|
25
|
+
|
|
26
|
+
**Purpose:** This document provides the foundational principles and constraints for all border and radius decisions in Salesforce Lightning Design System. Borders and radiuses are basic visual design elements that help create clarity, hierarchy, and a consistent look. When implementing components and layouts, follow these guidelines to ensure visual harmony and cohesion across all experiences.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Core Principles
|
|
31
|
+
|
|
32
|
+
When working with borders and radiuses in UI interfaces, adhere to these foundational principles:
|
|
33
|
+
|
|
34
|
+
1. **Create clarity through structure.** Borders delineate components and sections for better readability and navigation. Use them to separate content areas, indicate clickable elements, or highlight active states.
|
|
35
|
+
|
|
36
|
+
2. **Support hierarchy and meaning.** Borders differentiate elements to show importance or interactivity. Ensure border treatments draw attention to important features without overwhelming the experience.
|
|
37
|
+
|
|
38
|
+
3. **Maintain consistency and harmony.** Apply consistent thickness, color, and radius across similar elements. Avoid mixing sharp and rounded corners within the same component to keep designs looking polished and cohesive.
|
|
39
|
+
|
|
40
|
+
4. **Foster accessibility.** Use subtle but effective visual cues to support usability for all users. Ensure borders remain visible and easy to perceive across all screen sizes and resolutions.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## SLDS 2 Design Philosophy
|
|
45
|
+
|
|
46
|
+
**CRITICAL:** SLDS 2 does not use borders around cards and components, unlike SLDS 1.
|
|
47
|
+
|
|
48
|
+
This represents a significant design shift from previous versions. When uplifting code from SLDS 1 to SLDS 2, remove decorative borders from cards, panels, and container components. SLDS 2 relies more on spacing, shadows, and surface colors to create visual separation rather than explicit borders.
|
|
49
|
+
|
|
50
|
+
**When borders ARE appropriate in SLDS 2:**
|
|
51
|
+
- Separating content using neutral borders to divide sections or groups of related content
|
|
52
|
+
- Highlighting interactive elements by applying neutral borders for structure, or accent colors for specific branded variants and focus states
|
|
53
|
+
- Communicating component states with context-appropriate colors like red for error states or lighter shades for disabled components
|
|
54
|
+
- Creating subtle divider lines between content areas
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Borders Fundamentals
|
|
59
|
+
|
|
60
|
+
### What are Borders?
|
|
61
|
+
|
|
62
|
+
Borders outline elements and provide structure, serving as visual separators, indicators of interactivity, or highlights for active or selected states. Border width, sometimes called stroke width, refers to the thickness of the lines that define the edges of components, containers, and other visual elements.
|
|
63
|
+
|
|
64
|
+
**Borders help with these design aspects:**
|
|
65
|
+
- Differentiate between various UI elements, such as cards, panels, or input fields
|
|
66
|
+
- Highlight important information and de-emphasize less important information
|
|
67
|
+
- Make content more accessible by ensuring that borders are always visible and easy to read on all screen sizes and resolutions
|
|
68
|
+
|
|
69
|
+
### Best Practices for Borders
|
|
70
|
+
|
|
71
|
+
- **Less is Best** — Apply borders sparingly to avoid visual clutter. SLDS 2 favors minimal border usage.
|
|
72
|
+
- **Consistency** — Use consistent thickness and color across similar elements.
|
|
73
|
+
- **Subtlety** — Use light or subtle borders to create separation without overwhelming the interface.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Radius Fundamentals
|
|
78
|
+
|
|
79
|
+
### What is Radius?
|
|
80
|
+
|
|
81
|
+
Radius defines how rounded the corners are on elements. Borders have a radius, and container elements such as cards and buttons have a radius too. Rounded corners soften the visual appearance and create a more approachable design style.
|
|
82
|
+
|
|
83
|
+
**Radius contributes to the design in these ways:**
|
|
84
|
+
- Establish a consistent style for rounded corners across components such as cards, modals, and buttons
|
|
85
|
+
- Create a modern, approachable aesthetic that aligns with the brand identity
|
|
86
|
+
- Improve usability by subtly guiding users' focus to key interface elements
|
|
87
|
+
|
|
88
|
+
> **For radius sizing guidance** and component examples, refer to the Borders and Radius Styling Hooks documentation.
|
|
89
|
+
|
|
90
|
+
### Best Practices for Radius
|
|
91
|
+
|
|
92
|
+
- **Consistency** — Apply the same radius to similar elements for a cohesive design style throughout the interface.
|
|
93
|
+
- **Harmony** — Avoid mixing sharp and rounded corners. Mixing these styles within the same component can create a visually jarring experience and reduce design harmony.
|
|
94
|
+
- **Branding** — Use the radius to reflect the brand's personality. Whether the brand should be approachable, professional, or bold, use the SLDS 2 design guidelines to choose the right radius for the elements.
|
|
95
|
+
- **Usability** — Confirm through testing that rounded corners don't detract from clarity or usability, especially for focus and hover states in interactive elements.
|
|
96
|
+
|
|
97
|
+
### Nested Container Pattern
|
|
98
|
+
|
|
99
|
+
Nested containers should use the next smaller radius value to maintain visual harmony. For example, if an outer card uses `--slds-g-radius-border-4`, a nested card inside should use `--slds-g-radius-border-3`. This creates a consistent visual rhythm where inner elements have subtly tighter corners than their parent containers.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Border Color Fundamentals
|
|
104
|
+
|
|
105
|
+
SLDS 2 uses specific colors for borders to align with the system's visual design, ensuring clarity and usability across all products.
|
|
106
|
+
|
|
107
|
+
### Common Border Colors and Meanings
|
|
108
|
+
|
|
109
|
+
- **Neutral grays** — The standard choice for creating structural separation and outlining functional components
|
|
110
|
+
- **Accent colors (Blue)** — Reserved for specialized branded treatments and thematic emphasis
|
|
111
|
+
- **Dark blue** — Indicates an element has focus
|
|
112
|
+
- **Red** — Indicates an error state
|
|
113
|
+
- **Yellow** — Indicates a warning state
|
|
114
|
+
- **Transparent or white** — Maintains visual balance in lighter or less prominent elements
|
|
115
|
+
|
|
116
|
+
### Where to Use Border Colors
|
|
117
|
+
|
|
118
|
+
- **Separate and outline content** — Use neutral gray borders to divide sections or outline standard functional components (buttons, inputs)
|
|
119
|
+
- **Highlight branded elements** — Apply accent colors for specialized branded treatments or thematic emphasis
|
|
120
|
+
- **Communicate focus** — Use dark blue focus indicators to support accessibility
|
|
121
|
+
|
|
122
|
+
> **For complete border color hook details**, refer to the Color Overview and Semantic Color Styling Hooks documentation, which covers the full semantic color system including border-specific tokens.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Theming Considerations
|
|
127
|
+
|
|
128
|
+
SLDS 2 allows for customizable theming. When making changes to borders or radiuses:
|
|
129
|
+
|
|
130
|
+
- Ensure any customizations align with brand guidelines
|
|
131
|
+
- Maintain contrast ratios for accessibility
|
|
132
|
+
- Verify border treatments appear correctly across light/dark themes
|
|
133
|
+
- Use styling hooks to enable theme adaptability rather than hard-coded values
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Density Awareness Note
|
|
138
|
+
|
|
139
|
+
**Important:** Unlike spacing and typography, borders and radius values are NOT density-aware in SLDS 2. Border width and radius values remain constant regardless of whether the user has selected comfy or compact display density mode.
|
|
140
|
+
|
|
141
|
+
When implementing density-aware layouts, note that:
|
|
142
|
+
- Border thickness stays the same across density modes
|
|
143
|
+
- Radius values stay the same across density modes
|
|
144
|
+
- Spacing around bordered elements may change (via density-aware spacing hooks), but the borders themselves do not adapt
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Available Styling Hooks
|
|
149
|
+
|
|
150
|
+
### Border Width Hooks
|
|
151
|
+
|
|
152
|
+
- `--slds-g-sizing-border-*`
|
|
153
|
+
|
|
154
|
+
### Border Radius Hooks
|
|
155
|
+
|
|
156
|
+
- `--slds-g-radius-border-*`
|
|
157
|
+
- `--slds-g-radius-border-circle`
|
|
158
|
+
- `--slds-g-radius-border-pill`
|
|
159
|
+
|
|
160
|
+
### Border Color Hooks
|
|
161
|
+
|
|
162
|
+
Border color hooks are part of the semantic color system. Key hooks include:
|
|
163
|
+
|
|
164
|
+
- `--slds-g-color-border-*` — Neutral borders for functional structure
|
|
165
|
+
- `--slds-g-color-border-accent-*` — Branded emphasis and thematic exceptions
|
|
166
|
+
- `--slds-g-color-border-error-*` — Error state borders
|
|
167
|
+
- `--slds-g-color-border-success-*` — Success state borders
|
|
168
|
+
- `--slds-g-color-border-warning-*` — Warning state borders
|
|
169
|
+
- `--slds-g-color-border-disabled-*` — Disabled state borders
|
|
170
|
+
- `--slds-g-color-border-inverse-*` — Borders on dark backgrounds
|
|
171
|
+
|
|
172
|
+
> **For detailed usage patterns**, refer to the Borders and Radius Styling Hooks documentation.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Implementation Workflow
|
|
177
|
+
|
|
178
|
+
Follow this sequence when implementing any border or radius solution:
|
|
179
|
+
|
|
180
|
+
### Step 1: Determine if a Border is Needed
|
|
181
|
+
|
|
182
|
+
Apply the SLDS 2 design philosophy — borders should be used sparingly. Ask:
|
|
183
|
+
- Is this border necessary for structure or clarity?
|
|
184
|
+
- Could spacing or shadows achieve the same visual separation?
|
|
185
|
+
- Am I uplifting from SLDS 1 where borders were used decoratively?
|
|
186
|
+
|
|
187
|
+
### Step 2: Select the Appropriate Treatment
|
|
188
|
+
|
|
189
|
+
If a border is needed, determine:
|
|
190
|
+
- **Width** — Select the visual weight needed for the component type
|
|
191
|
+
- **Radius** — Match to content density (smaller for dense, larger for spacious)
|
|
192
|
+
- **Color** — Select based on semantic meaning (neutral, accent, feedback, inverse)
|
|
193
|
+
|
|
194
|
+
### Step 3: Apply Styling Hooks
|
|
195
|
+
|
|
196
|
+
Never use hard-coded values. Use the appropriate styling hooks:
|
|
197
|
+
- Width: `--slds-g-sizing-border-*`
|
|
198
|
+
- Radius: `--slds-g-radius-border-*`
|
|
199
|
+
- Color: `--slds-g-color-border-*`
|
|
200
|
+
|
|
201
|
+
### Step 4: Validate Implementation
|
|
202
|
+
|
|
203
|
+
Before finalizing, verify the implementation using the Pre-Implementation Checklist below.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Pre-Implementation Checklist
|
|
208
|
+
|
|
209
|
+
Before generating or modifying any border or radius related code, verify:
|
|
210
|
+
|
|
211
|
+
| Requirement | Status |
|
|
212
|
+
|-------------|--------|
|
|
213
|
+
| **Design Philosophy** | |
|
|
214
|
+
| Confirmed border is necessary (not decorative holdover from SLDS 1) | [ ] |
|
|
215
|
+
| Evaluated alternatives (spacing, shadows) before adding border | [ ] |
|
|
216
|
+
| **Hook Selection** | |
|
|
217
|
+
| Using styling hooks (no hard-coded pixel values) | [ ] |
|
|
218
|
+
| Width hook selected matches visual weight needed | [ ] |
|
|
219
|
+
| Radius hook selected matches content density | [ ] |
|
|
220
|
+
| Color hook selected matches semantic meaning | [ ] |
|
|
221
|
+
| **Consistency & Harmony** | |
|
|
222
|
+
| Consistent border treatment across similar elements | [ ] |
|
|
223
|
+
| No mixing of sharp and rounded corners in same component | [ ] |
|
|
224
|
+
| Border color aligns with surrounding design context | [ ] |
|
|
225
|
+
| **Accessibility** | |
|
|
226
|
+
| Border visible and perceivable across screen sizes | [ ] |
|
|
227
|
+
| Sufficient contrast with adjacent surfaces | [ ] |
|
|
228
|
+
| Focus states clearly indicated | [ ] |
|
|
229
|
+
| **Theming** | |
|
|
230
|
+
| Works across light/dark themes | [ ] |
|
|
231
|
+
| Maintains brand alignment | [ ] |
|
|
232
|
+
|
|
233
|
+
**Target outcome:** Clean, minimal interfaces that use borders purposefully for structure and meaning, not decoration. Visual separation achieved through spacing and depth where possible.
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: slds.guidance.overview.color
|
|
3
|
+
title: Color Overview
|
|
4
|
+
description: Foundational principles and constraints for all color decisions in SLDS
|
|
5
|
+
summary: "Comprehensive color guidance covering the 85-5-10 density rule, color role taxonomy, hook selection hierarchy, and numerical color system. The primary reference for all color implementation decisions."
|
|
6
|
+
|
|
7
|
+
artifact_type: overview
|
|
8
|
+
domain: overviews
|
|
9
|
+
topic: color
|
|
10
|
+
|
|
11
|
+
content_format: narrative
|
|
12
|
+
complexity: foundational
|
|
13
|
+
audience: [implementer, designer]
|
|
14
|
+
|
|
15
|
+
tasks: [learn, choose, implement]
|
|
16
|
+
|
|
17
|
+
refs:
|
|
18
|
+
- slds.guidance.hooks.color.accent
|
|
19
|
+
- slds.guidance.hooks.color.surface
|
|
20
|
+
- slds.guidance.hooks.color.feedback
|
|
21
|
+
- slds.guidance.hooks.color.system
|
|
22
|
+
- slds.guidance.hooks.color.expressive-palette
|
|
23
|
+
|
|
24
|
+
tags: [color, semantic-color, accessibility, visual-hierarchy, theming]
|
|
25
|
+
keywords: [color roles, 85-5-10 rule, hook selection, semantic hooks, color taxonomy, surfaces, accents, feedback colors]
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Color Guidance for SLDS Implementation
|
|
29
|
+
|
|
30
|
+
**Purpose:** This document provides the foundational principles and constraints for all color-related decisions in Salesforce Lightning Design System. Always reference the companion metadata files for specific token names, contrast pairings, and approved combinations.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Core Principles
|
|
35
|
+
|
|
36
|
+
When working with colors in UI interfaces, adhere to these three foundational principles:
|
|
37
|
+
|
|
38
|
+
1. **Signal hierarchy and meaning.** Color must highlight actions, alerts, and key information without overpowering the experience. Do not use color decoratively.
|
|
39
|
+
|
|
40
|
+
2. **Accessibility is mandatory.** All implementations must meet WCAG 2.1 AA minimum standards for text and interactive elements. Use only the approved pairings documented in the metadata layer.
|
|
41
|
+
|
|
42
|
+
3. **Maintain system consistency.** Always use semantic styling hooks. These tokens automatically adapt to brand themes, density modes, and light/dark modes. Never use hard-coded color values.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Color Role Taxonomy
|
|
47
|
+
|
|
48
|
+
Every element must be classified into one of these five color roles before selecting a token:
|
|
49
|
+
|
|
50
|
+
- **Surfaces:** The base canvas for content. Each new layer (panel, modal, popover) is a distinct surface with its own depth level. Use surface tokens for backgrounds.
|
|
51
|
+
|
|
52
|
+
- **Containers:** Elements that hold interactive or readable content (cards, buttons, tabsets). Always pair container background colors with their corresponding "on-container" tokens for text and icons.
|
|
53
|
+
|
|
54
|
+
- **Accents:** Colors that draw attention to primary interactions or selected states. Use sparingly and only for meaningful emphasis. Overuse destroys visual hierarchy.
|
|
55
|
+
|
|
56
|
+
- **Feedback colors:** Status indicators (error, warning, success, info, disabled). Reserve exclusively for CRUD operations and system feedback. Never use for general styling.
|
|
57
|
+
|
|
58
|
+
- **Borders/dividers:** Structural elements that create separation. Must maintain sufficient contrast with adjacent surfaces and containers.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Color Density Rule (85-5-10)
|
|
63
|
+
|
|
64
|
+
**CONSTRAINT:** All UI implementations should maintain the following color distribution. This distribution is strongly recommended for maintaining SLDS visual consistency.
|
|
65
|
+
|
|
66
|
+
### UI Foundation: 85% (Required)
|
|
67
|
+
Foundational colors create the neutral canvas for all content. Use whites, light grays, dark grays, and dark blue for contrast with text and interactive elements.
|
|
68
|
+
|
|
69
|
+
**Allowed Palettes:** Whites, light grays, dark grays, dark blue
|
|
70
|
+
**Usage:** Page backgrounds, surface layers, neutral containers, structural elements
|
|
71
|
+
|
|
72
|
+
### Accents: 5% (Required)
|
|
73
|
+
Accent colors are reserved for strategic emphasis on interactive elements. Use the foundational accent (electric blue) and feedback palettes (pink, yellow, teal, blue) to guide users toward task completion.
|
|
74
|
+
|
|
75
|
+
**Allowed Palettes:** Foundational accent (electric blue), feedback (pink, yellow, teal, blue), functional accent colors
|
|
76
|
+
**Usage:** Primary actions, selected states, status indicators, critical CTAs
|
|
77
|
+
|
|
78
|
+
### Expressive Colors: 10% (Maximum)
|
|
79
|
+
Expressive palettes provide extended color options for data visualization and customized app experiences. Use with restraint.
|
|
80
|
+
|
|
81
|
+
**Allowed Palettes:** Green, Cloud Blue, Indigo, Purple, Violet, Red, Hot Orange, Orange
|
|
82
|
+
**Usage:** Data charts, custom branding, visualization highlights, app-specific accents
|
|
83
|
+
|
|
84
|
+
**Strict Usage Rules:**
|
|
85
|
+
- **Cool tones first.** Prioritize Cloud Blue, Purple, Indigo, Violet for general page designs. These integrate better with the foundational palette.
|
|
86
|
+
- **Indigo warning.** Indigo resembles electric blue. Using it carelessly will break button hierarchy and confuse users about interactive affordances.
|
|
87
|
+
- **Warm = attention only.** Orange, Red, and Green signal importance or issues. Reserve them exclusively for drawing user attention to critical information.
|
|
88
|
+
- **Prevent feedback confusion.** Expressive colors can be misinterpreted as system feedback (pink=error, yellow=warning, teal=success, blue=info). Apply expressive colors minimally to avoid this conflict.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## The Numerical Color System
|
|
93
|
+
|
|
94
|
+
**System Architecture:** SLDS uses a 0-100 point scale where accessibility compliance is mathematically guaranteed:
|
|
95
|
+
|
|
96
|
+
- **100 points** = white
|
|
97
|
+
- **0 points** = black
|
|
98
|
+
- **Color lane** = full 0-100 spectrum of a single hue
|
|
99
|
+
- **Color step** = 5-10 point increments within a lane (e.g., Cloud Blue-15, Cloud Blue-25, Cloud Blue-35)
|
|
100
|
+
|
|
101
|
+
### How It Works
|
|
102
|
+
|
|
103
|
+
Colors share horizontal point values across different hues. This means the same mathematical rules apply:
|
|
104
|
+
- Vertically within each monochromatic palette (single lane)
|
|
105
|
+
- Horizontally across all color lanes (different hues)
|
|
106
|
+
|
|
107
|
+
This consistency enables pattern replication across the entire system.
|
|
108
|
+
|
|
109
|
+
### Automatic Accessibility: Magic Numbers
|
|
110
|
+
|
|
111
|
+
**CRITICAL:** Use these point separations to achieve WCAG compliance without manual checking:
|
|
112
|
+
|
|
113
|
+
| Separation | Contrast Ratio | Use Case | WCAG Level |
|
|
114
|
+
|------------|----------------|----------|------------|
|
|
115
|
+
| **50 points** | 4.5:1+ | Text on backgrounds, body copy | AA (required) |
|
|
116
|
+
| **40 points** | 3:1+ | UI elements, borders, non-text | AA (required) |
|
|
117
|
+
|
|
118
|
+
**Works across hues:** A 50-point separation maintains 4.5:1 contrast even when using different color lanes.
|
|
119
|
+
|
|
120
|
+
**Example Application:**
|
|
121
|
+
- Page background: Gray-95
|
|
122
|
+
- Button background: Any-50 (45 point difference = compliant)
|
|
123
|
+
- Button hover: Any-40 (55 point difference = compliant)
|
|
124
|
+
- Button text: Any-0 or Any-100 depending on background
|
|
125
|
+
|
|
126
|
+
The 10-point step from 50→40 creates consistent hover states across all color lanes.
|
|
127
|
+
|
|
128
|
+
**Attribution:** The "magic numbers" concept originates from the U.S. Web Design System (USWDS) and has been adopted into SLDS to ensure systematic color progression and accessibility.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Implementation Workflow
|
|
133
|
+
|
|
134
|
+
Follow this mandatory sequence when implementing any color solution:
|
|
135
|
+
|
|
136
|
+
### Step 1: Classify the Element
|
|
137
|
+
Identify the element's semantic role:
|
|
138
|
+
- Is it a **surface** (background layer)?
|
|
139
|
+
- Is it a **container** (holds content)?
|
|
140
|
+
- Is it an **accent** (emphasis/interaction)?
|
|
141
|
+
- Is it **feedback** (status/state)?
|
|
142
|
+
- Is it a **border/divider** (structure)?
|
|
143
|
+
|
|
144
|
+
### Step 2: Reference the Metadata
|
|
145
|
+
Never invent color values. The companion metadata files contain:
|
|
146
|
+
- Approved styling hook names
|
|
147
|
+
- Pre-validated contrast pairings
|
|
148
|
+
- State transition sequences (default → hover → active → disabled)
|
|
149
|
+
- Theme adaptations (light/dark/branded)
|
|
150
|
+
|
|
151
|
+
### Step 3: Handle Exceptions
|
|
152
|
+
If no semantic hook matches the requirement:
|
|
153
|
+
1. Document why standard patterns don't apply
|
|
154
|
+
2. Verify contrast manually using the numerical system
|
|
155
|
+
3. Ensure brand consistency is maintained
|
|
156
|
+
4. Flag for design system team review
|
|
157
|
+
|
|
158
|
+
### Step 4: Validate Implementation
|
|
159
|
+
Before finalizing, verify the implementation using the Pre-Implementation Checklist below to ensure all color requirements are met.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Metadata Integration
|
|
164
|
+
|
|
165
|
+
**Source of Truth:** The metadata files are authoritative for all implementation details.
|
|
166
|
+
|
|
167
|
+
**What the metadata provides:**
|
|
168
|
+
- Exact token names and values
|
|
169
|
+
- Pre-validated contrast pairings (text-on-background, icon-on-surface)
|
|
170
|
+
- State progression maps (default → hover → active → focus → disabled)
|
|
171
|
+
- Cross-reference between semantic roles and color values
|
|
172
|
+
- Theme-specific overrides
|
|
173
|
+
|
|
174
|
+
**When to consult metadata:**
|
|
175
|
+
- Before selecting any color token
|
|
176
|
+
- When implementing state changes
|
|
177
|
+
- When validating a custom pattern
|
|
178
|
+
- When introducing new component styles
|
|
179
|
+
|
|
180
|
+
**Validation question:** Does this color choice reinforce semantic meaning, meet accessibility standards, and maintain brand consistency?
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Hook Selection Hierarchy
|
|
185
|
+
|
|
186
|
+
When selecting color hooks, follow this decision order:
|
|
187
|
+
|
|
188
|
+
### 1. Semantic Hooks (First Choice — 85% of Cases)
|
|
189
|
+
**Pattern:** `--slds-g-color-{purpose}-{n}` (e.g., `error-1`, `accent-container-1`, `surface-1`)
|
|
190
|
+
|
|
191
|
+
Use semantic hooks for standard UI patterns. These hooks:
|
|
192
|
+
- Are purpose-built for specific UI use cases (errors, accents, surfaces, feedback)
|
|
193
|
+
- Automatically adapt to light/dark mode with curated values
|
|
194
|
+
- Have pre-validated accessibility pairings
|
|
195
|
+
- Reference system and palette hooks underneath
|
|
196
|
+
|
|
197
|
+
**Use when:** You can describe your element using semantic terms (surface, accent, error, warning, success, disabled).
|
|
198
|
+
|
|
199
|
+
### 2. System Hooks (Edge Cases — 5-10% of Cases)
|
|
200
|
+
**Pattern:** `--slds-g-color-{category}-base-{grade}` (e.g., `error-base-50`, `brand-base-40`)
|
|
201
|
+
|
|
202
|
+
Use system hooks when semantic hooks don't cover your specific need. These hooks:
|
|
203
|
+
- Provide grade-level control within a color category
|
|
204
|
+
- Still adapt to light/dark mode with curated values per mode
|
|
205
|
+
- Reference palette hooks underneath
|
|
206
|
+
|
|
207
|
+
**Use when:** Data visualization, legacy migration, or custom requirements where semantic hooks are insufficient.
|
|
208
|
+
|
|
209
|
+
### 3. Palette Hooks (Raw Access — Rare Cases)
|
|
210
|
+
**Pattern:** `--slds-g-color-palette-{color}-{grade}` (e.g., `palette-pink-50`, `palette-cloud-blue-30`)
|
|
211
|
+
|
|
212
|
+
Use palette hooks only when system hooks don't meet your requirements. These hooks:
|
|
213
|
+
- Provide direct access to the color palette by color name and grade
|
|
214
|
+
- Have light/dark mode variants
|
|
215
|
+
- Are the foundation that semantic and system hooks reference
|
|
216
|
+
|
|
217
|
+
**Use when:** Custom color requirements that don't fit any semantic or system category.
|
|
218
|
+
|
|
219
|
+
### Internal Hooks (Not for External Use)
|
|
220
|
+
|
|
221
|
+
The following hook prefixes are **internal to Salesforce** and should not be used by external developers:
|
|
222
|
+
|
|
223
|
+
| Prefix | Name | Audience |
|
|
224
|
+
|--------|------|----------|
|
|
225
|
+
| `--slds-s-*` | Shared hooks | Internal Salesforce only |
|
|
226
|
+
| `--slds-c-*` | Component hooks | Internal Salesforce only |
|
|
227
|
+
|
|
228
|
+
### How They Connect (Aliasing Chain)
|
|
229
|
+
|
|
230
|
+
Semantic hooks reference system hooks, which reference palette hooks. When the theme changes (light → dark), the underlying references change, so semantic hooks automatically adapt.
|
|
231
|
+
|
|
232
|
+
**Example:** `--slds-g-color-error-1`
|
|
233
|
+
- Light mode: → `error-base-50` → `palette-pink-50` → #hex
|
|
234
|
+
- Dark mode: → `error-base-40` → `palette-pink-40` → #different-hex
|
|
235
|
+
|
|
236
|
+
This aliasing chain means you get theme adaptation "for free" when using semantic hooks.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Pre-Implementation Checklist
|
|
241
|
+
|
|
242
|
+
Before generating or modifying any color-related code, verify:
|
|
243
|
+
|
|
244
|
+
| Requirement | Status |
|
|
245
|
+
|-------------|--------|
|
|
246
|
+
| **Element Classification** | |
|
|
247
|
+
| Element classified by semantic role (surface/container/accent/feedback/border) | [ ] |
|
|
248
|
+
| **Token Selection & Metadata** | |
|
|
249
|
+
| Color token identified from metadata (no hard-coded hex/RGB values) | [ ] |
|
|
250
|
+
| Metadata consulted for approved styling hook names | [ ] |
|
|
251
|
+
| Pre-validated contrast pairings referenced from metadata | [ ] |
|
|
252
|
+
| "On" counterpart specified (for containers) | [ ] |
|
|
253
|
+
| **Contrast & Accessibility** | |
|
|
254
|
+
| Contrast requirements met using numerical system (50pts text, 40pts UI) | [ ] |
|
|
255
|
+
| Works with the numerical color system for automatic accessibility | [ ] |
|
|
256
|
+
| **Color Distribution & Usage** | |
|
|
257
|
+
| 85-5-10 density rule maintained (85% foundation, 5% accent, 10% expressive) | [ ] |
|
|
258
|
+
| Accent/feedback colors used sparingly and meaningfully | [ ] |
|
|
259
|
+
| Color reinforces semantic meaning rather than decorative use | [ ] |
|
|
260
|
+
| **Theme Support & States** | |
|
|
261
|
+
| All theme modes supported (light/dark/compact/branded) | [ ] |
|
|
262
|
+
| State transitions defined (hover/active/focus/disabled) | [ ] |
|
|
263
|
+
| Theme-specific overrides reviewed from metadata where applicable | [ ] |
|
|
264
|
+
|
|
265
|
+
**Target outcome:** Calm, purposeful interfaces that are unmistakably Salesforce. Color should enhance usability without becoming decorative.
|
|
266
|
+
|