ASD

Shadcn Ui

Guía experta para integrar y construir aplicaciones con componentes de shadcn/ui: descubrimiento, instalación, personalización y buenas prácticas.

Oficial
Solicitashadcn*:*mcp_shadcn*readwritebashweb_fetch
Estrellas
8k

en todo el repo

Actividad
59

0–100, la ruta de este skill

Actualizado
hace 24 días

último commit aquí

Commits
3

últimos 90 días

Contexto
2.3k tok

41 tok en reposo

Paquete
10 archivos

83 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add google-labs-code/stitch-skills --skill shadcn-ui --agent claude-code

Se instala solo en este repositorio.

Este skill runs shell commands, writes to your files, makes network requests, reads environment config.

Qué hace

  • Ayuda a descubrir, instalar y personalizar componentes de shadcn/ui usando las herramientas MCP de shadcn
  • Guía la configuración inicial del proyecto con `npx shadcn@latest init` o `create`
  • Explica la arquitectura de archivos, la utilidad `cn()` y el uso de `class-variance-authority` para variantes
  • Orienta sobre theming con variables CSS y extensión de componentes sin perder accesibilidad
  • Ofrece pasos de troubleshooting para errores de importación, conflictos de estilos y dependencias faltantes

Úsalo cuando

  • Necesitas descubrir, instalar o personalizar componentes de shadcn/ui
  • Vas a inicializar un proyecto nuevo o existente con shadcn/ui
  • Quieres integrar bloques completos (dashboards, login, sidebars) con shadcn/ui
  • Tienes errores de importación, conflictos de estilos o dependencias faltantes con shadcn/ui

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Instala el componente de diálogo de shadcn/ui en mi proyecto
    • Configura shadcn/ui en un proyecto Next.js existente
    • Ayúdame a personalizar el tema de shadcn/ui con variables CSS
    • Necesito un bloque de login completo con shadcn/ui

    SKILL.md

    En inglés

    shadcn/ui Component Integration

    You are a frontend engineer specialized in building applications with shadcn/ui—a collection of beautifully designed, accessible, and customizable components built with Radix UI or Base UI and Tailwind CSS. You help developers discover, integrate, and customize components following best practices.

    Core Principles

    shadcn/ui is not a component library—it's a collection of reusable components that you copy into your project. This gives you:

    • Full ownership: Components live in your codebase, not node_modules
    • Complete customization: Modify styling, behavior, and structure freely, including choosing between Radix UI or Base UI primitives
    • No version lock-in: Update components selectively at your own pace
    • Zero runtime overhead: No library bundle, just the code you need

    Component Discovery and Installation

    1. Browse Available Components

    Use the shadcn MCP tools to explore the component catalog and Registry Directory:

    • List all components: Use list_components to see the complete catalog
    • Get component metadata: Use get_component_metadata to understand props, dependencies, and usage
    • View component demos: Use get_component_demo to see implementation examples

    2. Component Installation

    There are two approaches to adding components:

    A. Direct Installation (Recommended)

    npx shadcn@latest add [component-name]
    

    This command:

    • Downloads the component source code (adapting to your config: Radix vs Base UI)
    • Installs required dependencies
    • Places files in components/ui/
    • Updates your components.json config

    B. Manual Integration

    1. Use get_component to retrieve the source code
    2. Create the file in components/ui/[component-name].tsx
    3. Install peer dependencies manually
    4. Adjust imports if needed

    3. Registry and Custom Registries

    If working with a custom registry (defined in components.json) or exploring the Registry Directory:

    • Use get_project_registries to list available registries
    • Use list_items_in_registries to see registry-specific components
    • Use view_items_in_registries for detailed component information
    • Use search_items_in_registries to find specific components

    Project Setup

    Initial Configuration

    For new projects, use the create command to customize everything (style, fonts, component library):

    npx shadcn@latest create
    

    For existing projects, initialize configuration:

    npx shadcn@latest init
    

    This creates components.json with your configuration:

    • style: default, new-york (classic) OR choose new visual styles like Vega, Nova, Maia, Lyra, Mira
    • baseColor: slate, gray, zinc, neutral, stone
    • cssVariables: true/false for CSS variable usage
    • tailwind config: paths to Tailwind files
    • aliases: import path shortcuts
    • rsc: Use React Server Components (yes/no)
    • rtl: Enable RTL support (optional)

    Required Dependencies

    shadcn/ui components require:

    • React (18+)
    • Tailwind CSS (3.0+)
    • Primitives: Radix UI OR Base UI (depending on your choice)
    • class-variance-authority (for variant styling)
    • clsx and tailwind-merge (for class composition)

    Component Architecture

    File Structure

    src/
    ├── components/
    │   ├── ui/              # shadcn components
    │   │   ├── button.tsx
    │   │   ├── card.tsx
    │   │   └── dialog.tsx
    │   └── [custom]/        # your composed components
    │       └── user-card.tsx
    ├── lib/
    │   └── utils.ts         # cn() utility
    └── app/
        └── page.tsx
    

    The cn() Utility

    All shadcn components use the cn() helper for class merging:

    import { clsx, type ClassValue } from "clsx"
    import { twMerge } from "tailwind-merge"
    
    export function cn(...inputs: ClassValue[]) {
      return twMerge(clsx(inputs))
    }
    

    This allows you to:

    • Override default styles without conflicts
    • Conditionally apply classes
    • Merge Tailwind classes intelligently

    Customization Best Practices

    1. Theme Customization

    Edit your Tailwind config and CSS variables in app/globals.css:

    @layer base {
      :root {
        --background: 0 0% 100%;
        --foreground: 222.2 84% 4.9%;
        --primary: 221.2 83.2% 53.3%;
        /* ... more variables */
      }
      
      .dark {
        --background: 222.2 84% 4.9%;
        --foreground: 210 40% 98%;
        /* ... dark mode overrides */
      }
    }
    

    2. Component Variants

    Use class-variance-authority (cva) for variant logic:

    import { cva } from "class-variance-authority"
    
    const buttonVariants = cva(
      "inline-flex items-center justify-center rounded-md",
      {
        variants: {
          variant: {
            default: "bg-primary text-primary-foreground",
            outline: "border border-input",
          },
          size: {
            default: "h-10 px-4 py-2",
            sm: "h-9 rounded-md px-3",
          },
        },
        defaultVariants: {
          variant: "default",
          size: "default",
        },
      }
    )
    

    3. Extending Components

    Create wrapper components in components/ (not components/ui/):

    // components/custom-button.tsx
    import { Button } from "@/components/ui/button"
    import { Loader2 } from "lucide-react"
    
    export function LoadingButton({ 
      loading, 
      children, 
      ...props 
    }: ButtonProps & { loading?: boolean }) {
      return (
        <Button disabled={loading} {...props}>
          {loading && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
          {children}
        </Button>
      )
    }
    

    Blocks and Complex Components

    shadcn/ui provides complete UI blocks (authentication forms, dashboards, etc.):

    1. List available blocks: Use list_blocks with optional category filter
    2. Get block source: Use get_block with the block name
    3. Install blocks: Many blocks include multiple component files

    Blocks are organized by category:

    • calendar: Calendar interfaces
    • dashboard: Dashboard layouts
    • login: Authentication flows
    • sidebar: Navigation sidebars
    • products: E-commerce components

    Accessibility

    All shadcn/ui components are built on Radix UI primitives, ensuring:

    • Keyboard navigation: Full keyboard support out of the box
    • Screen reader support: Proper ARIA attributes
    • Focus management: Logical focus flow
    • Disabled states: Proper disabled and aria-disabled handling

    When customizing, maintain accessibility:

    • Keep ARIA attributes
    • Preserve keyboard handlers
    • Test with screen readers
    • Maintain focus indicators

    Common Patterns

    Form Building

    import { Button } from "@/components/ui/button"
    import { Input } from "@/components/ui/input"
    import { Label } from "@/components/ui/label"
    
    // Use with react-hook-form for validation
    import { useForm } from "react-hook-form"
    

    Dialog/Modal Patterns

    import {
      Dialog,
      DialogContent,
      DialogDescription,
      DialogHeader,
      DialogTitle,
      DialogTrigger,
    } from "@/components/ui/dialog"
    

    Data Display

    import {
      Table,
      TableBody,
      TableCell,
      TableHead,
      TableHeader,
      TableRow,
    } from "@/components/ui/table"
    

    Troubleshooting

    Import Errors

    • Check components.json for correct alias configuration
    • Verify tsconfig.json includes the @ path alias:
      {
        "compilerOptions": {
          "paths": {
            "@/*": ["./src/*"]
          }
        }
      }
      

    Style Conflicts

    • Ensure Tailwind CSS is properly configured
    • Check that globals.css is imported in your root layout
    • Verify CSS variable names match between components and theme

    Missing Dependencies

    • Run component installation via CLI to auto-install deps
    • Manually check package.json for required Radix UI packages
    • Use get_component_metadata to see dependency lists

    Version Compatibility

    • shadcn/ui v4 requires React 18+ and Next.js 13+ (if using Next.js)
    • Some components require specific Radix UI versions
    • Check documentation for breaking changes between versions

    Validation and Quality

    Before committing components:

    1. Type check: Run tsc --noEmit to verify TypeScript
    2. Lint: Run your linter to catch style issues
    3. Test accessibility: Use tools like axe DevTools
    4. Visual QA: Test in light and dark modes
    5. Responsive check: Verify behavior at different breakpoints

    Resources

    Refer to the following resource files for detailed guidance:

    • resources/setup-guide.md - Step-by-step project initialization
    • resources/component-catalog.md - Complete component reference
    • resources/customization-guide.md - Theming and variant patterns
    • resources/migration-guide.md - Upgrading from other UI libraries

    Examples

    See the examples/ directory for:

    • Complete component implementations
    • Form patterns with validation
    • Dashboard layouts
    • Authentication flows
    • Data table implementations

    Reproducido de google-labs-code/stitch-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    10 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere React 18+, Tailwind CSS 3.0+ y Radix UI o Base UI como primitivas, además de class-variance-authority, clsx y tailwind-merge.

    Necesita en el PATH:npx

    Variables de entorno:COMPONENT_COUNTCSS_FILEGREENRECOMMENDED_DEPSREQUIRED_DEPSUTILS_FILEYELLOW

    Detalles

    Categoría
    Diseño y UI
    Licencia
    Apache-2.0
    Recursos incluidos
    scripts en bash
    Código fuente
    Ver SKILL.md

    Más de google-labs-code/stitch-skills

    Este repo incluye 15 skills. Si instalas uno, normalmente ya tienes los demás.

    Convierte diseños de Stitch en componentes modulares de Vite y React, o sincroniza/actualiza componentes React existentes con los últimos diseños de Stitch, usando red a nivel de sistema y validación basada en AST.

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    11 archivos
    Última actualización
    hace 24 días
    Permisos
    Oficialdesarrollo apis

    Convierte diseños HTML de Stitch en componentes React Native, o sincroniza/actualiza componentes nativos existentes según los últimos diseños de Stitch, usando StyleSheet.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    9 archivos
    Última actualización
    hace 24 días
    Permisos
    Oficialherramientas desarrollo

    Extrae HTML estático autocontenido de una app web o componentes React, inlineando CSS e imágenes, para capturar una vista o subirla a Stitch.

    Costo de contexto al activarse
    2.7k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 16 días
    Permisos
    Oficialherramientas desarrollo

    Convierte código frontend (Vite, React, Angular, Vue, etc.) en un Stitch Design encadenando extracción de HTML estático, extracción del sistema de diseño y subida de archivos.

    Costo de contexto al activarse
    912 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 16 días
    Permisos
    Oficialdiseno ui

    Sube assets locales (imágenes, mockups, HTML extraído, markdown de diseño) a un proyecto de Stitch, útil cuando las llamadas MCP fallan o se truncan por límites de tokens en base64.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 16 días
    Permisos
    Oficialherramientas desarrollo

    Extrae un sistema de diseño completo (DESIGN.md) directamente del código fuente frontend —React, Vue, Svelte, Angular, HTML/CSS— analizando componentes, hojas de estilo, configs de Tailwind y tokens de diseño.

    Costo de contexto al activarse
    3.5k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 16 días
    Permisos
    Oficialdiseno ui

    Skills relacionados

    Shadcn

    121k

    Gestiona componentes y proyectos shadcn: añadir, buscar, corregir, depurar, estilizar y componer UI, incluyendo interfaces de chat, con contexto del proyecto y documentación.

    Costo de contexto al activarse
    4.9k tok
    Tamaño del paquete
    15 archivos
    Última actualización
    hace 22 días
    diseno ui

    Diseña banners para redes sociales, anuncios, heroes de sitios web, assets creativos e impresión, con múltiples opciones de dirección de arte y visuales generados por IA.

    Costo de contexto al activarse
    2.1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    el mes pasado
    diseno ui

    Slides

    116k

    Crea presentaciones HTML estratégicas con Chart.js, tokens de diseño, layouts responsivos, fórmulas de copywriting y estrategias de diapositivas contextuales.

    Costo de contexto al activarse
    284 tok
    Tamaño del paquete
    6 archivos
    Última actualización
    el mes pasado
    diseno ui