/design

Transform visual design references into actionable technical specifications. Analyze screenshots, videos, or design mockups to extract layout structure, styling details, component patterns, and implementation strategies.

Syntax

/design:describe [screenshot or video file]

How It Works

The /design:describe command uses AI vision to analyze visual content:

1. Visual Analysis

  • Processes screenshot or video using multimodal AI
  • Identifies UI components and layout structure
  • Extracts color palette and typography
  • Measures spacing, sizing, and proportions
  • Detects interaction patterns (from videos)

2. Component Identification

  • Recognizes common UI patterns
  • Identifies component library usage (Material UI, Ant Design, etc.)
  • Maps components to standard implementations
  • Detects custom components

3. Style Extraction

  • Extracts color values (hex, RGB)
  • Identifies font families and sizes
  • Measures spacing system (padding, margins)
  • Detects border radius, shadows, gradients
  • Analyzes layout systems (Grid, Flexbox)

4. Implementation Strategy

  • Suggests appropriate tech stack
  • Recommends component libraries
  • Provides CSS/Tailwind implementation hints
  • Identifies reusable patterns
  • Estimates complexity and effort

5. Technical Specifications

  • Generates detailed component breakdown
  • Creates responsive design notes
  • Documents state management requirements
  • Lists required assets and resources

Examples

Landing Page Screenshot

/design:describe [saas-landing-hero.png]

Visual Analysis Output:

Design Analysis: SaaS Landing Hero Section
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Layout Structure:
β”œβ”€β”€ Full-width hero section (min-height: 100vh)
β”œβ”€β”€ Two-column grid layout (60/40 split at desktop)
β”‚   β”œβ”€β”€ Left: Content (headline, description, CTA)
β”‚   └── Right: Product screenshot with floating cards
└── Gradient background (purple-600 β†’ indigo-900)

Typography:
β”œβ”€β”€ Headline: "Inter" font, 72px, 900 weight, -0.02em tracking
β”œβ”€β”€ Subheading: "Inter" font, 24px, 400 weight, 1.6 line-height
└── Button: "Inter" font, 18px, 600 weight, uppercase

