We've generated thousands of app screens with AI. The pattern is clear: the difference between an ugly, generic output and a professional-quality design is almost always the prompt.
The tools are capable. The models are powerful. But "design a nice app" produces garbage while a well-structured prompt produces something you'd actually put in front of investors.
This guide is the complete framework for writing AI prompts that generate professional UI. It works across tools — GenDesigns, v0, Cursor, Bolt, Lovable, or any other AI design/code tool. The principles are universal.
We synthesized the best ideas from NN/g's research on AI prototyping, Figma's TC-EBC framework, Vercel's v0 prompting guide, and our own experience generating thousands of screens, then packaged them into one unified framework you can memorize and use immediately.
Why Most AI-Generated UI Looks Generic
Before we fix it, let's understand why AI UI output is usually mediocre.
The "Frankenstein layout" problem
NN/g researchers identified a pattern they call the "Frankenstein layout" — when AI combines components that don't belong together, creating a screen that has recognizable parts but feels wrong as a whole. A mobile login page with a desktop-style sidebar. A dashboard with both top tabs and bottom tabs. A product page with three different button styles.
This happens because vague prompts don't give the AI enough constraints to make coherent design decisions.
Why "clean and modern" is the worst prompt
"Clean and modern" tells the AI: "I have no specific design preference." The AI responds with its safest, most generic output — a blue primary color, basic sans-serif font, standard spacing, and zero visual personality. It's the design equivalent of plain oatmeal.
Every app claims to be "clean and modern." It's a meaningless descriptor that produces meaningless output.
The 3 reasons AI UI fails
- Vague prompts — The user doesn't specify enough detail, so the AI fills gaps with generic defaults
- No design context — The AI doesn't know the platform, user, or industry
- No constraints — Without boundaries (colors, layout, component library), the AI makes arbitrary choices
All three problems are solved by better prompting. Enter the PROMPT framework.
The PROMPT Framework
We developed a 6-part framework that eliminates the most common prompting failures. Each letter represents one aspect of a complete prompt.
P — Platform & Device
What to specify: iOS, Android, or web. Screen size. Orientation. Device model.
Why it matters: iOS and Android have fundamentally different design languages. Specifying the platform forces the AI to use appropriate navigation patterns, typography, spacing, and component styles.
Examples:
- "iOS app for iPhone 16"
- "Android app following Material Design 3"
- "Web dashboard for desktop (1440px wide)"
- "Responsive web app, mobile-first"
Without P: The AI generates a hybrid that looks native to neither platform.
R — Role & User
What to specify: Who uses this screen. What they're trying to do. What moment they're in.
Why it matters: A dashboard for a CEO looks different from a dashboard for an analyst. The user's goals determine what information is prioritized, what actions are prominent, and how dense the layout should be.
Examples:
- "Used by a freelance designer tracking project deadlines and client invoices"
- "For a busy parent quickly ordering groceries during their lunch break"
- "For a first-time user who just downloaded the app and needs to set up their profile"
- "For a power user who checks this 10+ times daily"
Without R: The AI designs for no one in particular, producing a generic layout that serves no user well.
O — Output Specification
What to specify: Screen type. Key elements. Specific content. Data to include.
Why it matters: The more specific you are about what appears on the screen, the better the layout decisions the AI makes. "A dashboard" is vague. "A dashboard with 4 metric cards, a line chart, and a 5-row activity table" is actionable.
Examples:
- "Home screen showing: total balance ($12,450), spending categories chart, 5 recent transactions, and quick action buttons for Send, Request, and Deposit"
- "Settings page with sections: Account (name, email, photo), Notifications (3 toggles), Appearance (dark mode toggle, font size), Privacy (2 toggles), About (version, terms)"
- "Product detail page with: large image area, name 'AirFlow Pro', price $189, 4.7 stars (234 reviews), color selector (4 options), size selector, Add to Cart button"
Without O: The AI makes assumptions about content that may not match your needs.
M — Mood & Style
What to specify: Design style name. Color palette. Typography direction. Overall feeling.
Why it matters: "Mood" is the fastest way to narrow the design space. A "premium dark fintech" prompt generates something vastly different from a "playful, colorful social app" prompt — even with the same screen type.
Named design styles that work:
- Glassmorphism (frosted glass, blur effects)
- Neobrutalism (thick borders, bold colors, raw feel)
- Minimal (whitespace, subtle, restrained)
- Dark premium (near-black, gradients, gold/silver accents)
- Bento grid (modular card layout)
- iOS native (Apple HIG, system fonts, system colors)
- Material Design 3 (Google's design system)
- Skeuomorphic (realistic textures, 3D effects)
Color specification options:
- Hex codes: "Primary #6366f1, background #0a0a0a"
- Named colors: "Deep navy with coral accents"
- Brand reference: "Colors like Spotify — dark with green"
- Mood: "Warm earth tones — terracotta, sage, cream"
Without M: The AI defaults to generic blue-on-white. Every time.
P — Patterns & Components
What to specify: Navigation pattern. Layout pattern. Specific UI components. Component library.
Why it matters: Design patterns are proven solutions. Referencing them by name — "bottom tab navigation," "card grid layout," "floating action button" — gives the AI precise structural guidance.
Navigation patterns:
- "Bottom tab navigation with 5 tabs"
- "Sidebar navigation with grouped sections"
- "Hamburger drawer menu"
- "Top tab bar with scrollable tabs"
Layout patterns:
- "Card-based feed like Instagram"
- "2-column product grid"
- "Master-detail layout"
- "Dashboard with metric cards + chart + table"
Component references:
- "Use shadcn/ui components"
- "iOS native components with SF Symbols"
- "Material Design 3 components"
Without P: The AI may use inconsistent or inappropriate patterns for the platform and use case.
T — Technical Constraints
What to specify: Framework preferences. Accessibility requirements. Responsive behavior. Dark mode.
Why it matters: Constraints improve output. "WCAG AA compliant" forces the AI to choose accessible colors. "responsive" makes it consider multiple screen sizes. "Tailwind CSS" produces consistent utility-class output.
Examples:
- "WCAG AA compliant with 4.5:1 minimum contrast"
- "HTML + Tailwind CSS output"
- "Responsive design, mobile-first"
- "Support light and dark modes"
- "Minimum touch target 44px"
- "Use Inter font family"
Without T: The AI may produce beautiful but inaccessible, non-responsive, or technically impractical output.
Putting PROMPT Together
Here's a vague prompt vs a PROMPT framework prompt for the same screen:
Vague prompt:
"Design a fitness app dashboard"
PROMPT framework prompt:
"[P] iOS app for iPhone 16. [R] Used by health-conscious millennials who check their fitness progress every morning. [O] Home screen showing: daily step count (8,432 with circular progress ring), calories burned (340), active minutes (45), weekly activity bar chart, and today's workout card ('HIIT Training at 5:30 PM'). [M] Dark premium theme with mint green (#4ade80) accent color, Inter font, generous whitespace. [P] Bottom tab navigation with Home, Workouts, Progress, and Profile. Circular progress ring as the hero element. [T] HTML + Tailwind CSS. WCAG AA compliant."
The difference in output quality between these two prompts is dramatic.
Level 1: Basic Prompts That Actually Work
Here are 10 prompt templates for common screens. Copy them, replace the bracketed values, and get professional results.
1. Home/Dashboard Screen
"[Platform] app home screen for [app type]. Show [3-5 key metrics with example values], a [chart type] for [what data], and [secondary content area]. [Navigation pattern]. [Style description with color]."
Example:
"iOS app home screen for a personal finance tracker. Show total balance ($12,847.32 in large bold text), a spending donut chart for this month (Food 35%, Transport 20%, Entertainment 15%, Other 30%), and a list of 4 recent transactions with merchant names and amounts. Bottom tab navigation with Home, Budget, Accounts, Profile. Clean white design with navy blue (#1e3a5f) accent."
2. Login Screen
"[Platform] login screen for [app name/type]. Include [auth methods: email/password, social logins, biometric]. [Brand element: logo, tagline]. [Style]."
Example:
"iOS login screen for a meditation app called 'Stillness'. Email and password fields, Sign in with Apple button, Google sign-in option. App logo centered at top with tagline 'Find your calm'. Soft gradient background (lavender to white). Rounded input fields. Primary button in deep purple."
3. Profile Screen
"[Platform] user profile for [persona description]. Show [profile elements: photo, name, bio, stats]. [Content below: grid, list, tabs]. [Style]."
Example:
"iOS social media profile for a food photographer named 'Marcus Chen'. Large cover photo, circular profile picture overlapping cover, name, bio (2 lines about food photography), stats (2.4K followers, 892 following, 156 posts). Tab bar below: Photos, Recipes, Saved. 3-column photo grid. Warm, Instagram-like styling with cream background."
4. Settings Screen
"[Platform] settings with sections: [list 4-6 sections with specific options in each]. [Platform-specific style]."
Example:
"iOS settings screen with sections: Account (profile photo, name 'Sarah Kim', email), Notifications (push toggle, email toggle, weekly digest toggle), Appearance (dark mode toggle, text size slider), Privacy (data sharing toggle, analytics toggle), Storage (3.2 GB used of 10 GB, clear cache button), About (version 2.4.1, terms, privacy policy). iOS grouped inset list style with SF Pro font."
5. Product Detail
"[Platform] product detail for [product type and specific product]. Show [image, name, price, rating, selectors, CTA]. [Style matching brand]."
Example:
"iOS product detail for a premium headphone store. Product image area (matte black over-ear headphones), name 'Studio Pro Max', price $349, rating 4.8 stars (1,234 reviews), color selector (Black, Silver, Midnight Blue), 'Add to Cart' full-width button, key specs (40hr battery, ANC, Spatial Audio). Dark premium theme with gold (#d4a574) accent."
6. Chat/Messaging
"[Platform] messaging screen between [who]. Show [number of messages] with [sent/received styling]. [Message content topic]. [Input bar description]."
Example:
"iOS messaging screen between two friends planning a trip. Show 8 messages alternating sent (blue bubbles, right) and received (gray bubbles, left). Conversation about booking flights to Japan in April. Timestamps between message groups. Input bar at bottom with text field, camera button, and blue send arrow. Include read receipts."
7. E-commerce Listing
"[Platform] product listing for [store type]. Show [number of products] in [grid/list layout] with [what info per product]. [Filter/sort options]. [Style]."
Example:
"iOS product listing for a minimalist furniture store. Show 6 products in a 2-column grid with product photo, name, price, and 'New' badge on 2 items. Sticky search bar at top. Filter chips: All, Chairs, Tables, Lighting, Storage. Sort by: Popular, Price Low-High, New. Airy white design with warm wood-tone accents."
8. Onboarding/Welcome
"[Platform] onboarding screen [step X of Y] for [app type]. [Illustration/image area], [headline], [description], [CTA and skip option]. [Style]."
Example:
"iOS onboarding screen 2 of 4 for a habit tracking app. Top 60% shows an illustration of a person checking off daily habits. Headline: 'Build Habits That Stick'. Description: 'Set daily reminders, track your streaks, and watch your consistency grow over time.' Dot indicators showing step 2 of 4. 'Continue' button and 'Skip' text link. Calming green (#4ade80) and white color scheme."
9. Data/Analytics
"[Platform] analytics view for [what data]. Show [metric cards with values], [chart type] for [time period], [table/list of details]. [Style]."
Example:
"Web SaaS analytics dashboard for email marketing. Show 4 metric cards: Subscribers 48,234 (↑12%), Open Rate 34.2% (↑3%), Click Rate 8.7% (↓1%), Revenue $12,450 (↑8%). Line chart showing subscriber growth over 6 months. Table of 5 recent campaigns with name, send date, recipients, open rate, click rate. Dark sidebar navigation. Clean, data-focused design like Postmark."
10. Empty State
"[Platform] empty state for [screen type] when [condition]. Show [illustration/icon], [friendly headline], [encouraging description], [CTA button]. [Style matching app]."
Example:
"iOS empty state for a task management app when the user has no tasks yet. Show a simple line illustration of a person relaxing in a hammock. Headline: 'Nothing on your plate'. Description: 'Add your first task and start getting things done.' Primary button: 'Create a Task'. Maintain the app's blue and white color scheme. Center everything vertically."
Level 2: Advanced Prompting Techniques
Visual References
The most effective way to communicate design intent:
"Design a dashboard similar to Linear's interface — clean card-based layout, subtle sidebar, compact information density — but for a customer support tool with ticket metrics instead of issues."
Reference real apps by name. The AI knows what they look like and will adapt the style to your use case.
Design System Anchoring
Reference specific design systems for more accurate output:
"Following Apple's Human Interface Guidelines: use SF Pro font, iOS system colors (blue tint), large title navigation bar, grouped inset list for settings, and proper safe area spacing for iPhone 16."
"Following Material Design 3: use Roboto font, tonal color palette generated from seed color #6366f1, medium-emphasis outlined buttons, filled text fields, and bottom navigation bar."
Mock Data Generation
Provide realistic data so layouts are meaningful:
"Recent transactions: $67.23 at Whole Foods (today, groceries icon), $15.99 Netflix (yesterday, entertainment icon), $24.50 Uber (yesterday, transport icon), $1,299.00 Apple Store (Mar 12, shopping icon), $52.87 Shell Gas (Mar 11, transport icon)"
Real data creates realistic layouts. "$42.50" takes different space than "$1,299.00" and the AI adjusts accordingly.
Iterative Refinement: The 3-Pass Method
Pass 1 — Layout: Get the structure right. Don't worry about colors or polish.
"Create the basic layout: header with logo and search, 4 metric cards, main chart area, data table below."
Pass 2 — Style: Apply the visual design.
"Apply a dark premium theme: background #0f172a, cards with subtle borders and #1e293b background, indigo (#6366f1) accent for interactive elements, Inter font."
Pass 3 — Polish: Refine details.
"Add subtle gradient to the metric cards. Show green trend arrows next to positive metrics and red for negative. Add hover states to table rows. Include a '7D / 30D / 90D / 1Y' time selector above the chart."
Component-Level Prompting
Generate individual components with full variant specifications:
"Generate a button component with 5 variants:
- Primary: bg-indigo-600, white text, rounded-lg, hover darkens
- Secondary: bg-gray-100, dark text, rounded-lg, hover darkens
- Outline: transparent bg, indigo border, indigo text, hover fills
- Ghost: transparent bg, gray text, hover shows light background
- Destructive: bg-red-600, white text, rounded-lg, hover darkens
Each in 3 sizes: sm (32px height, 14px text), md (40px height, 16px text), lg (48px height, 18px text). Show disabled state for each variant."
Constraint-Based Prompting
Telling the AI what NOT to do is as useful as telling it what to do:
"Design a settings page. Constraints: NO hamburger menu. NO more than 5 sections visible at once. NO toggle labels longer than 3 words. Touch targets MUST be at least 44px. Text contrast MUST be at least 4.5:1."
Level 3: Professional Workflows
The Screenshot Method
From Builder.io's prompting research:
- Generate an initial screen
- Screenshot the output
- Feed the screenshot back as context: "Here's my current screen. Make these changes: [specific modifications]"
This iterative screenshot feedback loop produces increasingly refined output because the AI can see exactly what it's working with.
The Design Token Approach
Inspired by Sam Pierce Lolla's research:
Create a markdown file defining your design tokens and include it in every prompt:
## Design Tokens
- Primary: #6366f1
- Background: #0a0a0a
- Surface: #1e293b
- Text: #e2e8f0
- Font: Inter
- Radius: 8px (buttons), 12px (cards), 16px (modals)
- Spacing: 8px grid"Using the design tokens above, generate a settings page with Account, Notifications, and Appearance sections."
This ensures consistency across every generation.
The Mood + Reference Method
From NN/g's prototyping research:
- Find a design you like (Dribbble, competitor app, real app)
- Ask the AI to analyze it: "Describe the design style, colors, typography, and layout patterns in this screenshot"
- Use that analysis in your prompt: "Apply the following design characteristics to a [your screen type]: [paste the AI's analysis]"
This translates visual taste into specific, promptable attributes.
Multi-Pass Generation
For complex screens, generate in layers:
- Layout pass: Generate the structural wireframe
- Theme pass: Apply colors, typography, and styling
- Content pass: Fill in realistic data and copy
- State pass: Generate loading, empty, and error variants
- Responsive pass: Adapt for different screen sizes
Each pass builds on the previous, producing more refined output than trying to specify everything at once.
Common Prompt Mistakes (What to Avoid)
| Mistake | Why it fails | Fix |
|---|---|---|
| "Make it look good" | "Good" means nothing to AI | Name a specific style |
| "Simple and clean" | Produces the most generic output possible | Describe what "simple" means: "2 sections max, generous whitespace, muted colors" |
| Too many requirements in one prompt | Frankenstein layout — AI tries to fit everything | One screen per prompt, iterate |
| No platform specification | Hybrid mess that's neither iOS nor Android | Always start with "iOS app" or "Android app" |
| No user context | UI optimized for no one | Add "Used by [who] to [do what]" |
| Forgetting states | Only the happy path, no empty/loading/error | Explicitly request each state |
| Not specifying color mode | Random choice between light and dark | Say "light theme" or "dark theme" |
| Using generic placeholder text | "Lorem ipsum" makes layouts meaningless | Provide realistic data |
15 mistakes with before/after examples: Why Your AI-Generated UI Looks Bad
Tool-Specific Tips
GenDesigns
- GenDesigns generates a project-level theme automatically — you don't need to specify colors for every screen after the first
- Use conversational iteration: "make the header darker" works better than re-prompting from scratch
- The AI agent plans screens autonomously — describe the app concept and let it decide which screens to generate
- Mention specific app types for better results: "fintech," "fitness," "e-commerce," "social"
Try GenDesigns: Generate your first UI free
v0 (Vercel)
- Reference shadcn/ui components by name: "use shadcn/ui Card, Button, and Input components"
- v0 defaults to React + Tailwind — don't fight it, work with it
- Use "Design Mode" for visual iteration alongside code
- Works best for web components rather than mobile app screens
Cursor
- Include your project's design system file as context
- Reference your existing components: "use our existing Button component from @/components/ui/button"
- Cursor works best when it can see your codebase — give it file context
- For design work, combine with v0 (generate in v0, refine in Cursor)
Bolt / Lovable
- These generate full-stack apps, not just UI — specify if you only want frontend
- Paste screenshots from GenDesigns as visual references
- Describe interactions and behavior, not just layout
- "Make it look like this screenshot" works well when paired with screenshots
Frequently Asked Questions
What's the best prompt format for AI UI design?
Use the PROMPT framework: Platform, Role/User, Output Specification, Mood/Style, Patterns/Components, Technical Constraints. Not every prompt needs all 6 elements, but including at least P, O, and M dramatically improves output.
How do I make AI-generated UI look professional?
Three things: (1) Name a specific design style instead of "clean and modern," (2) include realistic data instead of placeholders, (3) iterate at least 2-3 times instead of accepting the first output.
Can AI generate mobile app designs from text?
Yes — that's exactly what tools like GenDesigns are built for. Describe your mobile app screen in text, get a fully designed interface back.
What design style keywords work best with AI?
Named styles that AI understands well: glassmorphism, neobrutalism, minimal, dark premium, bento grid, iOS native, Material Design 3, skeuomorphic. Also works: referencing real apps by name ("like Linear," "like Spotify").
How do I get consistent UI from AI across multiple screens?
Use a tool with a theme system (GenDesigns generates themes automatically). Or include your design tokens in every prompt: "Use primary #6366f1, background #fafafa, Inter font, 8px grid."
Should I prompt for the full page or individual components?
Both, depending on context. For exploring app concepts, prompt for full screens. For building a component library, prompt for individual components with all variants. Start with full screens to establish the visual direction, then generate individual components as needed.
How do I maintain brand consistency with AI-generated UI?
- Generate a theme first (colors, typography, spacing)
- Reference that theme in every subsequent prompt
- Use a tool with project-level themes (GenDesigns)
- Create a design token file and include it in prompts
Start Using the PROMPT Framework
Take any app idea you have. Write a prompt using the PROMPT framework (Platform, Role, Output, Mood, Patterns, Technical). Paste it into GenDesigns and see the difference that structured prompting makes.
Generate your first UI with the PROMPT framework →
Related reading:
