ux-designer
Perfect UX/UI designer that eliminates bugs, improves usability, and ensures flawless user experience. Use when user mentions "perfect the UI", "fix UX bugs", "improve demo", or "make it flawless".
About ux-designer
ux-designer is a Claude AI skill developed by HR-AR. Perfect UX/UI designer that eliminates bugs, improves usability, and ensures flawless user experience. Use when user mentions "perfect the UI", "fix UX bugs", "improve demo", or "make it flawless". This powerful Claude Code plugin helps developers automate workflows and enhance productivity with intelligent AI assistance.
Why use ux-designer? With 0 stars on GitHub, this skill has been trusted by developers worldwide. Install this Claude skill instantly to enhance your development workflow with AI-powered automation.
| name | ux-designer |
| description | Perfect UX/UI designer that eliminates bugs, improves usability, and ensures flawless user experience. Use when user mentions "perfect the UI", "fix UX bugs", "improve demo", or "make it flawless". |
| version | 1.0.0 |
| agents | ["codex-deep-research","gemini-research-analyst"] |
UX Designer - Perfection-Focused UI/UX Skill
Goal: Zero bugs, perfect usability, flawless user experience.
When to Use
Invoke this skill when:
- User mentions: "perfect the demo", "fix UX bugs", "make it flawless"
- UI has inconsistencies or bugs
- User experience is confusing or broken
- Demo has visual issues
- Interactive elements don't work properly
UX Perfection Methodology
Phase 1: Comprehensive UX Audit
1A. Visual Inspection
# Check all HTML files for common issues find public -name "*.html" -type f # For each file, check: - Broken links (404s) - Missing images - JavaScript errors in console - CSS rendering issues - Responsive design breakpoints - Color contrast (accessibility) - Typography consistency
1B. Interaction Testing
Test every interactive element: - [ ] Buttons: Click response, hover states, disabled states - [ ] Forms: Validation, error messages, success states - [ ] Navigation: All links work, breadcrumbs accurate - [ ] Modals: Open/close, backdrop click, ESC key - [ ] Dropdowns: Open/close, keyboard navigation - [ ] Tables: Sorting, filtering, pagination - [ ] Real-time updates: WebSocket connection, live data - [ ] Loading states: Spinners, skeletons, placeholders
1C. User Flow Analysis
Map critical user journeys: 1. New user onboarding → Should be intuitive, max 3 steps 2. Core feature usage → Should be discoverable, max 2 clicks 3. Error recovery → Clear error messages, obvious next steps 4. Success confirmation → Visible feedback, celebratory if appropriate
Phase 2: Research Best Practices
Launch codex-deep-research agent:
Invoke Task tool with subagent_type="codex-deep-research" Prompt: "Research the best UX/UI practices for interactive demos and dashboards. Context: - Project Conductor is a workflow orchestration platform - Demo showcases 7-module workflow (Onboarding → Implementation) - Tech: HTML, CSS, JavaScript (vanilla), Socket.io - Users: Product managers, engineers, stakeholders Provide best practices for: 1. **Demo UX Patterns** - Interactive tutorials vs guided tours - Progress indicators - Contextual help - Error handling in demos 2. **Dashboard Design** - Card layouts - Data visualization - Real-time updates (WebSocket) - Empty states - Loading states 3. **Navigation** - Module-to-module flow - Breadcrumbs - Back button behavior - Deep linking 4. **Accessibility** - Keyboard navigation - Screen reader support - Focus management - ARIA labels 5. **Performance** - Perceived performance - Lazy loading - Animation frame rate - Memory leaks 6. **Error Handling** - User-friendly error messages - Recovery actions - Fallback UI - Offline behavior Provide specific code examples and visual patterns."
Check for AI-powered UX tools:
Invoke Task tool with subagent_type="gemini-research-analyst" Prompt: "Research if Google's Gemini AI provides any UX design, usability testing, or UI generation tools. Investigate: 1. Gemini-powered UX analysis tools 2. Automated accessibility testing 3. UI component generation 4. User flow optimization 5. A/B testing recommendations 6. Heatmap analysis tools If available, explain how to integrate with HTML/JS demos."
Phase 3: Bug Hunting (Zero Tolerance)
3A. Console Error Check
// Check browser console for errors // Common issues: - Uncaught ReferenceError (missing variables) - Uncaught TypeError (null/undefined access) - Failed to fetch (broken API calls) - WebSocket connection failed - CORS errors - 404 for assets (images, CSS, JS)
3B. Network Tab Analysis
Check Network tab for: - [ ] All resources load successfully (no 404s) - [ ] API endpoints respond <200ms - [ ] WebSocket connection established - [ ] No unnecessary requests (optimize) - [ ] Proper caching headers - [ ] Compressed assets (gzip)
3C. Responsive Design Testing
# Test breakpoints - Mobile: 320px, 375px, 414px - Tablet: 768px, 1024px - Desktop: 1280px, 1440px, 1920px # Check for: - Horizontal scroll (should be none) - Text overflow - Image scaling - Button touch targets (min 44x44px) - Readable font sizes (min 16px)
3D. Cross-Browser Testing
Test in: - [ ] Chrome (latest) - [ ] Firefox (latest) - [ ] Safari (latest) - [ ] Edge (latest) Check for: - CSS compatibility (flexbox, grid) - JavaScript APIs (fetch, WebSocket) - Event handlers (click, keyboard) - CSS animations
Phase 4: Usability Improvements
4A. First-Time User Experience
Checklist: - [ ] Clear value proposition (what is this?) - [ ] Obvious starting point (where do I begin?) - [ ] Contextual help (tooltips, hints) - [ ] Progress indicators (how far have I gone?) - [ ] Success feedback (I completed something!) - [ ] Error prevention (guard rails) - [ ] Easy recovery (undo, reset)
4B. Visual Hierarchy
/* Apply visual hierarchy principles */ - Primary actions: Bold, high contrast, larger - Secondary actions: Less prominent - Tertiary actions: Text links, subtle - Destructive actions: Red, confirmation required - Disabled states: Greyed out, not clickable /* Example */ .btn-primary { background: #007bff; color: white; font-weight: 600; padding: 12px 24px; font-size: 16px; } .btn-secondary { background: transparent; border: 1px solid #6c757d; color: #6c757d; padding: 10px 20px; font-size: 14px; }
4C. Feedback & Confirmation
// Every user action needs feedback function handleAction(action) { // 1. Immediate feedback (button state) button.disabled = true; button.textContent = 'Processing...'; // 2. Action execution await performAction(action); // 3. Success feedback showToast('✅ Action completed successfully!', 'success'); button.disabled = false; button.textContent = 'Done'; // 4. Update UI to reflect change refreshData(); } // Toast notification system function showToast(message, type = 'info', duration = 3000) { const toast = document.createElement('div'); toast.className = `toast toast-${type}`; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => { toast.classList.add('fade-out'); setTimeout(() => toast.remove(), 300); }, duration); }
4D. Error Handling (User-Friendly)
// Bad: Generic error catch (error) { alert('Error'); } // Good: Helpful error with action catch (error) { showError({ title: 'Unable to Load Projects', message: 'We couldn\'t connect to the server. Please check your internet connection and try again.', actions: [ { label: 'Retry', onClick: () => retryLoad() }, { label: 'Go Back', onClick: () => history.back() } ], icon: '🔌' }); // Log detailed error for debugging console.error('Project load failed:', error); }
Phase 5: Accessibility Perfection
5A. Keyboard Navigation
// Ensure all interactive elements are keyboard accessible document.querySelectorAll('button, a, input, select, textarea').forEach(el => { // Add focus visible styles el.addEventListener('focus', (e) => { e.target.classList.add('focus-visible'); }); // Support Enter/Space on custom buttons if (el.getAttribute('role') === 'button') { el.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); el.click(); } }); } }); // Trap focus in modals function trapFocus(modal) { const focusableElements = modal.querySelectorAll( 'a[href], button, textarea, input, select, [tabindex]:not([tabindex="-1"])' ); const firstElement = focusableElements[0]; const lastElement = focusableElements[focusableElements.length - 1]; modal.addEventListener('keydown', (e) => { if (e.key === 'Tab') { if (e.shiftKey && document.activeElement === firstElement) { e.preventDefault(); lastElement.focus(); } else if (!e.shiftKey && document.activeElement === lastElement) { e.preventDefault(); firstElement.focus(); } } else if (e.key === 'Escape') { closeModal(); } }); }
5B. ARIA Labels
<!-- Bad: No context for screen readers --> <button onclick="save()"> <svg>...</svg> </button> <!-- Good: Descriptive label --> <button onclick="save()" aria-label="Save project changes"> <svg aria-hidden="true">...</svg> </button> <!-- Dynamic content --> <div role="status" aria-live="polite" aria-atomic="true"> <span id="status-message">Loading projects...</span> </div> <!-- Form validation --> <input type="email" id="email" aria-describedby="email-error" aria-invalid="true" > <span id="email-error" role="alert"> Please enter a valid email address </span>
5C. Color Contrast Check
// Ensure WCAG AA compliance (4.5:1 for normal text, 3:1 for large) // Use tools: Chrome DevTools Lighthouse, axe DevTools // Example: Check programmatically function checkContrast(foreground, background) { const ratio = getContrastRatio(foreground, background); return { passAA: ratio >= 4.5, passAAA: ratio >= 7, ratio: ratio.toFixed(2) }; } // Fix: Increase contrast /* Before */ .text-muted { color: #999; } /* 2.8:1 - FAILS */ /* After */ .text-muted { color: #6c757d; } /* 4.5:1 - PASSES */
Phase 6: Performance Optimization
6A. Perceived Performance
// Instant feedback, lazy load heavy content async function loadDashboard() { // 1. Show skeleton immediately (0ms) showSkeleton(); // 2. Load critical data first (100ms) const criticalData = await fetchCritical(); renderCritical(criticalData); hideSkeleton(); // 3. Load secondary data (background) fetchSecondary().then(renderSecondary); // 4. Prefetch likely next page prefetchNextPage(); } // Skeleton UI function showSkeleton() { const skeleton = ` <div class="skeleton-card"> <div class="skeleton-line skeleton-title"></div> <div class="skeleton-line"></div> <div class="skeleton-line"></div> </div> `; container.innerHTML = skeleton.repeat(6); }
6B. Animation Performance
/* Bad: Causes layout thrashing */ .animate-bad { animation: slide-in 0.3s ease; } @keyframes slide-in { from { margin-left: -100px; } to { margin-left: 0; } } /* Good: GPU-accelerated */ .animate-good { animation: slide-in 0.3s ease; } @keyframes slide-in { from { transform: translateX(-100px); } to { transform: translateX(0); } } /* Use will-change for complex animations */ .will-animate { will-change: transform, opacity; }
6C. Memory Leak Prevention
// Bad: Event listeners not cleaned up socket.on('update', handleUpdate); // Good: Clean up on unmount const listeners = []; function addListener(event, handler) { socket.on(event, handler); listeners.push({ event, handler }); } function cleanup() { listeners.forEach(({ event, handler }) => { socket.off(event, handler); }); listeners.length = 0; } // Call cleanup when leaving page window.addEventListener('beforeunload', cleanup);
Phase 7: Final Polish
7A. Micro-interactions
/* Smooth button interactions */ button { transition: all 0.2s ease; transform: scale(1); } button:hover { transform: scale(1.05); box-shadow: 0 4px 8px rgba(0,0,0,0.2); } button:active { transform: scale(0.98); } /* Loading spinner */ @keyframes spin { to { transform: rotate(360deg); } } .spinner { animation: spin 1s linear infinite; }
7B. Empty States
<!-- Instead of blank screen --> <div class="empty-state"> <svg class="empty-icon"><!-- Icon --></svg> <h3>No projects yet</h3> <p>Create your first project to get started</p> <button class="btn-primary">Create Project</button> </div>
7C. Consistency Check
Ensure consistency across: - [ ] Button styles (primary, secondary, danger) - [ ] Spacing (use 8px grid: 8, 16, 24, 32, 48, 64) - [ ] Typography (max 3 font sizes, consistent weights) - [ ] Colors (stick to design system palette) - [ ] Icons (same style, size, stroke width) - [ ] Shadows (consistent elevation levels) - [ ] Border radius (consistent rounding) - [ ] Animations (consistent timing, easing)
Validation Checklist
Before marking UX as "perfect":
Functionality
- All buttons work (no broken onClick handlers)
- All links go to correct destinations
- Forms validate properly
- API calls succeed
- WebSocket connects and receives updates
- Error states display correctly
- Success states display correctly
- Loading states show during async operations
Visual
- No layout shift (CLS score <0.1)
- No horizontal scroll
- Consistent spacing
- Consistent typography
- High color contrast (WCAG AA)
- Icons are clear and consistent
- Images load correctly
- No visual bugs (overlapping, cutoff text)
Usability
- Clear navigation
- Obvious primary actions
- Helpful error messages
- Success confirmation
- Undo/cancel available
- Keyboard accessible
- Screen reader compatible
- Mobile responsive (320px - 1920px)
Performance
- Page load <2s
- API calls <200ms
- Smooth animations (60fps)
- No memory leaks
- Efficient rendering (no jank)
Browser Compatibility
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Demo-Specific Checks
For Project Conductor demo:
Module Navigation
# Test all module transitions Module 0 (Onboarding) → Module 1 (Dashboard) Module 1 (Dashboard) → Module 2 (BRD) Module 2 (BRD) → Module 3 (PRD) Module 3 (PRD) → Module 4 (Engineering Design) Module 4 (Engineering Design) → Module 5 (Conflicts) Module 5 (Conflicts) → Module 6 (Implementation) Module 6 (Implementation) → Module 1 (Dashboard) # Check: - [ ] All links work - [ ] Navigation breadcrumbs update - [ ] Back button works - [ ] State persists (if applicable)
Real-Time Features
// Test WebSocket functionality - [ ] Connection establishes on page load - [ ] Live updates appear without refresh - [ ] Multiple tabs stay in sync - [ ] Reconnects after disconnect - [ ] Shows offline indicator if disconnected - [ ] No duplicate updates
Data Display
- [ ] Projects list loads correctly - [ ] Requirements display properly - [ ] Status badges show correct colors - [ ] Progress bars update in real-time - [ ] Filters work correctly - [ ] Sorting works correctly - [ ] Pagination works correctly - [ ] Search works correctly
Output Format
After UX audit, provide:
## UX Audit Report **Status**: [PERFECT ✅ / NEEDS FIXES ⚠️ / CRITICAL ISSUES ❌] ### Issues Found #### Critical (Must Fix) 🔴 1. [Issue description] - Impact: [How this affects users] - Fix: [Specific code changes needed] - File: [path/to/file.html] - Line: [line number] #### Important (Should Fix) 🟡 1. [Issue description] - Impact: [How this affects users] - Fix: [Specific code changes needed] #### Nice to Have (Polish) 🟢 1. [Issue description] - Enhancement: [How this improves UX] - Suggestion: [Code example] ### UX Score - Functionality: [X/10] - Visual Design: [X/10] - Usability: [X/10] - Accessibility: [X/10] - Performance: [X/10] **Overall**: [X/50] - [Grade: A+ to F] ### Next Steps 1. Fix critical issues first 2. Implement important fixes 3. Add polish enhancements 4. Re-test all flows 5. Final validation ### Code Fixes [Provide specific code changes with file paths and line numbers]
Example Usage
User: "Make sure the demo is perfect"
This skill will:
- Audit all demo HTML files
- Test every interactive element
- Research best UX practices
- Find and document all bugs
- Provide specific fixes with code
- Validate accessibility
- Check performance
- Test across browsers
- Generate comprehensive report
- Implement fixes if requested

HR-AR
Project-Conductor
Download Skill Files
View Installation GuideDownload the complete skill directory including SKILL.md and all related files