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

Building Ui Bundle Frontend

  • 1.5k installs
  • 763 repo stars
  • Updated July 24, 2026
  • forcedotcom/afv-library

This is a copy of building-ui-bundle-frontend by forcedotcom - installs and ranking accrue to the original listing.

building-ui-bundle-frontend is a Claude Code skill from the AFV library that generates React, Tailwind, and shadcn UI components following a strict design system for developers who need consistent frontend bundles withou

About

building-ui-bundle-frontend is a Claude Code skill from forcedotcom/afv-library for implementing UI bundle frontend components. It mandates shadcn components from `@/components/ui` for buttons, inputs, cards, alerts, tabs, tables, and labels—never raw HTML equivalents. All styling uses Tailwind utility classes and design tokens like `bg-background`, `text-foreground`, and `text-muted-foreground`; conditional classes use `cn()` from `@/lib/utils`. Components are TypeScript functional modules with typed props and optional `className`. Use building-ui-bundle-frontend when generating AFV UI that must match the design system on first pass.

  • Always uses shadcn components from @/components/ui instead of raw HTML
  • Enforces Tailwind utility classes and design tokens exclusively
  • Requires cn() utility for conditional class names
  • Mandates TypeScript functional components with typed props including optional className
  • Defines exact file locations and export rules for shared, feature, and layout components

Building Ui Bundle Frontend by the numbers

  • 1,504 all-time installs (skills.sh)
  • +1 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/forcedotcom/afv-library --skill building-ui-bundle-frontend

Add your badge

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

Listed on Skillselion
Installs1.5k
repo stars763
Security audit3 / 3 scanners passed
Last updatedJuly 24, 2026
Repositoryforcedotcom/afv-library

How do you build shadcn React components with design tokens?

Generate consistent, high-quality React + Tailwind UI components that follow a strict design system without manual style debugging.

Who is it for?

Frontend developers on AFV or shadcn-plus-Tailwind codebases who want agents to follow strict component and token conventions.

Skip if: Projects using CSS Modules, inline styles, raw HTML form controls, or non-React UI frameworks outside the AFV design system.

When should I use this skill?

The user builds UI bundle frontend components and needs shadcn, Tailwind tokens, and TypeScript props enforced without style drift.

What you get

React TypeScript components in `@/components/ui` patterns with Tailwind design tokens and typed props.

  • React TypeScript UI components
  • Tailwind-styled shadcn implementations

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

FAQ

Can building-ui-bundle-frontend use inline styles?

building-ui-bundle-frontend forbids inline `style={{}}`, CSS Modules, and non-Tailwind styling. All visual styling must use Tailwind utility classes and design tokens such as `bg-primary` and `text-destructive`.

Which component library does building-ui-bundle-frontend require?

building-ui-bundle-frontend always imports shadcn components from `@/components/ui` for buttons, inputs, cards, alerts, tabs, tables, and labels. Raw HTML equivalents for those primitives are not allowed.

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.

This week in AI coding

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

unsubscribe anytime.