Enterprise Component Designer & Accessible UI Architecture
Enterprise Component Capabilities
Modern Framework Integration:
- React 19 with server components and async rendering
- Vue 3.5 with composition API and reactive systems
- Svelte 5 with rune-based reactivity
- Solid.js for fine-grained reactivity
Atomic Design & Component Systems:
- Atoms, Molecules, Organisms architecture
- Design tokens and theme systems
- Component composition patterns
- Storybook 8.0 integration
Accessibility Standards:
- WCAG 2.1 AA compliance
- ARIA patterns and semantics
- Keyboard navigation
- Screen reader optimization
- Focus management
- Color contrast validation
Production Design Systems:
- Material Design 3
- Chakra UI patterns
- Shadcn/UI architecture
- Radix UI primitives
Skill Metadata
| Field |
Value |
| Version |
4.0.0 Enterprise |
| Created |
2025-11-12 |
| Frameworks |
React 19, Vue 3.5, Svelte 5, Solid.js |
| Design Systems |
Material Design 3, Chakra, Shadcn, Radix |
| Accessibility |
WCAG 2.1 AA, ARIA patterns |
| Tools |
Storybook 8.0, Figma, Chromatic |
| Tier |
4 (Enterprise) |
Component Architecture Deep Dive
Level 1: Atomic Foundation
Atoms (Basic UI elements):
- Button component with variants (solid, outline, ghost, link)
- Input field with validation states
- Label with accessibility attributes
- Icon wrapper with sizing
- Badge with semantic colors
- Text variants (heading, body, caption)
Atomic Design Principles:
- Pure presentational (no business logic)
- Single responsibility
- Highly reusable
- Type-safe with TypeScript
- Accessibility first
- Visual regression tested
Level 2: Molecules (Component Combinations)
Molecular Components:
- Form group (label + input + validation feedback)
- Card with header/footer/actions
- Navigation menu item
- Search input with autocomplete
- Modal with focus trap
- Tooltip with positioning
- Dropdown with keyboard support
- Progress bar with labels
- Alert box with actions
- Tag input with removal
Composition Strategies:
- Props composition for flexibility
- Render props pattern
- Compound components (Dialog.Trigger, Dialog.Content)
- Slots/composition API (Vue)
- Context-based shared state
Level 3: Organisms (Complex UI Sections)
Organism Components:
- Data table (sorting, filtering, pagination)
- Form with multi-step validation
- Navigation header with dropdown
- Sidebar layout with responsive collapse
- Dialog/Modal systems with overlay
- Breadcrumb navigation
- Pagination component
- Tabs interface
- Accordion/Disclosure
- Tree view with keyboard nav
Advanced Patterns:
- Virtual scrolling for large lists
- Infinite scroll implementation
- Lazy loading with suspense
- Keyboard navigation matrix
- Focus management
- Accessible overlays
Accessibility & WCAG 2.1 AA
Keyboard Navigation
Standard patterns:
- Tab: Move to next focusable element
- Shift+Tab: Move to previous
- Enter: Activate button/submit
- Space: Toggle checkbox/radio
- Arrow keys: Navigate lists/menus
- Escape: Close modals/dropdowns
- Home/End: Jump to start/end
Implementation:
- tabindex management (0, -1)
- Focus visible styles
- Skip links
- Focus traps in modals
- Logical tab order
Screen Reader Support
Semantic HTML:
- Use
<button> for buttons (not <div>)
- Use
<label> for form inputs
- Use
<nav>, <main>, <article>
- Proper heading hierarchy (
<h1> to <h6>)
- List elements for lists
ARIA Attributes:
aria-label: Accessible name
aria-describedby: Description link
aria-invalid: Form error state
aria-live: Dynamic content updates
aria-expanded: Toggle states
aria-hidden: Hide decorative elements
role: Custom element semantics
Live Regions:
- Alert notifications
- Status updates
- Loading states
- Form validation feedback
- Search results
Visual Accessibility
Color Contrast:
- 4.5:1 for normal text (WCAG AA)
- 3:1 for large text (18pt+)
- Color + icon/pattern (not color alone)
- Test with tools: WebAIM, Stark
Focus Indicators:
- Minimum 2px visible focus ring
- Sufficient contrast
- Not removed with CSS reset
- Consistent styling
Responsive Design:
- Touch targets minimum 44x44px
- Text sizing support
- Zoom compatibility (200%)
- Mobile-first approach
- Orientation support
Motion & Animation:
- Respect
prefers-reduced-motion
- Avoid flashing content
- Auto-play disabled
- Pause controls for video/animation
Design System Architecture
Token System
Color Tokens:
Primary, Secondary, Success, Warning, Error, Info
Light & Dark variants
Semantic naming (on-primary, background, surface)
WCAG contrast pre-validated
Spacing Scale:
Base unit: 4px
Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96
Padding, margin, gaps
Responsive breakpoints
Touch-friendly (min 44px)
Typography:
Font families: system, serif, monospace
Sizes: 12px to 64px scale
Line height: 1.2 to 1.8 ratios
Font weights: 400, 500, 600, 700
Letter spacing adjustments
Motion & Animation:
Short: 150ms (hover, focus)
Medium: 300ms (transitions)
Long: 500ms+ (entrances, exits)
Easing: ease-out, ease-in-out, ease-in
Respect prefers-reduced-motion
Component State Model
Universal States:
- Default/Rest: Initial state
- Hover: Mouse over
- Focus: Keyboard focus
- Active: Pressed/selected
- Disabled: Non-interactive
- Loading: Async operation
- Error: Validation failure
- Success: Action completed
State Implementation:
- Data attributes (
data-state)
- CSS classes
- CSS variables
- Component state (React, Vue)
- Compound component pattern
React 19 Examples
1. Button Component
- Variants: solid, outline, ghost, link
- Sizes: xs, sm, md, lg, xl
- Colors: primary, secondary, success, error
- States: default, hover, focus, disabled, loading
- Type-safe with TypeScript generics
- Accessibility: aria-label, aria-disabled, role
2. Form Input System
- Text, email, password, number, date, select
- Real-time validation feedback
- Error message display
- Helper text support
- Label integration with for/id
- Accessibility: aria-describedby, aria-invalid, aria-required
3. Modal Dialog
- Focus trap with FocusLock library
- Keyboard escape handling
- Scroll lock on body
- ARIA dialog pattern
- Smooth enter/exit animations
- Backdrop click handling
4. Data Table
- Column sorting with indicators
- Row filtering
- Pagination controls
- Responsive horizontal scroll
- Selection checkboxes
- Keyboard navigation (arrow keys)
- Accessibility: caption, thead/tbody, aria-sort, aria-label
5. Tabs Component
- Keyboard navigation (arrow keys, Home, End)
- Accessible names with aria-label
- Active state indication
- ARIA tabs pattern
- Lazy loading support
- Customizable indicators
Vue 3.5 Composition API Examples
1. useButton Composable
- Variant and size handling
- State management (hover, focus, active)
- Event handling
- Type-safe props
- Return reactive button state
2. useForm Composable
- Form field registration
- Validation orchestration
- Error tracking
- Dirty/touched states
- Submit handling
- Reset functionality
3. useModal Composable
- Open/close state
- Focus trap management
- Keyboard escape handling
- Ref forwarding
- Animated enter/exit
- Custom close handlers
4. useDataTable Composable
- Sorting management
- Filtering logic
- Pagination state
- Selection handling
- Keyboard navigation
- Performance optimization
5. useAccessibility Composable
- Focus management
- ARIA attribute generation
- Keyboard event handling
- Live region updates
- Screen reader announcements
Storybook 8.0 Integration
Story Organization:
- Atoms (basic components)
- Molecules (combinations)
- Organisms (complex UI)
- Templates (page layouts)
- Pages (full examples)
Story Best Practices:
- One story per component state
- Use controls for interactive props
- Include accessibility notes
- Link to design tokens
- Document accessibility requirements
- Visual regression setup
- Performance monitoring
- Component API documentation
Accessibility Testing in Storybook:
- Axe accessibility addon
- Color contrast checker
- Keyboard navigation testing
- Screen reader annotation
Production Considerations
Performance
Component optimization:
- React.memo for pure components
- Lazy loading with Suspense
- Virtual scrolling for lists (1000+ items)
- Code splitting by route
- Tree shaking unused code
- Bundle size monitoring
Runtime performance:
- Avoid inline objects/functions
- Batch state updates
- Use keys in lists
- Optimize re-renders
- Use web workers for heavy computation
Testing Strategy
Test coverage targets:
- Unit tests: >90% (component logic)
- Integration tests: Interaction flows
- Visual regression: Storybook + Chromatic
- Accessibility: axe testing
- E2E: Critical user journeys
- Performance: Lighthouse + Web Vitals
Documentation
Component documentation:
- Usage examples
- Props API table
- Accessibility requirements
- Design tokens used
- Related components
- Common patterns
- Migration guides
- Troubleshooting
Deployment
Release process:
- Semantic versioning
- Changelog generation
- Breaking changes documentation
- Migration guides
- Design token versioning
- Component API stability
Enterprise Checklist:
1---2name: moai-component-designer3description: Enterprise-grade component design and architecture with React 19, Vue 3.5, Atomic Design patterns, accessibility standards (WCAG 2.1 AA), design systems, and production-ready component libraries. Use when building reusable component systems, designing component libraries, implementing Atomic Design, ensuring accessibility compliance, or creating scalable UI architectures.4---56# Enterprise Component Designer & Accessible UI Architecture78## Enterprise Component Capabilities910**Modern Framework Integration**:11- React 19 with server components and async rendering12- Vue 3.5 with composition API and reactive systems13- Svelte 5 with rune-based reactivity14- Solid.js for fine-grained reactivity1516**Atomic Design & Component Systems**:17- Atoms, Molecules, Organisms architecture18- Design tokens and theme systems19- Component composition patterns20- Storybook 8.0 integration2122**Accessibility Standards**:23- WCAG 2.1 AA compliance24- ARIA patterns and semantics25- Keyboard navigation26- Screen reader optimization27- Focus management28- Color contrast validation2930**Production Design Systems**:31- Material Design 332- Chakra UI patterns33- Shadcn/UI architecture34- Radix UI primitives3536## Skill Metadata37| Field | Value |38| ----- | ----- |39| **Version** | **4.0.0 Enterprise** |40| **Created** | 2025-11-12 |41| **Frameworks** | React 19, Vue 3.5, Svelte 5, Solid.js |42| **Design Systems** | Material Design 3, Chakra, Shadcn, Radix |43| **Accessibility** | WCAG 2.1 AA, ARIA patterns |44| **Tools** | Storybook 8.0, Figma, Chromatic |45| **Tier** | **4 (Enterprise)** |4647## Component Architecture Deep Dive4849### Level 1: Atomic Foundation5051**Atoms** (Basic UI elements):52- Button component with variants (solid, outline, ghost, link)53- Input field with validation states54- Label with accessibility attributes55- Icon wrapper with sizing56- Badge with semantic colors57- Text variants (heading, body, caption)5859**Atomic Design Principles**:601. Pure presentational (no business logic)612. Single responsibility623. Highly reusable634. Type-safe with TypeScript645. Accessibility first656. Visual regression tested6667### Level 2: Molecules (Component Combinations)6869**Molecular Components**:70- Form group (label + input + validation feedback)71- Card with header/footer/actions72- Navigation menu item73- Search input with autocomplete74- Modal with focus trap75- Tooltip with positioning76- Dropdown with keyboard support77- Progress bar with labels78- Alert box with actions79- Tag input with removal8081**Composition Strategies**:82- Props composition for flexibility83- Render props pattern84- Compound components (Dialog.Trigger, Dialog.Content)85- Slots/composition API (Vue)86- Context-based shared state8788### Level 3: Organisms (Complex UI Sections)8990**Organism Components**:91- Data table (sorting, filtering, pagination)92- Form with multi-step validation93- Navigation header with dropdown94- Sidebar layout with responsive collapse95- Dialog/Modal systems with overlay96- Breadcrumb navigation97- Pagination component98- Tabs interface99- Accordion/Disclosure100- Tree view with keyboard nav101102**Advanced Patterns**:103- Virtual scrolling for large lists104- Infinite scroll implementation105- Lazy loading with suspense106- Keyboard navigation matrix107- Focus management108- Accessible overlays109110## Accessibility & WCAG 2.1 AA111112### Keyboard Navigation113114**Standard patterns**:115```116- Tab: Move to next focusable element117- Shift+Tab: Move to previous118- Enter: Activate button/submit119- Space: Toggle checkbox/radio120- Arrow keys: Navigate lists/menus121- Escape: Close modals/dropdowns122- Home/End: Jump to start/end123```124125**Implementation**:126- tabindex management (0, -1)127- Focus visible styles128- Skip links129- Focus traps in modals130- Logical tab order131132### Screen Reader Support133134**Semantic HTML**:135- Use `<button>` for buttons (not `<div>`)136- Use `<label>` for form inputs137- Use `<nav>`, `<main>`, `<article>`138- Proper heading hierarchy (`<h1>` to `<h6>`)139- List elements for lists140141**ARIA Attributes**:142- `aria-label`: Accessible name143- `aria-describedby`: Description link144- `aria-invalid`: Form error state145- `aria-live`: Dynamic content updates146- `aria-expanded`: Toggle states147- `aria-hidden`: Hide decorative elements148- `role`: Custom element semantics149150**Live Regions**:151- Alert notifications152- Status updates153- Loading states154- Form validation feedback155- Search results156157### Visual Accessibility158159**Color Contrast**:160- 4.5:1 for normal text (WCAG AA)161- 3:1 for large text (18pt+)162- Color + icon/pattern (not color alone)163- Test with tools: WebAIM, Stark164165**Focus Indicators**:166- Minimum 2px visible focus ring167- Sufficient contrast168- Not removed with CSS reset169- Consistent styling170171**Responsive Design**:172- Touch targets minimum 44x44px173- Text sizing support174- Zoom compatibility (200%)175- Mobile-first approach176- Orientation support177178**Motion & Animation**:179- Respect `prefers-reduced-motion`180- Avoid flashing content181- Auto-play disabled182- Pause controls for video/animation183184## Design System Architecture185186### Token System187188**Color Tokens**:189```190Primary, Secondary, Success, Warning, Error, Info191Light & Dark variants192Semantic naming (on-primary, background, surface)193WCAG contrast pre-validated194```195196**Spacing Scale**:197```198Base unit: 4px199Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96200Padding, margin, gaps201Responsive breakpoints202Touch-friendly (min 44px)203```204205**Typography**:206```207Font families: system, serif, monospace208Sizes: 12px to 64px scale209Line height: 1.2 to 1.8 ratios210Font weights: 400, 500, 600, 700211Letter spacing adjustments212```213214**Motion & Animation**:215```216Short: 150ms (hover, focus)217Medium: 300ms (transitions)218Long: 500ms+ (entrances, exits)219Easing: ease-out, ease-in-out, ease-in220Respect prefers-reduced-motion221```222223### Component State Model224225**Universal States**:226- Default/Rest: Initial state227- Hover: Mouse over228- Focus: Keyboard focus229- Active: Pressed/selected230- Disabled: Non-interactive231- Loading: Async operation232- Error: Validation failure233- Success: Action completed234235**State Implementation**:236- Data attributes (`data-state`)237- CSS classes238- CSS variables239- Component state (React, Vue)240- Compound component pattern241242## React 19 Examples243244### 1. Button Component245- Variants: solid, outline, ghost, link246- Sizes: xs, sm, md, lg, xl247- Colors: primary, secondary, success, error248- States: default, hover, focus, disabled, loading249- Type-safe with TypeScript generics250- Accessibility: aria-label, aria-disabled, role251252### 2. Form Input System253- Text, email, password, number, date, select254- Real-time validation feedback255- Error message display256- Helper text support257- Label integration with for/id258- Accessibility: aria-describedby, aria-invalid, aria-required259260### 3. Modal Dialog261- Focus trap with FocusLock library262- Keyboard escape handling263- Scroll lock on body264- ARIA dialog pattern265- Smooth enter/exit animations266- Backdrop click handling267268### 4. Data Table269- Column sorting with indicators270- Row filtering271- Pagination controls272- Responsive horizontal scroll273- Selection checkboxes274- Keyboard navigation (arrow keys)275- Accessibility: caption, thead/tbody, aria-sort, aria-label276277### 5. Tabs Component278- Keyboard navigation (arrow keys, Home, End)279- Accessible names with aria-label280- Active state indication281- ARIA tabs pattern282- Lazy loading support283- Customizable indicators284285## Vue 3.5 Composition API Examples286287### 1. useButton Composable288- Variant and size handling289- State management (hover, focus, active)290- Event handling291- Type-safe props292- Return reactive button state293294### 2. useForm Composable295- Form field registration296- Validation orchestration297- Error tracking298- Dirty/touched states299- Submit handling300- Reset functionality301302### 3. useModal Composable303- Open/close state304- Focus trap management305- Keyboard escape handling306- Ref forwarding307- Animated enter/exit308- Custom close handlers309310### 4. useDataTable Composable311- Sorting management312- Filtering logic313- Pagination state314- Selection handling315- Keyboard navigation316- Performance optimization317318### 5. useAccessibility Composable319- Focus management320- ARIA attribute generation321- Keyboard event handling322- Live region updates323- Screen reader announcements324325## Storybook 8.0 Integration326327**Story Organization**:328```329- Atoms (basic components)330- Molecules (combinations)331- Organisms (complex UI)332- Templates (page layouts)333- Pages (full examples)334```335336**Story Best Practices**:3371. One story per component state3382. Use controls for interactive props3393. Include accessibility notes3404. Link to design tokens3415. Document accessibility requirements3426. Visual regression setup3437. Performance monitoring3448. Component API documentation345346**Accessibility Testing in Storybook**:347- Axe accessibility addon348- Color contrast checker349- Keyboard navigation testing350- Screen reader annotation351352## Production Considerations353354### Performance355356**Component optimization**:357- React.memo for pure components358- Lazy loading with Suspense359- Virtual scrolling for lists (1000+ items)360- Code splitting by route361- Tree shaking unused code362- Bundle size monitoring363364**Runtime performance**:365- Avoid inline objects/functions366- Batch state updates367- Use keys in lists368- Optimize re-renders369- Use web workers for heavy computation370371### Testing Strategy372373**Test coverage targets**:374- Unit tests: >90% (component logic)375- Integration tests: Interaction flows376- Visual regression: Storybook + Chromatic377- Accessibility: axe testing378- E2E: Critical user journeys379- Performance: Lighthouse + Web Vitals380381### Documentation382383**Component documentation**:384- Usage examples385- Props API table386- Accessibility requirements387- Design tokens used388- Related components389- Common patterns390- Migration guides391- Troubleshooting392393### Deployment394395**Release process**:396- Semantic versioning397- Changelog generation398- Breaking changes documentation399- Migration guides400- Design token versioning401- Component API stability402403---404405**Enterprise Checklist**:406- [ ] 100% TypeScript coverage407- [ ] WCAG 2.1 AA compliance verified (axe testing)408- [ ] All components keyboard navigable409- [ ] Screen reader tested410- [ ] <50KB gzipped library411- [ ] >95% Lighthouse accessibility score412- [ ] <100ms interaction response time413- [ ] >95% test coverage414- [ ] Design tokens documented415- [ ] Storybook stories complete