← ClaudeAtlas

ui-component-patternslisted

Build reusable, maintainable UI components following modern design patterns. Use when creating component libraries, implementing design systems, or building scalable frontend architectures. Handles React patterns, composition, prop design, TypeScript, and component best practices.
aiskillstore/marketplace · ★ 329 · Web & Frontend · score 82
Install: claude install-skill aiskillstore/marketplace
# UI Component Patterns ## When to use this skill - **Building Component Libraries**: Creating reusable UI components - **Implementing Design Systems**: Applying consistent UI patterns - **Complex UI**: Components requiring multiple variants (Button, Modal, Dropdown) - **Refactoring**: Extracting duplicate code into components ## Instructions ### Step 1: Props API Design Design Props that are easy to use and extensible. **Principles**: - Clear names - Reasonable defaults - Type definitions with TypeScript - Optional Props use optional marker (?) **Example** (Button): ```tsx interface ButtonProps { // Required children: React.ReactNode; // Optional (with defaults) variant?: 'primary' | 'secondary' | 'outline' | 'ghost'; size?: 'sm' | 'md' | 'lg'; disabled?: boolean; isLoading?: boolean; // Event handlers onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void; // HTML attribute inheritance type?: 'button' | 'submit' | 'reset'; className?: string; } function Button({ children, variant = 'primary', size = 'md', disabled = false, isLoading = false, onClick, type = 'button', className = '', ...rest }: ButtonProps) { const baseClasses = 'btn'; const variantClasses = `btn-${variant}`; const sizeClasses = `btn-${size}`; const classes = `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`; return ( <button type={type} className={classes} disabled={disabled || isLoading} onClic