agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites,…
Best practices for building UI components with shadcn/ui. Use when creating, customizing, or styling components with shadcn, working with Radix UI primitives, implementing design tokens, or following compound component patterns.
$ npx -y skills add pedronauck/skills --skill shadcn --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/shadcnContext preview
The summary Claude sees to decide when to auto-load this skill.
Best practices for building UI components with shadcn/ui. Use when creating, customizing, or styling components with shadcn, working with Radix UI primitives, implementing design tokens, or following compound component patterns.
name: shadcn description: Best practices for building UI components with shadcn/ui. Use when creating, customizing, or styling components with shadcn, working with Radix UI primitives, implementing design tokens, or following compound component patterns. allowed-tools: Read, Grep, Glob
This skill provides guidelines, patterns, and best practices for working with shadcn/ui components in this project.
1. **Core Patterns**: Read `references/patterns.md` for comprehensive styling, theming, and component patterns. 2. **Tailwind Integration**: For Tailwind CSS patterns, use the `tailwindcss` skill.
**Always use design system tokens for theme switching compatibility:**
**Required tokens:**
**Never use explicit colors** like `bg-white`, `text-black`, `border-gray-200` - they break theme switching.
Use the CLI to add components, then customize as needed:
npx shadcn@latest add button card dialog
Add custom props and variants while preserving accessibility:
export interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
loading?: boolean
}
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
({ className, variant, size, loading, children, ...props }, ref) => {
return (
<button
className={cn(buttonVariants({ variant, size, className }))}
ref={ref}
disabled={loading || props.disabled}
{...props}
>
{loading && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
{children}
</button>
)
}
)**Always use separate exports, NOT namespaced properties:**
// CORRECT
export const CardTech = CardTechRoot;
export const CardTechHeader = CardHeader;
export const CardTechTitle = CardTitle;
export const CardTechContent = CardContent;
// WRONG - Do not use
export const CardTech = Object.assign(CardTechRoot, {
Header: CardHeader,
Content: CardContent,
});Never remove Radix UI's accessibility attributes:
<Dialog>
<DialogTrigger asChild>
<Button>Open Dialog</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Accessible Title</DialogTitle>
<DialogDescription>
This description helps screen readers understand the dialog's purpose
</DialogDescription>
</DialogHeader>
</DialogContent>
</Dialog>Use CSS variables for all color values in `globals.css`:
@layer base {
:root {
--success: 142 76% 36%;
--success-foreground: 355 100% 100%;
}
.dark {
--success: 142 76% 46%;
--success-foreground: 142 76% 10%;
}
}Before finishing a task involving shadcn/ui:
For comprehensive patterns, component examples, and detailed guidelines, read `references/patterns.md`.
A curated collection of 87 agent skills for Claude Code and compatible AI coding assistants — 40 original (⭐️), 34 hand-picked (💎), and 13 marketing & business (📣).
Repo: pedronauck/skills
Browser automation CLI for AI agents. Use when the user needs to interact with websites,…
Answer questions about the AI SDK and help build AI-powered features. Use when developers:…
Autonomously optimize any Claude Code skill by running it repeatedly, scoring outputs against…
Centrifugo real-time messaging server expert for WebSocket PUB/SUB, channel management, JWT…
Retrieves up-to-date documentation, API references, and code examples for any developer…
Diátaxis Documentation Expert. An expert technical writer specializing in creating…