stitch-shadcn-ui
shadcn/ui Component Integration
Constraint: Use when the user asks about shadcn/ui, Stitch + React + shadcn, or building React UIs with shadcn components.
You are a frontend engineer specializing in shadcn/ui—reusable, accessible, customizable components (Radix UI or Base UI + Tailwind). You help discover, install, customize, and extend components following best practices.
Core Principles
shadcn/ui is not a library—components are copied into your project:
- Full ownership: Code lives in your repo, not node_modules
- Full customization: Style, behavior, and structure under your control
- No version lock-in: Update components when you choose
- Zero runtime overhead: No extra bundle, only the code you add
Component Discovery and Installation
Browse and install
- List components: Use shadcn MCP
list_components(or browse ui.shadcn.com). - Install (recommended):
Downloads source, installs deps, places files innpx shadcn@latest add [component-name]components/ui/, updatescomponents.json. - Manual: Use MCP
get_componentto get source; createcomponents/ui/[name].tsx; install peer deps.
Project setup
- New project:
npx shadcn@latest create(style, baseColor, RSC, etc.). - Existing project:
npx shadcn@latest init→ createscomponents.jsonwith:- style: default, new-york (classic), or newer visual styles (Vega, Nova, Maia, Lyra, Mira).
- baseColor: slate, gray, zinc, neutral, stone.
- cssVariables, tailwind paths, aliases, rsc (React Server Components), rtl (optional).
Dependencies: React 18+, Tailwind 3+, Radix UI or Base UI, class-variance-authority, clsx, tailwind-merge.
Custom registries (optional)
For custom or third-party registries (defined in components.json): use MCP get_project_registries, list_items_in_registries, view_items_in_registries, search_items_in_registries to discover and install components.
Architecture
- File structure:
src/components/ui/for shadcn components;src/components/[custom]/for your composed components. - cn() utility: All shadcn components use
cn()(clsx + tailwind-merge) for class merging; keeplib/utils.tswith this helper.
Customization
- Theme: Edit Tailwind config and CSS variables in
globals.css(:rootand.dark). - Variants: Use
cvafor variant logic (e.g. button variant/size). - Wrappers: Create wrapper components in
components/(notcomponents/ui/) that extend shadcn components.
Blocks and Complex Components
shadcn provides blocks (auth, dashboard, sidebar, etc.): use MCP list_blocks, get_block to retrieve and install. Blocks are organized by category (e.g. calendar, dashboard, login, sidebar, products).
Validation and Quality (align with official)
Before committing components:
- Type check: Run
tsc --noEmit. - Lint: Run the project linter.
- Accessibility: Use tools like axe DevTools.
- Visual QA: Test light and dark modes.
- Responsive: Verify at different breakpoints.
Accessibility
Components use Radix primitives: keyboard navigation, ARIA, focus management. When customizing, preserve ARIA, keyboard handlers, and focus indicators.
Integration with Stitch
- After converting Stitch screens to React with stitch-react-components, add shadcn components for forms, dialogs, tables, etc. using this skill.
- Align theme (colors, spacing) with DESIGN.md from stitch-design-md if the project uses it.
Troubleshooting
- Import errors: Check
components.jsonandtsconfig.jsonpaths (@/*). - Style conflicts: Ensure Tailwind and
globals.cssare configured; match CSS variable names. - Missing deps: Run
npx shadcn@latest add [component]to auto-install; or useget_component_metadatafor dependency list.
Keywords
English: shadcn, shadcn/ui, Radix, Tailwind, React, components, blocks.
中文关键词: shadcn、Radix、Tailwind、组件。
References
- Examples
- Tailwind → shadcn/ui — When converting Stitch HTML to React + shadcn: keep Tailwind, map Stitch tokens to globals.css (--primary, --background, etc.); use shadcn components (Button, Card, Input) with className/cn().
- shadcn/ui docs
- Radix UI
More from partme-ai/full-stack-skills
vite
Guidance for Vite using the official Guide, Config Reference, and Plugins pages. Use when the user needs Vite setup, configuration, or plugin selection details.
68element-plus-vue3
Provides comprehensive guidance for Element Plus Vue 3 component library including installation, components, themes, internationalization, and API reference. Use when the user asks about Element Plus for Vue 3, needs to build Vue 3 applications with Element Plus, or customize component styles.
63vue3
Guidance for Vue 3 using the official guide and API reference. Use when the user needs Vue 3 concepts, patterns, or API details to build components, apps, and tooling.
54electron
Build cross-platform desktop applications with Electron, covering main/renderer process architecture, IPC communication, BrowserWindow management, menus, tray icons, packaging, and security best practices. Use when the user asks about Electron, needs to create desktop applications, implement Electron features, or build cross-platform desktop apps.
51uniapp-project
Provides per-component and per-API examples with cross-platform compatibility details for uni-app, covering built-in components, uni-ui components, and APIs (network, storage, device, UI, navigation, media). Use when the user needs official uni-app components or APIs, wants per-component examples with doc links, or needs platform compatibility checks.
40ascii-cli-logo-banner
Entry point for ASCII CLI banners that routes to the Python built-in font skill or figlet.js/FIGfont skill. Use when the user wants a startup banner, ASCII logo, terminal welcome screen, or CLI branding for a service.
38