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
Instalación
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
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.