
UI Bundle Features
OfficialFreeEasily install pre-built features for Salesforce UI bundles.
Free · Opens the source repo
What UI Bundle Features does
The UI Bundle Features skill streamlines the process of adding pre-built functionalities to Salesforce UI bundles, specifically for React applications. This skill is particularly beneficial for developers looking to implement common features such as authentication and search without the overhead of building them from scratch. By leveraging this skill, users can quickly enhance their projects with tested and reliable components, ensuring a more efficient development workflow.
To use the skill, developers must first verify that their project contains a uiBundles/*/src/ directory and is based on React. The skill provides a command-line interface (CLI) to list available features, describe them in detail, and install the desired ones. This approach minimizes the risk of duplication and ensures that only the necessary features are added to the project. The CLI also includes conflict resolution mechanisms, allowing developers to handle any potential issues that may arise during installation.
In addition to authentication and search, the skill's feature catalog can expand over time, offering a variety of functionalities that can be integrated into the UI bundle. Users are encouraged to run the list command to explore all available options before proceeding with installations. The skill also includes post-installation guidance for integrating example files, ensuring that developers can effectively implement the new features within their existing codebase.
This skill is ideal for Salesforce developers who want to save time and effort by utilizing pre-built solutions rather than creating custom implementations for common functionalities. It is a valuable tool for enhancing productivity and maintaining a clean codebase in React-based Salesforce projects.
When to use it
Use this skill when you want to quickly add pre-built features like authentication or search to a Salesforce UI bundle.
When not to use it
Avoid using this skill for Agentforce conversational client or file-upload features, as those are handled by separate skills.
What you can build with it
Quickly Add Authentication
Use the skill to install authentication features into your Salesforce UI bundle, saving time on implementation.
Implement Global Search
Easily add a global search feature to your application without building it from scratch, enhancing user experience.
Resolve Installation Conflicts
Utilize the conflict resolution features to manage any issues that arise during the installation of new functionalities.
How to install UI Bundle Features
View source1. Install with the skills CLI
npx skills add forcedotcom/sf-skills/experience-ui-bundle-features-generate --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by forcedotcomUI Bundle Features
Installing Pre-built Features
Always check for an existing feature before building something from scratch. The features CLI installs pre-built, tested packages into Salesforce UI bundles — from foundational UI libraries (shadcn/ui) to full-stack capabilities. Authentication and search are the most commonly used features today; run list --verbose for the full current catalog, since it can grow over time.
Ownership note: Agentforce AI conversation clients and file-upload are owned by separate skills (
experience-ui-bundle-agentforce-client-generate,experience-ui-bundle-file-upload-generate). If the catalog also lists an Agentforce or file-upload entry, do not install it from both places — confirm with the user which delivery path they want, and never install the same capability twice in one bundle.
Package name:
@salesforce/ui-bundle-featuresis the canonical package name. Some older templates/samples still reference the deprecated@salesforce/ui-bundle-features-experimentalname — never use the-experimentalsuffix. If a command fails to resolve, confirm the published version withnpm view @salesforce/ui-bundle-features versionbefore assuming the package name is wrong.
Workflow
-
Confirm this is a React UI bundle — this CLI copies into
src/features/and expectsnpm run buildto work. Non-React bundles are not supported and will fail late in the install.Run
scripts/verify-react-bundle.sh. If it exits non-zero, stop — the bundle is not React-based and this skill cannot proceed. -
Search project code first — check
src/for existing implementations before installing anything. Scope searches tosrc/to avoid matchingnode_modules/ordist/. -
Search available features — use
npx @salesforce/ui-bundle-features listwith--search <query>to filter by keyword. Use--verbosefor full descriptions. -
Describe a feature — use
npx @salesforce/ui-bundle-features describe <feature>to see components, dependencies, copy operations, and example files. -
Install — use
npx @salesforce/ui-bundle-features install <feature> --ui-bundle-dir <name>. Key options:--dry-runto preview changes--yesfor non-interactive mode (skips conflicts)--on-conflict errorto detect conflicts, then--conflict-resolution <file>to resolve them
Install features before doing custom frontend/layout work in this bundle — features may rewrite
appLayout.tsx/routes.tsx, and installing after hand-built layout changes risks collisions.
If no matching feature is found, ask the user before building a custom implementation — a relevant feature may exist under a different name.
Conflict Handling
In non-interactive environments, use the two-pass approach:
- Run install with
--on-conflict errorto detect conflicts without applying them. - Before writing the resolution file, read
references/conflict-resolution-schema.jsonfor the allowed keys and enum values. - Write a resolution file at
<ui-bundle-dir>/conflict-resolution.json(path is relative to the UI bundle directory being installed into, not the repo root). Key it by the exact paths the CLI printed as conflicts in pass 1, verbatim:
Any conflicting path not listed in this file defaults to{ "src/appLayout.tsx": "overwrite", "src/routes.tsx": "skip" }skip— the CLI will not overwrite a file you didn't explicitly markoverwrite. - Re-run install with
--conflict-resolution <path-to-that-file>.
Post-install: Integrating Example Files
Features may include example files under an __examples__/ directory (plural) showing integration patterns. These are often full, working pages with concrete names (e.g. AccountSearch.tsx), not bare placeholder templates. For each:
- Read the example file to understand the pattern — treat it as a working reference implementation, not necessarily a stub.
- Read the target file (shown in
describeoutput). - Apply the pattern from the example into the target.
- CRITICAL — verify before deleting:
# Verify the build passes with the integrated pattern npm run build || { echo "ERROR: Build failed after integration - do NOT delete __examples__/" exit 1 } # Verify the pattern from the example is actually present in the target # (adjust grep pattern to match a key symbol/import/component from the example) # Example: for SearchInput pattern integrated into AccountSearch.tsx grep -q "SearchInput\|useSearch" src/pages/*.tsx src/components/*.tsx 2>/dev/null || { echo "ERROR: Pattern from example not found in target files - integration incomplete" echo "Do NOT delete __examples__/ until the pattern is confirmed present" exit 1 } # Only delete after both checks pass rm -rf __examples__/
If either check fails, do NOT delete __examples__/ — the integration is incomplete. Fix the integration first, then re-run the verification.
Hint Placeholders
Some copy paths use <descriptive-name> placeholders (e.g., <desired-page-with-search-input>) that the CLI does not resolve. After installation, rename or relocate these files to the intended target, or integrate their patterns into an existing file. This is separate from the __examples__/ convention above — a single copy path can use either mechanism.
Auth Feature: Org-Side Prerequisites
Installing the authentication feature only copies files — it does not configure the org. Before telling the user auth is done, flag that these org-side steps still need to happen (outside this skill's scope, but required for the feature to actually work):
- Digital Experiences (Experience Cloud) must be enabled, with Customer Community / Customer Community Plus licenses assigned to the relevant users, and Salesforce Sites enabled.
- The community and guest profiles need explicit Apex class access granted for the auth utility, login/registration, and password-reset classes — the CLI does not grant this automatically.
- Guest-profile sharing rules / org-wide defaults for any objects the auth flow touches.
- Known limitation: logout has a documented CSRF-handling gap (tracked as W-21253864) — call this out to the user rather than presenting logout as fully solved.
CRITICAL: Resolve <sfdxRoot> After Every Install
The CLI may copy files under a literal <sfdxRoot> folder — an unresolved placeholder for this project's Salesforce DX metadata root (from sfdx-project.json's packageDirectories[].path, e.g. force-app/main/default). Files left there are undeployable.
After every install:
find uiBundles/<AppName> -type d -regex '.*/<[^/]+>$'
If found, move each file to <metadata-root>/<same-relative-subpath> (keep -meta.xml sidecars attached) and delete the emptied placeholder dir(s).
Verification:
- Re-run
find uiBundles/<AppName> -type d -regex '.*/<[^/]+>$'— output must be empty before proceeding.
Frequently asked questions about UI Bundle Features
Similar skills
Playwright Component Testing
Test React and Vue components in isolation with Playwright.
Fluent UI Blazor
Integrate Fluent UI components in Blazor applications effortlessly.
Build MCP App
Create interactive UI widgets for MCP servers.
Web Design Reviewer
Identify and fix design issues in websites efficiently.
Markstream Install
Seamlessly integrate Markstream for Markdown rendering.
GSAP & Framer Scroll Animation
Create advanced scroll animations effortlessly.
