Validates shadcn/ui component customization depth, ensuring components aren't used with default props and checking for consistent design system implementation across Tanstack Start applications
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Validates shadcn/ui component customization depth, ensuring components aren't used with default props and checking for consistent design system implementation across Tanstack Start applications
These patterns indicate generic "AI-generated" aesthetics and MUST be flagged:
Font Anti-Patterns (Auto-Detect)
// ❌ CRITICAL: Generic fonts that dominate 80%+ of websitesfontFamily: {
sans: ['Inter', ...] // Flag: "Inter is overused - consider Space Grotesk, Plus Jakarta Sans"sans: ['Roboto', ...] // Flag: "Roboto is overused - consider IBM Plex Sans, Outfit"sans: ['Open Sans', ...] // Flag: "Open Sans is generic - consider Satoshi, General Sans"sans: ['system-ui', ...] // Flag: Only acceptable as fallback, not primary
}
// ❌ CRITICAL: Default Tailwind font classes without customization
className="font-sans"// Flag if font-sans maps to Inter/Roboto
className="text-base"// Flag: Generic sizing, consider custom scale
Recommended Font Alternatives (suggest these in reports):
Body: Space Grotesk, Plus Jakarta Sans, IBM Plex Sans, Outfit, Satoshi
Headings: Archivo Black, Cabinet Grotesk, Clash Display, General Sans
Mono: JetBrains Mono, Fira Code, Source Code Pro
Color Anti-Patterns (Auto-Detect)
// ❌ CRITICAL: Purple gradients (most common AI aesthetic)
className="bg-gradient-to-r from-purple-500 to-purple-600"
className="bg-gradient-to-r from-violet-500 to-purple-500"
className="bg-purple-600"
className="text-purple-500"// ❌ CRITICAL: Default gray backgrounds without brand treatment
className="bg-gray-50"// Flag: "Consider brand-tinted background"
className="bg-white"// Flag: "Consider atmospheric gradient or texture"
className="bg-slate-100"// Flag if used extensively without brand colors
Recommended Color Approaches (suggest these in reports):
Use CSS variables with brand palette (--brand-primary, --brand-accent)
Tint grays with brand color: bg-brand-gray-50 instead of bg-gray-50
Gradients: Use brand colors, not default purple
Atmospheric: Layer gradients with subtle brand tints
Animation Anti-Patterns (Auto-Detect)
// ❌ CRITICAL: No transitions on interactive elements
<Button>Click</Button> // Flag: "Add transition-all duration-300"
<Card>Content</Card> // Flag: "Add hover:shadow-lg transition"// ❌ CRITICAL: Only basic hover without micro-interactions
className="hover:bg-blue-600"// Flag: "Consider hover:scale-105 or hover:-translate-y-1"
// Before validating customization depth, get actual component APIconst componentDocs = await mcp.shadcn.get_component("Button");
// Validate that used props exist// componentDocs.props: ['color', 'size', 'variant', 'icon', 'loading', 'disabled', ...]// Check for underutilized propsconst usedProps = ['color', 'size']; // From component codeconst availableProps = componentDocs.props;
const unutilizedProps = availableProps.filter(p => !usedProps.includes(p));
// Suggest: "Consider using 'icon' or 'loading' props for richer UX"
UI Prop Structure Validation
// Validate ui prop structure against schemaconst uiSchema = componentDocs.ui_schema;
// User code: :ui="{ font: 'font-heading', rounded: 'rounded-full' }"// Validate: Are 'font' and 'rounded' valid keys in ui prop?// Suggest: Other available ui customizations (padding, shadow, etc.)
Consistency Across Components
// Check multiple component instancesconst buttonInstances = findAllComponents("Button");
// Analyze customization patterns// Flag: Component used with 5 different customization styles// Suggest: Create composable or variant system for consistency
Benefits
Immediate Impact
Prevents Generic Appearance: Ensures components are branded, not defaults
Enforces Design Consistency: Catches pattern drift across components
Improves User Feedback: Validates loading states and interactions
Educates on Component API: Shows developers full customization capabilities
Long-term Value
Consistent Component Library: All components follow design system
Faster Component Development: Clear patterns and examples
Reduced Visual Debt: Prevents accumulation of one-off styles
Usage Examples
During Component Usage
// Developer adds: <Button>Click me</Button>// SKILL immediately activates: "⚠️ P1: Button using all default props. Customize with color, size, variant, and ui prop for brand distinctiveness."
During Async Actions
// Developer creates async button: <Button onClick="submitForm">Submit</Button>// SKILL immediately activates: "⚠️ P1: Button triggers async action but lacks :loading prop. Add loading state for user feedback."
During Refactoring
// Developer adds 5th different button style// SKILL immediately activates: "⚠️ P2: Button used with 5 different customization patterns. Consider creating reusable variants for consistency."
Before Deployment
// SKILL runs comprehensive check: "✅ Component aesthetic validation passed. 23 components with deep customization, consistent patterns, and proper loading states detected."
Consistency: Follows same patterns as other instances
This SKILL ensures every shadcn/ui component is deeply customized, consistently styled, and provides excellent user feedback, preventing the default/generic appearance that makes AI-generated UIs immediately recognizable.