Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
forcedotcom avatar

Building Ui Bundle Frontend

  • 2.2k installs
  • 763 repo stars
  • Updated July 24, 2026
  • forcedotcom/sf-skills

building-ui-bundle-frontend governs visual edits to existing Salesforce UI bundle apps under uiBundles/*/src.

About

The building-ui-bundle-frontend skill must activate before editing any uiBundles/*/src file for visual or UI changes in existing Salesforce UI bundle apps. It classifies work into pages, header or footer shell updates, or reusable components with implementation guides for each. appLayout.tsx is the navigation and branding source of truth shared across routes.tsx pages, requiring real nav labels instead of template placeholders and matching index.html title updates. React Router imports come from react-router with createBrowserRouter basename derived at runtime from the document base href, never hardcoded. Components use shadcn/ui imports such as Button from @/components/ui and Tailwind utility classes with responsive sm, md, and lg breakpoints and 44px touch targets. TypeScript rules forbid any, require typed useState, and prefer type guards over unsafe assertions. Module restrictions block lightning platform imports; Salesforce data access defers to using-ui-bundle-salesforce-data. Design guidance pushes distinctive typography, cohesive CSS variables, and mobile-responsive layouts before lint and build verification.

  • Required before any uiBundles/*/src visual edit to existing apps.
  • appLayout.tsx owns navigation, branding, header, and footer shell updates.
  • Router basename must be read from the document base href at runtime.
  • Use shadcn/ui components and Tailwind responsive prefixes for layout.
  • Run lint with zero errors and a successful build before completing changes.

Building Ui Bundle Frontend by the numbers

  • 2,217 all-time installs (skills.sh)
  • +7 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #210 of 2,277 Frontend Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

building-ui-bundle-frontend capabilities & compatibility

Capabilities
page, header footer, and component task classifi · applayout.tsx navigation and branding convention · dynamic basename routing from base href tag · shadcn/ui and tailwind responsive design standar · lint and build verification gate before completi
Works with
salesforce
Use cases
frontend · ui design · web design
From the docs

What building-ui-bundle-frontend says it does

MUST activate before editing ANY file under uiBundles/*/src/
SKILL.md
npx skills add https://github.com/forcedotcom/sf-skills --skill building-ui-bundle-frontend

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2.2k
repo stars763
Security audit3 / 3 scanners passed
Last updatedJuly 24, 2026
Repositoryforcedotcom/sf-skills

How do I add or restyle pages and components in an existing UI bundle without breaking routing or imports?

Edit existing Salesforce UI bundle apps with appLayout.tsx conventions, shadcn/ui, Tailwind, and dynamic base-path routing.

Who is it for?

Existing UI bundle apps with appLayout.tsx, routes.tsx, and src/pages needing UI changes.

Skip if: Skip for creating a new app from scratch; use building-ui-bundle-app instead.

When should I use this skill?

User edits uiBundles src pages, components, layout, styling, or navigation in an existing app.

What you get

Updated appLayout, routes, and components following shadcn, Tailwind, and dynamic basename conventions with clean lint and build.

  • Typed React UI components
  • Tailwind-token-styled shadcn compositions

By the numbers

  • Covers 7 shadcn component types: buttons, inputs, cards, alerts, tabs, tables, labels

Files

SKILL.mdMarkdownGitHub ↗

UI Bundle UI

Identify the Task

Determine which category the request falls into:

CategoryExamplesImplementation Guide
PageNew routed page (contacts, dashboard, settings)implementation/page.md
Header / FooterSite-wide nav bar, footer, brandingimplementation/header-footer.md
ComponentWidget, card, table, form, dialogimplementation/component.md

---

Layout and Navigation

appLayout.tsx is the source of truth for navigation and layout. Every page shares this shell.

When making any change that affects navigation, header, footer, sidebar, theme, or layout:

1. Edit src/appLayout.tsx — the layout used by routes.tsx 2. Replace all default/template nav items and labels with app-specific links and names 3. Replace placeholder app name everywhere: header, nav brand, footer, <title> in index.html

Before finishing, confirm: Did I update appLayout.tsx with real nav items and branding?

WhatWhere
Layout, nav, brandingsrc/appLayout.tsx
Document titleindex.html
Root page contentComponent at root route in routes.tsx

---

React and TypeScript Standards

Routing

Use a single router package. With createBrowserRouter / RouterProvider, all imports must come from react-router (not react-router-dom).

