Mandatory design system guidelines for shadcn/ui with Tailwind v4. Enforces 4 font sizes, 2 weights, 8pt grid spacing, 60/30/10 color rule, OKLCH colors, and accessibility standards. Use when creating components, pages, or any UI elements. ALL agents MUST read and validate against design system before generating code.
/plugin marketplace add vanman2024/ai-dev-marketplace/plugin install nextjs-frontend@ai-dev-marketplaceThis skill is limited to using the following tools:
README.mdexamples/taskflow-ai-example.mdscripts/setup-design-system.shscripts/validate-design-system.shtemplates/design-system-template.mdPurpose: Enforce consistent, accessible, and beautiful UI across all Next.js projects using shadcn/ui with Tailwind v4.
Activation Triggers:
Key Resources:
scripts/setup-design-system.sh - Interactive design system configurationscripts/validate-design-system.sh - Validate code against design systemtemplates/design-system-template.md - Template with placeholdersexamples/taskflow-ai-example.md - Complete example configurationSTRICTLY ENFORCED:
✅ Size 1: Large headings
✅ Size 2: Subheadings
✅ Size 3: Body text
✅ Size 4: Small text/labels
✅ Semibold: Headings and emphasis
✅ Regular: Body text and UI
❌ FORBIDDEN:
STRICTLY ENFORCED:
Tailwind Classes:
p-2 (8px) | m-2 (8px) | gap-2 (8px)
p-4 (16px) | m-4 (16px) | gap-4 (16px)
p-6 (24px) | m-6 (24px) | gap-6 (24px)
p-8 (32px) | m-8 (32px) | gap-8 (32px)
STRICTLY ENFORCED:
bg-background) - White/dark backgroundstext-foreground) - Text and iconsbg-primary) - CTAs and highlights only❌ FORBIDDEN:
REQUIRED:
Run setup script during project initialization:
# Interactive setup
./scripts/setup-design-system.sh
# Guided configuration:
# 1. Project name and brand color
# 2. Typography scale (4 sizes)
# 3. Color configuration (OKLCH format)
# 4. Dark mode colors
# 5. Figma design system URL
# Generates: design-system.md in project root
What Gets Configured:
Check if existing code follows design system:
# Validate all components
./scripts/validate-design-system.sh
# Checks performed:
# - Font size count (must be ≤ 4)
# - Font weight usage (must be 2)
# - Spacing divisibility (by 8 or 4)
# - Color distribution (60/30/10)
# - Custom CSS usage (should use Tailwind)
# - shadcn/ui component usage
# - Accessibility compliance
Validation Output:
✅ Typography: 4 sizes, 2 weights
✅ Spacing: All divisible by 8/4
❌ Colors: Accent usage at 15% (exceeds 10%)
❌ Custom CSS: Found 3 instances, use Tailwind utilities
⚠️ Accessibility: Missing ARIA labels on 2 components
MANDATORY AGENT WORKFLOW:
# 1. Read design system (REQUIRED)
cat design-system.md
# 2. Understand constraints
# - Only 4 font sizes from config
# - Only 2 font weights
# - All spacing divisible by 8/4
# - Color distribution 60/30/10
# - OKLCH colors only
# - shadcn/ui components only
# 3. Generate code following design system
# 4. Self-validate before completion
./scripts/validate-design-system.sh app/components/MyNewComponent.tsx
From Template:
Size 1: {{FONT_SIZE_1}} - Large headings
Size 2: {{FONT_SIZE_2}} - Subheadings
Size 3: {{FONT_SIZE_3}} - Body text
Size 4: {{FONT_SIZE_4}} - Small text
After Setup (Example):
Size 1: text-2xl (24px) - Large headings
Size 2: text-lg (18px) - Subheadings
Size 3: text-base (16px) - Body text
Size 4: text-sm (14px) - Small text
Template (OKLCH format):
:root {
--background: {{BACKGROUND_OKLCH}};
--foreground: {{FOREGROUND_OKLCH}};
--primary: {{PRIMARY_OKLCH}};
--primary-foreground: {{PRIMARY_FOREGROUND_OKLCH}};
}
After Setup:
:root {
--background: oklch(1 0 0);
--foreground: oklch(0.145 0 0);
--primary: oklch(0.549 0.175 252.417);
--primary-foreground: oklch(0.985 0 0);
}
@theme {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
}
MANDATORY CHECKLIST:
design-system.md fileENFORCE:
bg-background, 30% text-foreground, 10% bg-primary@/components/ui/VALIDATE:
# Self-validation
./scripts/validate-design-system.sh path/to/component.tsx
# Must pass all checks before completion:
# ✅ Typography constraints
# ✅ Spacing constraints
# ✅ Color distribution
# ✅ No custom CSS
# ✅ Accessibility
❌ AUTOMATIC REJECTION:
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
export function ExampleComponent() {
return (
<Card className="p-6 bg-background">
{' '}
{/* 24px padding - ✅ divisible by 8 */}
<CardHeader className="mb-4">
{' '}
{/* 16px margin - ✅ divisible by 8 */}
<CardTitle className="text-2xl font-semibold">
{' '}
{/* ✅ Size 1, Semibold */}
Welcome to TaskFlow
</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
{' '}
{/* 16px gap - ✅ divisible by 8 */}
<p className="text-base font-normal text-foreground">
{' '}
{/* ✅ Size 3, Regular, 60% */}
Manage your tasks efficiently with AI-powered workflows.
</p>
<div className="flex gap-4">
{' '}
{/* 16px gap - ✅ divisible by 8 */}
<Button className="bg-primary text-primary-foreground">
{' '}
{/* ✅ 10% accent */}
Get Started
</Button>
<Button variant="outline" className="text-foreground">
{' '}
{/* ✅ 30% complementary */}
Learn More
</Button>
</div>
</CardContent>
</Card>
);
}
Validation:
Phase 1: Parse Arguments
Actions:
- **FIRST**: Read design system: !{bash cat design-system.md}
- Parse page name from $ARGUMENTS
Phase 4: Page Generation
- Agent MUST validate against design system before completion
Phase 1: Parse Arguments
Actions:
- **FIRST**: Read design system: !{bash cat design-system.md}
- Parse component name from $ARGUMENTS
Phase 4: Implementation
- Agent MUST enforce all design system constraints
- Self-validate before returning component
Error:
❌ Found 6 font sizes: text-xs, text-sm, text-base, text-lg, text-xl, text-2xl
Expected: 4 font sizes only
Fix:
design-system.mdError:
❌ Found spacing not divisible by 8/4:
- padding: 15px (line 42)
- margin: 25px (line 58)
Fix:
// ❌ Before
<div className="p-[15px] mb-[25px]">
// ✅ After
<div className="p-4 mb-6"> {/* 16px and 24px */}
Error:
❌ Accent color usage: 18% (exceeds 10% limit)
Found 12 instances of bg-primary
Fix:
bg-background and text-foreground for majorityScripts: scripts/ directory:
setup-design-system.sh - Interactive configurationvalidate-design-system.sh - Code validationupdate-colors.sh - Batch color updatescheck-typography.sh - Typography auditTemplates: templates/ directory:
design-system-template.md - Base template with placeholdersglobals-css-template.css - Color variable templatecomponents-json-template.json - shadcn/ui configExamples: examples/ directory:
taskflow-ai-example.md - Complete configured examplee-commerce-example.md - E-commerce design systemdashboard-example.md - Admin dashboard design systemFramework: Next.js 13+ with App Router UI Library: shadcn/ui (Radix UI + Tailwind CSS v4) Color Format: OKLCH Enforcement: Mandatory for all agents Version: 1.0.0