// Analyzes existing project structure and design system, then provides contextually relevant UI/UX design options with visual descriptions. Helps users choose layouts, color schemes, component patterns, and interactions that integrate seamlessly with their current codebase. Activates for any UI, design, frontend, or visual-related development questions.
| name | ui-ux-design-advisor |
| description | Analyzes existing project structure and design system, then provides contextually relevant UI/UX design options with visual descriptions. Helps users choose layouts, color schemes, component patterns, and interactions that integrate seamlessly with their current codebase. Activates for any UI, design, frontend, or visual-related development questions. |
This skill helps you make better UI/UX decisions by first analyzing your existing project structure and design system, then presenting multiple contextually relevant design options with clear visual descriptions, best practices, and implementation plans. When you're building any user interface, this skill ensures you get recommendations that integrate seamlessly with your current codebase.
This skill automatically activates when you're working on:
Keywords that trigger this skill: UI, UX, design, frontend, interface, layout, component, style, visual, page, dashboard, landing page, form, navigation, menu, button, card, theme, responsive, mobile
Follow this four-step process:
Before providing any recommendations, first understand the current state of the project:
Analysis Checklist:
Present Your Findings:
I've analyzed your project structure. Here's what I found:
**Current Setup:**
- Tech Stack: [React with Tailwind CSS / Vue with plain CSS / etc.]
- Design System: [Colors currently used, typography, spacing patterns]
- Existing Components: [List key components already built]
- File Organization: [How files are structured]
**Observations:**
- [Strength 1: e.g., "Consistent color usage across components"]
- [Strength 2: e.g., "Well-organized component structure"]
- [Opportunity 1: e.g., "Could benefit from a unified spacing scale"]
- [Opportunity 2: e.g., "Typography system could be more consistent"]
Now, for [the requested change], here are design options that align with your existing setup...
Important: If no existing structure is found (new project), mention this and proceed with fresh options.
Based on your analysis of the existing structure, present 3-4 distinct design approaches that:
I'll help you design [the interface element]. Let me show you a few different approaches:
## Option 1: [Design Pattern Name]
**Visual Style:** [Description of overall aesthetic]
**Layout:** [How elements are arranged]
**Key Features:**
- [Feature 1]
- [Feature 2]
- [Feature 3]
**Best For:** [Use cases where this excels]
**Trade-offs:** [What you give up with this choice]
## Option 2: [Different Design Pattern]
[Same structure as above]
## Option 3: [Another Design Pattern]
[Same structure as above]
## Option 4: Custom/Hybrid
Or describe what you have in mind and I'll design it for you.
Which approach appeals to you? (Or mix elements from multiple options)
Once the user chooses, create a detailed plan that integrates with their existing setup:
Perfect! I'll create [their choice] while maintaining consistency with your existing structure. Here's my implementation plan:
**Integration Strategy:**
- [How this fits with existing components]
- [Files to create/modify]
- [Existing patterns to leverage]
**Design System (Building on Your Current Setup):**
- Color Palette: [Extend their existing colors or propose refinements]
- Typography: [Work with their current fonts or suggest compatible additions]
- Spacing Scale: [Use their scale or propose improvements]
- Component Hierarchy: [What gets built/modified and in what order]
**Layout Structure:**
- [Responsive strategy consistent with their approach]
- [Grid/flexbox matching their patterns]
- [Section organization]
**Key Components:**
1. [Component name] - [Purpose, will it extend existing or be new?]
2. [Component name] - [Purpose, reuses X pattern from existing code]
3. [Component name] - [Purpose and key features]
**Code Organization:**
- [Where files will be placed to match their structure]
- [Naming conventions to follow]
- [Import patterns to use]
**Interactions & Animations:**
- [Match or enhance existing interaction patterns]
**Accessibility Considerations:**
- [Maintain or improve current accessibility standards]
Does this plan look good? Any adjustments before I build it?
After plan approval, build the interface with clean, well-structured code following the plan.
1. Examine File Structure:
# Look at the project organization
tree -L 3 -I 'node_modules'
# Or use: ls -R
Questions to Answer:
2. Read Key Files:
package.json - Understand dependencies and tech stack3. Identify Patterns:
4. Extract Design System: Look for:
5. Note Conventions:
If no existing structure found:
I notice this is a new project with no existing structure. I'll recommend:
**Tech Stack Suggestions:**
- [Most appropriate stack for their use case]
- [Reasoning for each choice]
**Initial Design System:**
- [Color palette options]
- [Typography suggestions]
- [Component organization approach]
Now, here are design options for [their request]...
Always structure your findings like this:
**Project Analysis:**
✅ **Strengths:**
- [Thing they're doing well]
- [Another strength]
💡 **Opportunities:**
- [Area for improvement]
- [Missing capability]
🎨 **Current Design System:**
- Colors: [List colors with hex codes]
- Typography: [Fonts being used]
- Spacing: [Pattern observed]
- Components: [List existing components]
📁 **Tech Stack:**
- Framework: [React/Vue/Vanilla]
- Styling: [Tailwind/CSS Modules/Styled Components]
- State: [Redux/Context/None observed]
- Build: [Vite/Webpack/Next.js]
Now, for [their request], here are options that integrate with this setup...
Present options like:
Present options like:
Present options like:
Present options like:
Present options like:
Present options for:
Present options for:
Present options for:
Present options for:
Stay current with these approaches:
Semi-transparent backgrounds with blur effects
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
Soft shadows creating raised/pressed effects
Raw, bold, unapologetic design with harsh contrasts
Clean, focused, maximum impact with minimum elements
Complex, organic color gradients
User: "Build me a dashboard for tracking expenses"
Your Response (Step 1 - Analysis):
Let me first analyze your existing project structure to understand what you have in place.
[Claude examines files, reads code, understands structure]
I've analyzed your project. Here's what I found:
**Current Setup:**
- Tech Stack: React with Tailwind CSS
- Design System: Using blue (#2563EB) as primary, gray scale for text
- Existing Components: Button, Card, Input components in /components folder
- File Organization: Components in /components, pages in /src/pages, utilities in /lib
**Observations:**
- ✅ Consistent use of Tailwind utility classes
- ✅ Good component modularity with reusable Button and Card
- 💡 Could benefit from a unified data visualization approach
- 💡 No existing table component (would need to build)
- 💡 Color palette could use a green/red for positive/negative metrics
Now, for your expense tracking dashboard, let me show you design approaches that build on this foundation...
Your Response (Step 2 - Design Options):
I'll help you create an expense tracking dashboard. Let me show you a few design approaches:
## Option 1: Modern Card-Based Layout
**Visual Style:** Clean, contemporary with subtle shadows and rounded corners
**Layout:** Top navigation bar with grid of cards below, sidebar for filters
**Key Features:**
- Large summary cards showing total expenses, budget remaining, monthly trend
- Transaction list in scrollable card with search/filter
- Interactive charts (pie chart for categories, line chart for trends)
- Quick add expense floating action button
**Best For:** Users who want a visual overview at a glance
**Trade-offs:** More scrolling needed to see all transactions
## Option 2: Table-Centric Design
**Visual Style:** Professional, data-dense with clean lines
**Layout:** Sidebar navigation with main area dominated by sortable table
**Key Features:**
- Compact stats bar at top (4 key metrics)
- Full-width data table with inline editing
- Advanced filtering and export options
- Split view option to see transaction details
**Best For:** Power users who manage many transactions
**Trade-offs:** Less visual, more functional
## Option 3: Mobile-First Minimalist
**Visual Style:** Simple, gesture-friendly, bottom navigation
**Layout:** Single column with swipeable cards
**Key Features:**
- Swipe transactions left for actions (edit/delete)
- Bottom tab bar (transactions, categories, budget, insights)
- Thumb-friendly interactions
- Quick add at bottom
**Best For:** Primary mobile users, simplicity seekers
**Trade-offs:** Desktop experience may feel sparse
Which approach fits your needs best? (Or I can combine elements)
User: "Option 1 looks great but can we add the table from option 2 instead of the scrollable card?"
Your Response (Step 3 - Implementation Plan):
Perfect combination! I'll create a Modern Card-Based layout with a professional data table, all integrated with your existing Tailwind setup. Here's my plan:
**Integration Strategy:**
- Extend your existing Card component for the summary stats
- Create new Table component following your component patterns
- Place in /components/dashboard/ to keep organized
- Reuse your existing Button component for actions
**Design System (Building on Your Current Setup):**
- Color Palette:
- Primary: #2563EB (Your existing blue) - Keep for consistency
- Success: #10B981 (Green) - NEW: For positive metrics
- Danger: #EF4444 (Red) - NEW: For over budget warnings
- Neutral: Continue using your gray scale (gray-50 to gray-900)
- Typography: Keep using Tailwind's default font stack (system fonts)
- Spacing: Continue using Tailwind's scale (p-4, p-6, space-y-4, etc.)
- Border Radius: rounded-lg (8px) to match your existing Cards
**Layout Structure:**
- Desktop (1024px+): Grid layout using your existing responsive patterns
- Tablet (768-1023px): Stack cards, full-width table
- Mobile (<768px): Single column, simplified table view
- Use your existing container patterns
**Key Components:**
1. ExpenseStatsCard - Extends your existing Card component with stat styling
2. ExpenseTable - NEW component, follows your component structure pattern
3. QuickAddButton - Wraps your existing Button with floating position
4. Charts (if needed) - Will use Recharts to match React ecosystem
**Code Organization:**
- /components/dashboard/ExpenseStatsCard.jsx
- /components/dashboard/ExpenseTable.jsx
- /components/dashboard/ExpenseCharts.jsx
- /src/pages/Dashboard.jsx (main page)
**Interactions:**
- Use your existing hover: patterns (hover:bg-gray-50)
- Tailwind transitions (transition-colors duration-200)
- Keep consistent with your Button hover states
**Accessibility:**
- Maintain your semantic HTML approach
- Add ARIA labels for table
- Keyboard navigation using your focus: states
Ready to build this?
Design Patterns:
Code Quality Indicators:
Performance Patterns:
Accessibility Patterns:
Don't Fight the Tech Stack:
Maintain Consistency:
Build On, Don't Replace:
{
"dependencies": {
"react": "^18.2.0",
"tailwindcss": "^3.3.0",
"framer-motion": "^10.0.0",
"react-hook-form": "^7.43.0",
"lucide-react": "^0.263.1"
}
}
What This Tells You:
Before marking implementation complete, verify:
Create reusable design values:
:root {
--color-primary: #3B82F6;
--spacing-unit: 8px;
--border-radius-md: 8px;
--font-family-sans: 'Inter', system-ui;
}
Build complex UIs from simple, reusable components
Use animation purposefully (feedback, direction, delight)
Always offer as an option using CSS variables
Start with working HTML, layer on CSS, enhance with JS
Analysis First, Always: Never jump straight to recommendations. Always understand the existing structure first. Even if it takes a few extra seconds, examining the codebase provides critical context that makes your recommendations 10x more valuable.
Context is Everything: The "best" design isn't universal—it's the one that fits their project, tech stack, team conventions, and existing patterns. A beautiful solution that fights their architecture is worse than a good solution that integrates smoothly.
Build Bridges, Not Islands: New code should feel like a natural extension of existing code, not a separate system. Match their style, extend their patterns, and reference their components.
Guide, Don't Dictate: Present options with context about trade-offs. Let users make informed decisions. Your job is to illuminate paths, not force one.
The goal is to guide users through design decisions with clear options based on understanding their existing setup, then deliver high-quality implementations that integrate seamlessly. Great UI/UX balances aesthetics, usability, accessibility, performance, AND consistency with the existing codebase.