ui-design-system
React UI component systems with TailwindCSS + Radix + shadcn/ui. Stack: TailwindCSS (styling), Radix UI (primitives), shadcn/ui (components), React/Next.js. Capabilities: design system architecture, accessible components, responsive layouts, theming, dark mode, component composition. Actions: review
By samhvw8 · 3,177 installs
npx skills add samhvw8/dot-claude --skill ui-design-system
Source repository · Upstream listing
UI/UX Design & Development Expert
Comprehensive UI/UX design, review, and improvement for modern web applications.
Production ready implementations with TailwindCSS + Radix UI + shadcn/ui and modern React patterns.
Stack Architecture
The Three Pillars
Layer 1: TailwindCSS (Styling Foundation)
Utility first CSS framework with build time generation
Zero runtime overhead, minimal production bundles
Design tokens: colors, spacing, typography, breakpoints
Responsive utilities and dark mode support
Layer 2: Radix UI (Behavior & Accessibility)
Unstyled, accessible component primitives
WAI ARIA compliant with keyboard navigation
Focus management and screen reader support
Unopinionated full styling control
Layer 3: shadcn/ui (Beautiful Components)
Pre built components = Radix primitives + Tailwind styling
Copy paste distribution (you own the code)
Built in React Hook Form + Zod validation
Customizable variants with type safety
Architecture Hierarchy
Key Principle: Each layer enhances the one below. Start with Tailwind for styling, add Radix for accessible behavior, use shadcn/ui for complete components.
Core Capabilities
UI/UX Review & Audit
Systematic evaluation of existing interfaces:
Component Architecture Review: Analyze component composition, reusability, and single responsibility
Accessibility Audit: WCAG 2.1/2.2 AA/AAA compliance, keyboard navigation, screen reader support
Performance Analysis: Core Web Vitals (LCP, FID, CLS), bundle size, render performance
Responsive Design Review: Mobile first implementation, breakpoint usage, container queries
Design System Consistency: Token usage, spacing scale adherence, color palette compliance
Code Quality: React best practices, hooks usage, state management patterns
Visual Hierarchy: Typography scale, spacing rhythm, color contrast, focus indicators
UI/UX Design
Creating production ready interface designs:
Component Design: Atomic design principles, composition patterns, variant systems
Layout Architecture: Grid systems, flexbox patterns, responsive containers
Interaction Design: Hover states, focus states, loading states, error states
Design Tokens: Three tier token system (primitive → semantic → component)
Color Systems: OKLCH color space, accessible palettes, dark mode support
Typography Systems: Scale design, hierarchy, readability optimization
Animation & Transitions: Micro interactions, loading feedback, state changes
UI/UX Improvement
Enhancing existing implementations:
Accessibility Enhancement: ARIA patterns, semantic HTML, keyboard navigation
Performance Optimization: Code splitting, lazy loading, virtualization, image optimization
Responsive Refinement: Breakpoint optimization, mobile first improvements
Component Refactoring: Extract shared patterns, reduce complexity, improve reusability
Visual Polish: Spacing consistency, typography refinement, color harmony
State Management: Optimistic updates, error handling, loading states
Developer Experience: Component documentation, Storybook stories, type safety
Styling Integration
Framework agnostic styling approaches:
Tailwind with Components: Utility first styling for any framework
CSS in JS: emotion, styled components, vanilla extract
CSS Modules: Scoped styles without runtime overhead
Design System Integration: Token based styling across frameworks
When to Use Each Layer
Use TailwindCSS Directly When:
Building custom layouts and spacing
Styling static content and containers
Rapid prototyping without complex interactions
Non interactive UI elements
Example scenarios: Hero sections, grid layouts, cards without interaction, text styling
Use Radix UI Primitives When:
Building custom component libraries
Need accessibility but require custom design
shadcn/ui doesn't have the component you need
Full control over component structure required
Example scenarios: Custom date picker, unique navigation pattern, specialized modal behavior
Use shadcn/ui Components When:
Building standard UI components quickly
Need beautiful defaults with customization options
Enterprise application development
Form heavy applications with validation
Example scenarios: Admin dashboards, CRUD applications, settings pages, data tables
Critical Design Principles
1. Progressive Enhancement
Start simple, enhance as needed:
1. Tailwind utilities for basic styling
2. Add Radix primitives for interaction
3. Use shadcn/ui for complete solutions
4. Customize components in your codebase
2. Composition Over Complexity
Build complex UIs from simple, reusable components:
Small, focused components (single responsibility)
Compose primitives rather than creating monoliths
Leverage component slots and children patterns
3. Accessibility First
Radix UI handles accessibility automatically:
ARIA attributes applied correctly
Keyboard navigation built in
Focus management and trapping
Screen reader compatibility
Never override accessibility features enhance them.
4. Design Token Consistency
Use Tailwind's design system consistently:
Stick to spacing scale (4, 8, 16, 24px)
Use color palette (50 950 shades)
Apply typography scale systematically
Avoid arbitrary values unless necessary
5. Mobile First Responsive
Always design mobile first, scale up:
Base styles for mobile
Use breakpoints (sm, md, lg, xl, 2xl) to enhance
Test on actual devices, not just browser resize
Setup Strategy
Installation Order
1. TailwindCSS Foundation
2. shadcn/ui CLI Includes Radix dependencies
3. Add components Install only what you need
4. Configure theme CSS variables + Tailwind config
5. Setup dark mode Theme provider + toggle
Configuration Best Practices
Tailwind Config:
Use content paths correctly (scan all component files)
Extend theme with CSS variables, not hardcoded values
Enable dark mode with class strategy
Install tailwindcss animate plugin
CSS Variables (Three Tier System):
Color Space Recommendation:
Modern : Use OKLCH for perceptual uniformity
Legacy support : Use HSL with fallbacks
Avoid : RGB/HEX for design tokens (not human readable)
Token Storage:
Store in JSON for platform agnostic distribution
Transform to CSS variables, Swift, XML using Style Dictionary
Version control tokens separately from component code
Path Aliases:
Configure @/components and @/lib in tsconfig
Ensure consistency between Next.js and TypeScript configs
Use aliases in imports for cleaner code
Integration Patterns
Pattern 1: shadcn/ui + Custom Tailwind
Use shadcn/ui components as base, customize with Tailwind classes:
Apply custom spacing, colors via className prop
Override default styles with Tailwind utilities
Maintain component accessibility
Pattern 2: Radix Primitives + Tailwind
Build custom components from scratch:
Use Radix for behavior (Dialog, Dropdown, etc.)
Style completely with Tailwind utilities
Full control over structure and appearance
Pattern 3: Hybrid Approach
Modify shadcn/ui components in your codebase:
Edit component files in components/ui/
Add new variants, sizes, or styles
Maintain type safety with CVA (Class Variance Authority)
Pattern 4: Component Composition
Combine multiple primitives for complex UIs:
Popover + Select for searchable dropdown
Dialog + Form for modal forms
Tabs + Cards for multi section interfaces
Design Token Architecture
Use three tier token system for scalable, maintainable design systems:
Tier 1 (Primitive) : Raw values ( gray 50 , spacing 4 )
Tier 2 (Semantic) : Purpose driven ( background primary , text error )
Tier 3 (Component) : Component specific ( button height , card padding )
Modern Color: Use OKLCH color space for perceptual uniformity and better accessibility calculations.
📖 See [DESIGN TOKENS.md](references/DESIGN TOKENS.md) for:
Complete three tier token system implementation
OKLCH color space guide and examples
Token naming conventions and best practices
CSS variable configuration
Multi theme support patterns
Responsive Design Strategy
Mobile first approach: Start with mobile (0 639px), scale up through sm/md/lg/xl/2xl breakpoints.
Key patterns: Layout shifts (column→row), component switching (Dialog→Drawer), container queries for modular responsiveness.
📖 See [RESPONSIVE PATTERNS.md](references/RESPONSIVE PATTERNS.md) for:
Complete breakpoint strategy and implementation
Responsive component patterns and examples
Container queries guide
Image optimization strategies
Performance considerations for responsive design
Comprehensive testing checklist
Form Architecture
Strategy: React Hook Form + Zod for schema first validation with type inference and accessible error handling.
📖 See [CUSTOMIZATION.md](references/CUSTOMIZATION.md form architecture) for:
Complete React Hook Form + Zod setup
Reusable field wrapper patterns
Multi step form implementation
Accessibility requirements checklist
Performance Best Practices
Core strategies: Code splitting (React.lazy), Tailwind optimization (accurate content paths), virtualization (@tanstack/react virtual for long lists).
📖 See [PERFORMANCE OPTIMIZATION.md](references/PERFORMANCE OPTIMIZATION.md) for:
Complete performance optimization guide
Core Web Vitals optimization strategies
Bundle analysis and tree shaking
Common pitfalls and solutions
Performance monitoring setup
Component Customization & Dark Mode
Customization Strategies
1. Direct Modification : Edit shadcn/ui files in your codebase
2. Variant Extension : Use CVA for type safe variants
3. Wrapper Components : Add custom logic around base components
4. Theme Customization : Modify CSS variables globally
Dark Mode Setup
1. ThemeProvider with next themes
2. Class strategy ( class , not media query)
3. CSS variables in .dark class
4. Accessible toggle component
📖 See [CUSTOMIZATION.md](references/CUSTOMIZATION.md) for:
Complete customization strategies with examples
CVA variant implementation guide
Dark mode setup and configuration
Design considerations and testing
Form architecture patterns
Accessibility Standards
Radix UI Built In Guarantees
✅ ARIA attributes applied correctly
✅ Keyboard navigation functional
✅ Focus management and trapping automatic
✅ Screen reader compatible
WCAG Contrast Requirements (Critical)
WCAG 2.1 Level AA (Legal Minimum):
Normal text: 4.5:1 minimum contrast ratio
Large text (18pt/14pt bold+): 3:1 minimum
UI components/graphics: 3:1 minimum
Industry standard : Most legal requirements specify AA
WCAG Level AAA (Enhanced):
Normal text: 7:1 contrast ratio
Large text: 4.5:1 contrast ratio
Best practice : Aim for AAA when design constraints allow
Measurement:
Contrast ratio range: 1:1 (white on white) to 21:1 (black on white)
Use tools: WebAIM Color Contrast Checker, browser DevTools
Test during design phase, not after implementation
OKLCH Advantage:
Perceptually uniform color space makes contrast calculations more reliable and predictable compared to HSL.
Implementation Checklist
✅ All text meets 4.5:1 minimum (AA standard)
✅ Interactive elements meet 3:1 minimum
✅ Provide descriptive labels ( aria label , <label )
✅ Test complete keyboard navigation flow
✅ Verify visible focus indicators (not just browser default)
✅ Test with screen readers (NVDA, JAWS, VoiceOver)
✅ Use semantic HTML elements ( <button , <nav , <main )
✅ Provide alternative text for images and icons
✅ Ensure dark mode maintains contrast standards
Testing Strategy
1. Automated : Use contrast checkers during design
2. Manual : Tab through entire interface
3. Screen readers : Test with at least one screen reader
4. Real use