Color Palette:
β”œβ”€β”€ Primary: #7C3AED (purple-600)
β”œβ”€β”€ Accent: #4338CA (indigo-700)
β”œβ”€β”€ Text: #FFFFFF (white)
β”œβ”€β”€ Text Secondary: #E9D5FF (purple-200)
└── Background: Linear gradient (135deg, #7C3AED β†’ #312E81)

Components Identified:
β”œβ”€β”€ Navigation Bar
β”‚   β”œβ”€β”€ Logo (SVG, 40px height)
β”‚   β”œβ”€β”€ Menu Items (5 items, horizontal)
β”‚   └── CTA Button (outlined, white border)
β”œβ”€β”€ Hero Content
β”‚   β”œβ”€β”€ Badge ("New Feature" pill)
β”‚   β”œβ”€β”€ H1 Headline (3 lines, left-aligned)
β”‚   β”œβ”€β”€ Description Paragraph (2 lines)
β”‚   └── CTA Group (2 buttons, horizontal)
└── Product Visual
    β”œβ”€β”€ Browser mockup (screenshot container)
    β”œβ”€β”€ Floating cards (3 cards, positioned absolute)
    └── Blur backdrop effects

Spacing System:
β”œβ”€β”€ Container padding: 80px (desktop), 24px (mobile)
β”œβ”€β”€ Section gap: 48px
β”œβ”€β”€ Button padding: 16px 32px
β”œβ”€β”€ Card gap: 24px
└── Consistent 8px spacing unit

Visual Effects:
β”œβ”€β”€ Gradient background with noise texture
β”œβ”€β”€ Floating cards with shadow: 0 25px 50px -12px rgba(0,0,0,0.25)
β”œβ”€β”€ Button hover: scale(1.05) + shadow increase
β”œβ”€β”€ Backdrop blur: blur(12px) on floating cards
└── Subtle animation: floating cards move vertically (2s ease-in-out infinite)

Responsive Behavior:
β”œβ”€β”€ Desktop (>1024px): Two-column layout
β”œβ”€β”€ Tablet (768-1023px): Stack layout, reduced font sizes
β”œβ”€β”€ Mobile (<768px): Single column, full-width CTA
└── Navigation: Hamburger menu below 768px

Implementation Suggestions:
β”œβ”€β”€ Framework: React or Next.js
β”œβ”€β”€ Styling: Tailwind CSS with custom gradient
β”œβ”€β”€ Components: Hero, Button, Card, Badge, Navigation
β”œβ”€β”€ Libraries: Framer Motion for animations
β”œβ”€β”€ Assets Needed: Logo SVG, product screenshot, noise texture
└── Estimated Time: 4-6 hours for pixel-perfect implementation

Accessibility Notes:
β”œβ”€β”€ Ensure sufficient color contrast (currently good)
β”œβ”€β”€ Add alt text for product screenshot
β”œβ”€β”€ Keyboard navigation for menu
β”œβ”€β”€ Focus indicators for interactive elements
└── Reduced motion media query for animations

Mobile App Screenshot

/design:describe [mobile-app-profile.png]

Analysis Output:

Design Analysis: Mobile Profile Screen
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Device: iPhone 14 Pro (393 Γ— 852 px)
Platform: iOS (status bar, rounded corners detected)

Layout Structure:
β”œβ”€β”€ Status Bar (system, 54px height)
β”œβ”€β”€ Navigation Header (60px)
β”‚   β”œβ”€β”€ Back button (left)
β”‚   β”œβ”€β”€ Title "Profile" (center)
β”‚   └── Edit icon (right)
β”œβ”€β”€ Profile Section (auto height)
β”‚   β”œβ”€β”€ Avatar (120px circle, center)
β”‚   β”œβ”€β”€ Name (24px, center)
β”‚   β”œβ”€β”€ Bio (16px, center, gray)
β”‚   └── Stats Row (3 columns)
β”œβ”€β”€ Action Buttons Row (2 buttons, gap 12px)
└── Content Tabs (underline style)
    └── Grid Content (3 columns)

Design System:
β”œβ”€β”€ Colors:
β”‚   β”œβ”€β”€ Primary: #007AFF (iOS blue)
β”‚   β”œβ”€β”€ Background: #F2F2F7 (iOS light gray)
β”‚   β”œβ”€β”€ Surface: #FFFFFF (white cards)
β”‚   β”œβ”€β”€ Text Primary: #000000
β”‚   └── Text Secondary: #8E8E93
β”œβ”€β”€ Typography:
β”‚   β”œβ”€β”€ System Font: SF Pro (iOS native)
β”‚   β”œβ”€β”€ Name: 24px, 600 weight
β”‚   β”œβ”€β”€ Stats Number: 20px, 600 weight
β”‚   └── Labels: 14px, 400 weight
└── Spacing:
    β”œβ”€β”€ Container padding: 16px
    β”œβ”€β”€ Element gap: 12px
    └── Grid gap: 2px

Components:
β”œβ”€β”€ Avatar
β”‚   β”œβ”€β”€ Size: 120px Γ— 120px
β”‚   β”œβ”€β”€ Border: 4px white + 2px shadow
β”‚   └── Centered with gradient border effect
β”œβ”€β”€ Stats Card
β”‚   β”œβ”€β”€ Three columns (equal width)
β”‚   β”œβ”€β”€ Number (large, bold) + Label (small, gray)
β”‚   └── No borders, clean spacing
β”œβ”€β”€ Buttons
β”‚   β”œβ”€β”€ Primary: Filled (#007AFF, white text)
β”‚   β”œβ”€β”€ Secondary: Outlined (border: #007AFF)
β”‚   β”œβ”€β”€ Height: 44px (iOS touch target)
β”‚   └── Border radius: 12px
└── Tab Bar
    β”œβ”€β”€ Underline indicator (2px, #007AFF)
    β”œβ”€β”€ Active state: blue text + underline
    └── Inactive: gray text

Interaction Patterns:
β”œβ”€β”€ Pull to refresh (detected from context)
β”œβ”€β”€ Tap avatar to view full size
β”œβ”€β”€ Tab switching with slide animation
β”œβ”€β”€ Grid items tap to open detail
└── Native iOS gestures (swipe back)

Technical Implementation:
β”œβ”€β”€ Platform: React Native or Swift/SwiftUI
β”œβ”€β”€ Navigation: Stack navigator with modal for edit
β”œβ”€β”€ State Management: Profile data, tabs state
β”œβ”€β”€ APIs: User profile, posts grid
β”œβ”€β”€ Image Handling: Avatar upload, image caching
└── Performance: Lazy loading grid, image optimization

Similar Patterns Found:
β”œβ”€β”€ Instagram profile screen
β”œβ”€β”€ Twitter profile layout
β”œβ”€β”€ Standard iOS Settings pattern
└── Apple HIG compliant design

Recommendations:
βœ“ Use native iOS components for authenticity
βœ“ Implement haptic feedback on interactions
βœ“ Add skeleton loaders for data fetching
βœ“ Support dark mode with adaptive colors
βœ“ Handle safe area insets properly

Design Video Analysis

/design:describe [onboarding-flow.mp4]

Video Analysis Output:

Design Analysis: Onboarding Flow Animation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Video Duration: 15 seconds
Flow Steps: 4 screens
Transitions: Smooth slide animations (300ms ease-out)

Screen 1: Welcome (0:00 - 0:03)
β”œβ”€β”€ Hero illustration (Lottie animation)
β”‚   └── Character waves (loop, 2s duration)
β”œβ”€β”€ Headline: "Welcome to AppName"
β”œβ”€β”€ Subheading: Brief value proposition
└── "Get Started" button (pulsing subtle animation)

Screen 2: Feature Highlight (0:04 - 0:07)
β”œβ”€β”€ Icon animation (scale in + rotate)
β”œβ”€β”€ Feature title with typewriter effect
β”œβ”€β”€ Bullet points fade in sequentially (100ms stagger)
β”œβ”€β”€ Progress dots (2/4, animated)
└── "Next" button + "Skip" link

Screen 3: Permissions (0:08 - 0:11)
β”œβ”€β”€ Permission icon (notifications bell)
β”œβ”€β”€ Permission request explanation
β”œβ”€β”€ "Allow" button (primary)
β”œβ”€β”€ "Not Now" button (text link)
└── Progress dots (3/4)

Screen 4: Profile Setup (0:12 - 0:15)
β”œβ”€β”€ Avatar upload circle (dashed border animation)
β”œβ”€β”€ Name input field (focus state shown)
β”œβ”€β”€ Email input field (validation icon)
β”œβ”€β”€ "Complete Setup" button
└── Progress dots (4/4, all filled)

Animation Details:
β”œβ”€β”€ Page Transitions:
β”‚   β”œβ”€β”€ Slide from right (incoming)
β”‚   β”œβ”€β”€ Slide to left (outgoing)
β”‚   β”œβ”€β”€ Duration: 300ms
β”‚   └── Easing: cubic-bezier(0.4, 0.0, 0.2, 1)
β”œβ”€β”€ Element Animations:
β”‚   β”œβ”€β”€ Fade + scale for illustrations (500ms)
β”‚   β”œβ”€β”€ Staggered list items (100ms delay each)
β”‚   β”œβ”€β”€ Button pulse (2s infinite, scale 1.0 β†’ 1.05)
β”‚   └── Progress dots fill (200ms)
└── Micro-interactions:
    β”œβ”€β”€ Button press: scale down to 0.95
    β”œβ”€β”€ Input focus: border color change + scale
    β”œβ”€β”€ Skip link: underline slide animation
    └── Success checkmark: draw animation (300ms)

Design System:
β”œβ”€β”€ Colors:
β”‚   β”œβ”€β”€ Primary: #6366F1 (indigo-500)
β”‚   β”œβ”€β”€ Success: #10B981 (green-500)
β”‚   β”œβ”€β”€ Background: #F9FAFB (gray-50)
β”‚   └── Text: #111827 (gray-900)
β”œβ”€β”€ Typography:
β”‚   β”œβ”€β”€ Headlines: "Poppins" 28px 600
β”‚   β”œβ”€β”€ Body: "Inter" 16px 400
β”‚   └── Buttons: "Inter" 16px 600
└── Spacing:
    β”œβ”€β”€ Screen padding: 24px
    β”œβ”€β”€ Element gap: 24px
    └── Button height: 56px

Technical Implementation:
β”œβ”€β”€ Framework: React Native + Reanimated
β”‚   or Framer Motion for web
β”œβ”€β”€ Animations:
β”‚   β”œβ”€β”€ Lottie for illustrations
β”‚   β”œβ”€β”€ Spring physics for transitions
β”‚   β”œβ”€β”€ Gesture handling for swipe
β”‚   └── Progress tracking state
β”œβ”€β”€ Components:
β”‚   β”œβ”€β”€ OnboardingSlide (reusable)
β”‚   β”œβ”€β”€ AnimatedButton
β”‚   β”œβ”€β”€ ProgressDots
β”‚   β”œβ”€β”€ TypewriterText
β”‚   └── IllustrationContainer
└── State Management:
    β”œβ”€β”€ Current step index
    β”œβ”€β”€ User input values
    β”œβ”€β”€ Completion status
    └── Skip/back navigation

Performance Notes:
β”œβ”€β”€ All animations run at 60 FPS
β”œβ”€β”€ No jank detected in transitions
β”œβ”€β”€ Illustrations preloaded before display
β”œβ”€β”€ Smooth gesture handling
└── No layout shifts

Accessibility Considerations:
βœ“ Respects reduced motion preferences
βœ“ Clear focus indicators on inputs
βœ“ Skip button always visible
βœ“ Adequate touch target sizes (56px min)
βœ“ Color contrast meets WCAG AA

Similar Patterns:
β”œβ”€β”€ Duolingo onboarding
β”œβ”€β”€ Headspace intro flow
β”œβ”€β”€ Notion first-time setup
└── Linear app walkthrough

Implementation Estimate: 8-12 hours
Complexity: Medium (animations add complexity)

When to Use /design

βœ… Use /design
for:

  • Design Analysis: Understanding design decisions
  • Competitive Research: Analyzing competitor interfaces
  • Design Handoff: Extracting specs from mockups
  • Reverse Engineering: Understanding existing designs
  • Learning: Studying award-winning designs
  • Pre-Implementation: Planning before coding
  • Design Reviews: Documenting design patterns
  • Style Guide Creation: Building design system from examples

❌ Don’t use /design
for:

  • Creating New Designs: Use /design:good or /design:fast instead
  • Direct Implementation: Use /design:screenshot to implement
  • Bug Fixes: Use /fix:ui for fixing issues
  • Code Review: This is for visual analysis only

Best Practices

Provide High-Quality References

βœ… Good:

# Clear, high-resolution screenshots
/design:describe [figma-export-2x.png]

# Full context videos
/design:describe [complete-user-flow.mp4]

# Multiple views
/design:describe [desktop-view.png] and /design:describe [mobile-view.png]

❌ Bad:

# Low resolution, blurry
/design:describe [blurry-screenshot.jpg]

# Cropped or partial view
/design:describe [just-a-button.png]

Ask Specific Questions

# Focus the analysis
/design:describe [dashboard.png] - focus on the data visualization components

# Compare designs
/design:describe [design-v1.png] vs [design-v2.png] - identify differences

# Extract specific details
/design:describe [hero.png] - extract exact color values and spacing

Use for Learning

# Study award-winning work
/design:describe [awwwards-winner.png] - analyze what makes this design exceptional

# Understand trends
/design:describe [modern-saas-page.png] - identify current design trends

# Learn patterns
/design:describe [stripe-dashboard.png] - document reusable patterns

Output Formats

Component Breakdown

Identified Components:
β”œβ”€β”€ Header
β”‚   β”œβ”€β”€ Type: Sticky navigation
β”‚   β”œβ”€β”€ Height: 80px
β”‚   β”œβ”€β”€ Background: rgba(255,255,255,0.8) + backdrop-blur
β”‚   └── Children: Logo, Nav, CTA Button
β”œβ”€β”€ Hero Section
β”‚   β”œβ”€β”€ Layout: Two-column grid (1fr 1fr)
β”‚   β”œβ”€β”€ Min-height: 600px
β”‚   └── Background: Linear gradient
└── Feature Cards
    β”œβ”€β”€ Grid: 3 columns (repeat(3, 1fr))
    β”œβ”€β”€ Gap: 32px
    └── Card: Padding 40px, Border-radius 16px

Color Palette Export

/* Extracted Color System */
:root {
  --primary-50: #EEF2FF;
  --primary-100: #E0E7FF;
  --primary-500: #6366F1;
  --primary-600: #4F46E5;
  --primary-900: #312E81;

  --neutral-50: #F9FAFB;
  --neutral-900: #111827;

  --success: #10B981;
  --error: #EF4444;
  --warning: #F59E0B;
}

Typography System

/* Extracted Typography */
--font-primary: 'Inter', sans-serif;
--font-display: 'Poppins', sans-serif;

--text-xs: 0.75rem;     /* 12px */
--text-sm: 0.875rem;    /* 14px */
--text-base: 1rem;      /* 16px */
--text-lg: 1.125rem;    /* 18px */
--text-xl: 1.25rem;     /* 20px */
--text-2xl: 1.5rem;     /* 24px */
--text-4xl: 2.25rem;    /* 36px */

Spacing Scale

/* Extracted Spacing System */
--space-1: 0.25rem;   /* 4px */
--space-2: 0.5rem;    /* 8px */
--space-3: 0.75rem;   /* 12px */
--space-4: 1rem;      /* 16px */
--space-6: 1.5rem;    /* 24px */
--space-8: 2rem;      /* 32px */
--space-12: 3rem;     /* 48px */
--space-16: 4rem;     /* 64px */

Advanced Analysis

Design System Extraction

/design:describe [multiple-screens/*.png] - extract complete design system with colors, typography, components, and spacing

Generates comprehensive design system documentation with:

  • Complete color palette
  • Typography scale
  • Component library
  • Spacing system
  • Grid system
  • Breakpoints

Competitive Analysis

/design:describe [competitor-landing/*.png] - compare design approaches across 5 competitors

Generates comparison report:

  • Common patterns identified
  • Unique differentiators
  • Best practices observed
  • Improvement opportunities

Animation Specification

/design:describe [interaction-video.mp4] - document all animations with timing and easing functions

Generates animation specification:

  • Transition durations
  • Easing curves
  • Trigger events
  • Sequence timing
  • Implementation code

Integration Workflow

Design β†’ Implementation

# 1. Analyze design
/design:describe [design-mockup.png]

# 2. Review specifications
# (Read generated analysis)

# 3. Implement based on specs
/design:screenshot [design-mockup.png]

# 4. Compare result
/fix:ui [screenshot-comparison] - adjust any differences

Learning Workflow

# 1. Find inspiring design
# (Browse Dribbble, Awwwards, etc.)

# 2. Analyze thoroughly
/design:describe [inspiring-design.png]

# 3. Document patterns
# (Save analysis to design system docs)

# 4. Apply learnings
/design:good [implement similar pattern for our product]

Next Steps

  • /design
    - Implement the analyzed design
  • /design
    - Create similar high-quality design
  • /design
    - Quick prototype based on analysis
  • /docs
    - Document extracted design system

Key Takeaway: /design:describe transforms visual references into actionable specifications, extracting every design detail from colors to animations. Use it to understand, learn from, and document great design before implementation.