If the app uses a client-side router (React Router, Remix Router, Vue Router, etc.), always derive basename / basepath / base from the document's <base href> tag at runtime. Never hardcode the basename:

const basename = document.querySelector('base')
  ? new URL(document.querySelector('base').href).pathname.replace(/\/$/, '')
  : '/';
const router = createBrowserRouter(routes, { basename });

Component Library and Styling

  • shadcn/ui for components: import { Button } from '@/components/ui/button';
  • Tailwind CSS utility classes

URL and Path Handling

Apps run behind dynamic base paths. Router navigation (<Link to>, navigate()) uses absolute paths (/x). Non-router attributes (<img src>) use dot-relative (./x). Prefer Vite import for static assets.

TypeScript

  • Never use any — use proper types, generics, or unknown with type guards
  • Event handlers: (event: React.FormEvent<HTMLFormElement>): void
  • State: useState<User | null>(null) — always provide the type parameter
  • No unsafe assertions (obj as User) — use type guards instead

Module Restrictions

React UI bundles must not import Salesforce platform modules like lightning/* or @wire (LWC-only). For data access, use the using-ui-bundle-salesforce-data skill.

---

Design Thinking

Before coding, commit to a bold aesthetic direction:

  • Purpose: What problem does this interface solve? Who uses it?
  • Tone: Pick a clear direction — brutally minimal, maximalist, retro-futuristic, organic, luxury, playful, editorial, brutalist, art deco, soft/pastel, industrial. Use these as inspiration but design one true to the context.
  • Differentiation: What makes this unforgettable? What's the one thing someone will remember?

Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work — the key is intentionality, not intensity.

---

Frontend Aesthetics

  • Typography: Choose distinctive, characterful fonts. Pair a display font with a refined body font. Never default to Inter, Roboto, Arial, Space Grotesk, or system fonts.
  • Color: Commit to a cohesive palette using CSS variables. Dominant colors with sharp accents outperform timid, evenly-distributed palettes. Avoid cliched purple gradients on white.
  • Motion: Focus on high-impact moments — one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise. Prefer CSS-only solutions; use Motion library for React when available.
  • Spatial Composition: Unexpected layouts — asymmetry, overlap, diagonal flow, grid-breaking elements. Generous negative space OR controlled density.
  • Backgrounds & Depth: Create atmosphere rather than defaulting to solid colors. Gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, grain overlays.
  • Mobile Responsiveness: All generated UI MUST be mobile-responsive. Use Tailwind responsive prefixes (sm:, md:, lg:) to adapt layouts across breakpoints. Stack columns on small screens, use flexible grids, and ensure touch targets are at least 44px. Test that navigation, typography, and spacing work on mobile viewports.

Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate animations and effects. Minimalist designs need restraint, precision, and careful spacing/typography. No two designs should look the same — vary themes, fonts, and aesthetics across generations.

---

Clarifying Questions

Ask one question at a time and stop when you have enough context.

For a Page

1. Name and purpose? 2. URL path? 3. Should it appear in navigation? 4. Access control? (public, authenticated via PrivateRoute, or unauthenticated via AuthenticationRoute) 5. Content sections? (list, form, table, detail view) 6. Data fetching needs?

For a Header / Footer

1. Header, footer, or both? 2. Contents? (logo, nav links, user avatar, copyright, social icons) 3. Sticky header? 4. Color scheme or style direction?

For a Component

1. What should it do? 2. Which page does it belong to? 3. Shared/reusable or specific to one feature? 4. Data or props needed? 5. Internal state? (loading, toggle, form state) 6. Specific shadcn components to use?

---

Verification

Before completing, run lint and build from the UI bundle directory. Lint must result in 0 errors and build must succeed.

Related skills

Forks & variants (1)

Building Ui Bundle Frontend has 1 known copy in the catalog totaling 1.5k installs. They canonicalize to this original listing.

How it compares

Pick building-ui-bundle-frontend over generic React skills when the codebase is a Salesforce uiBundles frontend with shadcn and Tailwind conventions.

FAQ

Where do navigation and branding changes go?

Edit src/appLayout.tsx and update the index.html title; it is the shared shell for all routes.

How should router basename be set?

Read pathname from document.querySelector('base').href at runtime; never hardcode the basename string.

Can I import lightning modules in React bundles?

No. React UI bundles must not import lightning/* or @wire; use the Salesforce data access skill instead.

Is Building Ui Bundle Frontend safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Frontend Developmentfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.