cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Install and configure shadcn/ui components for React projects. Guides component selection, installation order, dependency management, customisation with semantic tokens, and common UI recipes (forms, data tables, navigation, modals). Use after tailwind-theme-builder has set up
$ npx -y skills add jezweb/claude-skills --skill shadcn-ui --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/shadcn-uiContext preview
The summary Claude sees to decide when to auto-load this skill.
Install and configure shadcn/ui components for React projects. Guides component selection, installation order, dependency management, customisation with semantic tokens, and common UI recipes (forms, data tables, navigation, modals). Use after tailwind-theme-builder has set up
name: shadcn-ui description: "Install and configure shadcn/ui components for React projects. Guides component selection, installation order, dependency management, customisation with semantic tokens, and common UI recipes (forms, data tables, navigation, modals). Use after tailwind-theme-builder has set up the theme infrastructure, when adding components, building forms, creating data tables, or setting up navigation." compatibility: claude-code-only
Add shadcn/ui components to a themed React project. This skill runs AFTER `tailwind-theme-builder` has set up CSS variables, ThemeProvider, and dark mode. It handles component installation, customisation, and combining components into working patterns.
**Prerequisite**: Theme infrastructure must exist (CSS variables, components.json, cn() utility). Use `tailwind-theme-builder` first if not set up.
Install components in dependency order. Foundation components first, then feature components:
pnpm dlx shadcn@latest add button pnpm dlx shadcn@latest add input label pnpm dlx shadcn@latest add card
# Forms pnpm dlx shadcn@latest add form # needs: react-hook-form, zod, @hookform/resolvers pnpm dlx shadcn@latest add textarea select checkbox switch # Feedback pnpm dlx shadcn@latest add toast # needs: sonner pnpm dlx shadcn@latest add alert badge # Overlay pnpm dlx shadcn@latest add dialog sheet popover dropdown-menu # Data Display pnpm dlx shadcn@latest add table # for data tables, also: @tanstack/react-table pnpm dlx shadcn@latest add tabs separator avatar # Navigation pnpm dlx shadcn@latest add navigation-menu command
| Component | Requires | |-----------|----------| | Form | `react-hook-form`, `zod`, `@hookform/resolvers` | | Toast | `sonner` | | Data Table | `@tanstack/react-table` | | Command | `cmdk` | | Date Picker | `date-fns` (optional) |
Install external deps separately: `pnpm add react-hook-form zod @hookform/resolvers`
These are documented corrections that prevent common bugs:
// Don't use empty string values <SelectItem value="">All</SelectItem> // BREAKS // Use sentinel value <SelectItem value="__any__">All</SelectItem> // WORKS const actual = value === "__any__" ? "" : value
// Don't spread {...field} — it passes null which Input rejects
<Input
value={field.value ?? ''}
onChange={field.onChange}
onBlur={field.onBlur}
name={field.name}
ref={field.ref}
/>// Don't use dynamic import — icons get tree-shaken in production
import * as LucideIcons from 'lucide-react'
const Icon = LucideIcons[iconName] // BREAKS in prod
// Use explicit map
import { Home, Users, Settings, type LucideIcon } from 'lucide-react'
const ICON_MAP: Record<string, LucideIcon> = { Home, Users, Settings }
const Icon = ICON_MAP[iconName]// Default sm:max-w-lg won't be overridden by max-w-6xl <DialogContent className="max-w-6xl"> // DOESN'T WORK // Use same breakpoint prefix <DialogContent className="sm:max-w-6xl"> // WORKS
shadcn components use semantic CSS tokens from your theme. To customise:
Add custom variants by editing the component file in `src/components/ui/`:
// button.tsx — add a "brand" variant
const buttonVariants = cva("...", {
variants: {
variant: {
default: "bg-primary text-primary-foreground",
brand: "bg-brand text-brand-foreground hover:bg-brand/90",
// ... existing variants
},
},
})Use semantic tokens from your theme — never raw Tailwind colours:
// Don't use raw colours <Button className="bg-blue-500"> // WRONG // Use semantic tokens <Button className="bg-primary"> // RIGHT <Card className="bg-card text-card-foreground"> // RIGHT
Determine what UI patterns the project needs:
| Need | Components | |------|-----------| | Forms with validation | Form, Input, Label, Select, Textarea, Button, Toast | | Data display with sorting | Table, Badge, Pagination | | Admin CRUD interface | Dialog, Form, Table, Button, Toast | | Marketing/landing page | Card, Button, Badge, Separator | | Settings/preferences | Tabs, Form, Switch, Select, Toast | | Navigation | NavigationMenu (desktop), Sheet (mobile), ModeToggle |
Install foundation first, then feature components for the identified needs. Use the commands above.
Combine components into working patterns. See [references/recipes.md](references/recipes.md) for complete working examples:
Apply project-specific colours and variants using semantic tokens from the theme.
| When | Read | |------|------| | Choosing components, install commands, props | [references/component-catalogue.md](references/component-catalogue.md) | | Building complete UI patterns | [references/recipes.md](references/recipes.md) |
Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Repo: jezweb/claude-skills
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure, configure bindings, deploy. Use…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration commands, type exports, and…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck migrations, handle partial failures. Use…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key ordering, produces idempotent…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.md…