
Salesforce Fragment
- 1 installs
- 787 repo stars
- Updated August 5, 2026
- forcedotcom/afv-library
Creates reusable Salesforce Fragments (UEM blocks) that render data in a unified way across Slack, Mobile, and LEX experiences.
About
Generates Fragment metadata as a UEM tree of blocks and regions for reusable UI that renders across Slack, Mobile, and LEX. A developer uses it to build unified experience components with data placeholders.
- Fragments are a UEM tree of blocks and regions with data placeholders
- Blocks follow the namespace/blockName convention
Salesforce Fragment by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,912 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/forcedotcom/afv-library --skill salesforce-fragmentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 787 |
| Last updated | August 5, 2026 |
| Repository | forcedotcom/afv-library ↗ |
What it does
Creates reusable Salesforce Fragments (UEM blocks) that render data in a unified way across Slack, Mobile, and LEX experiences.
Files
When to Use This Skill
Use this skill when you need to:
- Create reusable UI fragments for Salesforce experiences
- Generate Fragment metadata following UEM structure
- Build fragments for Slack, Mobile, LEX, and other Salesforce experiences
- Troubleshoot deployment errors related to Fragments
Specification
Fragment Generation Guide
📋 Overview
Fragments are reusable pieces of UI similar to templates, with placeholders for actual data values. The purpose of this file is to assist developers in creating and editing fragments.
🎯 Purpose
Fragments render data in a structured and unified way across various Salesforce experiences like Slack, Mobile, LEX etc
⚙️ Composition
A fragment is a UEM (Unified Experience Model) tree of blocks and regions. The fragment you return must follow the Typescript interfaces below:
- Block definition: Follow
{namespace}}/{{blockName}convention and use the same value as the block's definition when it appears in a fragment.
interface BlockType {
type: 'block'
definition: string // {namespace}/{blockName}, e.g. "bcx/heading"
attributes?: Record<string, any>
children?: (BlockType | RegionType)[]
}
interface RegionType {
type: 'region'
name: string
children: BlockType[]
}