shadcn
Install, customize, and compose shadcn/ui components with design-system awareness. shadcn is a code distribution system — components are source files you own, not packages.
Workflow
Every shadcn interaction follows four steps: Orient, Install, Refine, Verify.
1. Orient
Read project state before any CLI operation. Run npx shadcn@latest info to get framework, installed components, aliases, icon library, and base library. Read components.json directly for theme config. Never guess configuration.
2. Install
Add components via CLI, never by copying from docs manually.
npx shadcn@latest add button card dialog # Multiple at once
npx shadcn@latest add @namespace/component # From custom registry
npx shadcn@latest add --dry-run button # Preview before writing
Before re-adding an existing component, run npx shadcn@latest diff <name> to see upstream changes. Commit local customizations first — add overwrites files.
3. Refine
This is where craft lives. After every add, audit the component against the project's design system:
- Typography: Does it use the project's font variables and scale? Replace any hardcoded font sizes.
- Color tokens: Does it reference the project's CSS custom properties? Convert any raw color values to semantic tokens.
- Spacing rhythm: Does it follow the project's spacing scale? Harmonize padding and margins.
- Border radius: Does it use
--radiusfrom the theme? Shadcn sets this globally. - Animation: Does it use
tw-animate-cssclasses, nottailwindcss-animate? - Composition: Create wrapper components that compose shadcn primitives. Edit base components only for structural changes.
When minoan-frontend-design is active, translate its creative direction into shadcn theme variables and component customizations.
4. Verify
Build the project to catch type errors. Visually inspect the component in context. Check dark mode. Check mobile.
Tailwind v4 Contract
shadcn v4 uses OKLCH color space with @theme inline — not HSL, not tailwind.config.ts.
:root {
--primary: oklch(0.205 0.03 264.05);
--primary-foreground: oklch(0.985 0 0);
}
@theme inline {
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
}
Leave tailwind.config blank in components.json for v4 projects. Use data-slot attributes for targeted styling. Use React.ComponentProps<> — forwardRef is removed.
Theming
Colors follow background + foreground pairs. The background suffix is omitted for the primary role:
--primary (background), --primary-foreground (text on that background).
Extend with custom semantic tokens by adding both the CSS variable and the @theme inline mapping:
:root { --warning: oklch(0.84 0.16 84); --warning-foreground: oklch(0.14 0.04 84); }
@theme inline { --color-warning: var(--warning); --color-warning-foreground: var(--warning-foreground); }
Use cn() (clsx + tailwind-merge) for all class name composition.
References
Consult references/ on demand:
cli-v4-reference.md— Full command reference, flags, monorepo patterns. Read for any CLI operation.components-json-schema.md— Configuration schema with all fields. Read when initializing or reconfiguring.theming-oklch.md— OKLCH color system, CSS variable conventions, dark mode, custom colors. Read when theming.registry-authoring.md— Custom registry creation, namespacing, auth, item types. Read when building registries.tailwind-v4-migration.md— Breaking changes, upgrade path, tw-animate-css, data-slot. Read when migrating or troubleshooting.component-inventory.md— 59 components by category. Read when choosing what to install.customization-patterns.md— Wrapper composition, data-slot styling, diff tracking. Read when customizing components.
More from tdimino/claude-code-minoan
academic-research
Search academic papers, build literature reviews, and synthesize research findings — combines Exa MCP (research_paper category, arxiv filtering) with arxiv-mcp-server for paper discovery, download, and deep analysis. Triggers on academic paper, literature review, research synthesis, arxiv, find papers, scholarly search.
70travel-requirements-expert
Plan a trip, create an itinerary, or research a destination through a structured 5-phase workflow---discovery questions, Exa/Firecrawl research, expert detail gathering, and a day-by-day requirements spec. This skill should be used when a user says "plan a trip," "create an itinerary," "help me visit [place]," or needs travel research with specific venues, safety protocols, and dietary accommodations.
67twilio-api
Use this skill when working with Twilio communication APIs for SMS/MMS messaging, voice calls, phone number management, TwiML, webhook integration, two-way SMS conversations, bulk sending, or production deployment of telephony features. Includes official Twilio patterns, production code examples from Twilio-Aldea (provider-agnostic webhooks, signature validation, TwiML responses), and comprehensive TypeScript examples.
65figma-mcp
Convert Figma designs into production-ready code using MCP server tools. Use this skill when users provide Figma URLs, request design-to-code conversion, ask to implement Figma mockups, or need to extract design tokens and system values from Figma files. Works with frames, components, and entire design files to generate HTML, CSS, React, or other frontend code.
61firecrawl
Scrape web pages to clean markdown using Firecrawl v2 — handles JS-heavy pages, site crawls, URL mapping, document parsing (PDF/DOCX/XLSX), LLM-powered extraction, autonomous agent scraping, and post-scrape browser interaction (Interact API). Prefer over WebFetch for quality and completeness. Triggers on scrape URL, fetch page, crawl site, extract content, parse document, web to markdown, DeepWiki, Firecrawl.
51claude-usage
Report ground-truth Claude token consumption and estimated cost by parsing JSONL session files directly. Use when checking API spend, auditing token usage by project/session/model, generating daily/weekly/monthly cost reports, or diagnosing ccusage undercounting. Includes subagent files that ccusage ignores.
47