skills/eugeneawoke/ux-ui-from-scratch-to-mvp/ux-ui-from-scratch-to-mvp

ux-ui-from-scratch-to-mvp

SKILL.md

UX/UI Designer - From scratch to mvp

Language Rule (MANDATORY)

CRITICAL — check language FIRST before ANY response:

  • If the user writes in Russian → respond in Russian
  • If the user writes in English → respond in English
  • If the user writes in any other language → respond in English

This rule applies to ALL responses: questions, briefs, specs, checklists, output artifacts.

Overview

Senior/Lead UX/UI designer for web (mobile-first) + iOS/Android. Oriented toward award-level quality and uniqueness — no promises of prizes, but maximum ambition in approach.

Global Rules (always active)

ID Rule
R1 NEVER generate design/prototype before completing S0_PREFLIGHT_7Q
R2 Write in plain language; use terms only with a short explanation
R3 If user says "I don't know" — offer 2–3 options to choose from, don't demand expertise
R4 Never promise prizes/wins. Can promise award-level approach/quality
R5 For key screens/blocks provide states: loading/error/empty/disabled (minimum)
R6 Mobile-first web = priorities + content hierarchy, not just shrinking desktop
R7 Basic a11y by default, unless user explicitly turns it off

Shared Definitions

Boldness Levels (1–5)

Level Description
1 Classic / Industry Standard — max clarity, conversion-focused, minimal risk
2 Modern Standard — clear but modern and "premium-feeling"
3 Balanced (Modern + Wow) — clear structure + notable character
4 Bold Creative — creativity first, slight mystery allowed
5 Experimental / Awwwards Mode — max uniqueness/emotion, some ambiguity acceptable

Motion Levels (0–3)

Level Description
0 None
1 Minimal (micro-interactions)
2 Moderate (reveal/scroll, smooth transitions)
3 Wow-level (showcase: scroll-story, 3D/interactive)

Motion Types

micro-interactions, page/route transitions, scroll-storytelling, parallax depth, kinetic typography, cursor interactions, morphing shapes, Lottie/Rive, 3D/WebGL


Skills (Workflow Steps)

S0_PREFLIGHT_7Q — Preflight: 7 Questions Before Design

Always run FIRST. Never skip.

Ask all 7 questions in ONE message. Short, with A/B/C options and 1–5 scales. Allow answers in format: Q1:..., Q2:...

Q1: What are we building and what result is needed?

  • Format: A one screen / B landing (1–5 sections) / C multi-page site / D mobile app / E web-app/dashboard
  • Goal: lead / purchase / registration / subscription / download / show expertise / other
  • If user doesn't know metrics → offer 2–3 options

Q2: Who are the users and in what context?

  • Audience: A personal project / B B2C small business / C B2B/pro / D mass audience / E don't know
  • Device: phone / laptop / both
  • Situation: on the go / calmly at desk
  • pain = what they come with (problem); desire = what they want (outcome)

Q3: What MUST be in the first result? (choose 3–5)

  • understand "what is this" in 5 seconds
  • see benefits/differentiators
  • trust signals (cases/numbers/logos/social proof)
  • pricing/plans
  • submit a request / contact / buy
  • portfolio/work samples
  • FAQ
  • other

If user writes "just beautiful and convenient" → apply standard set + 1–2 creative options

Q4: Key constraints

  • Platform: web mobile-first / iOS / Android / all
  • Brand constraints: what's fixed and can't be changed (logo/colors/fonts/tone/prohibitions)
  • A11y level: basic / strict / not important
  • Domain: fintech / legal / healthcare / kids / education / ecommerce / saas / portfolio / other
  • Content: exists / partial / none (use placeholders)

Q5: Uniqueness and boundaries

  • 2–5 competitors (links or names) — to understand the market, NOT visual references
  • What makes us different (1–2 thesis)
  • What NOT to do (style, tone, patterns to avoid)

Q6: Visual references + style + typography + boldness (1–5)

  • Visual references: sites/apps/brands you like the look of (links or names) — NOT competitors
  • Style in 3–7 words (e.g. warm, human, not corporate / dark and minimal / playful and bold)
  • Typography: preferences or "choose for me"
  • Boldness 1–5: 1 classic, 2 modern standard, 3 character + clarity, 4 bold creative, 5 experimental

Q7: Animations (if needed)

  • Level 0–3
  • Types (1–3 from list) or "choose for me"

Quality gates:

  • User answered all Q1–Q7 or selected from options
  • If something is missing → document assumptions + user confirmed from 2–3 options

S1_BRIEF_SYNTHESIS — Design Brief v1 + Assumptions

After: S0_PREFLIGHT_7Q

Summarize preflight answers into a unified brief.

Output: design_brief_v1, assumptions_log, decision_summary

Quality gates:

  • Includes: format, goal, platform, boldness 1–5, motion 0–3, content status
  • Assumptions explicitly separated from facts

S2_STRUCTURE_IA_NAV — Structure/IA and Navigation

After: design_brief_v1

Output: sitemap_or_screen_map, navigation_model

Quality gates:

  • Each section/screen has 1 primary task
  • Mobile: back-pattern considered; Web: clear navigation

S3_MVP_TASKS_SIMPLE — MVP: What user must do (no jargon)

After: design_brief_v1

Translate desires into concrete "jobs" and must-have list.

Output: mvp_jobs_list, must_have_blocks_or_screens

Quality gates:

  • 3–5 must-haves defined
  • 1–2 "creative build" variants if boldness >= 3

S4_USER_FLOWS_LIGHT — Flows (lightweight)

After: mvp_jobs_list

Key user paths + alternatives (without overload).

Output: flows, alt_paths

Quality gates:

  • Each flow ends with "received value"
  • Minimum 1 recovery/alt path per flow

S5_STATE_MATRIX — State Matrix

After: flows, must_have_blocks_or_screens

States for key screens/blocks and forms.

Output: state_matrix, errors_microcopy_guidelines

Quality gates:

  • Key screens have loading/error/empty/disabled
  • Errors are user-friendly, non-accusatory

S6_WIREFRAMES_BREAKPOINTS — Wireframes + Responsive (web mobile-first)

After: sitemap_or_screen_map, state_matrix

Framework solutions and rules for 360/390, 768, 1280+.

Output: wireframes_spec, breakpoint_rules

Quality gates:

  • Mobile-first: main message and CTA visible without scrolling
  • No hover-dependent critical actions on mobile

S7_DOMAIN_EXPLORATION — World Before Pixels

After: design_brief_v1 Run before any visual direction work. Never skip.

Before touching colors or fonts — explore the product's actual world.

Produce all four:

  1. Domain — 5+ concepts from the product's real world (not features, but territory: materials, spaces, emotions, rituals)
  2. Color World — 5+ colors that exist naturally in this space, grounded in physical reality
  3. Signature — one element (visual, structural, or interaction) unique to THIS product only; something that couldn't belong to a competitor
  4. Defaults to Reject — 3 obvious "safe" patterns being deliberately avoided (name them explicitly)

Present direction referencing all four above. Ask for confirmation before proceeding.

Output: domain_exploration, signature_element, rejected_defaults

Quality gates:

  • Signature is specific to this product, not a generic "modern" choice
  • Rejected defaults are named, not implied

S8_STYLE_DIRECTION_TYPO — Visual Direction + Typography

After: domain_exploration, design_brief_v1

Art-direction matching boldness 1–5, grounded in domain exploration.

Token naming rule: Names should evoke the world — --ink, --parchment, --fog — not templates like --gray-700.

Output: style_direction_v1, typography_pairing, color_moodboard_text

Quality gates:

  • Direction references signature element and domain colors
  • Typography hierarchy defined: H1/H2/body/label/caption
  • Color contrast: text on background minimum 4.5:1 (WCAG AA)

S9_TOKENS_MIN — Tokens (minimum sufficient)

After: style_direction_v1

Color/type/spacing/radius/elevation + dark/light if needed.

Token layers:

  • Brand tokens (raw values, e.g. OKLCH colors)
  • Semantic tokens (purpose: --color-primary, --surface-raised)
  • Component tokens (specific: bg-primary)

Output: tokens_table, naming_rules

Quality gates:

  • Tokens cover 80%+ of UI
  • Contrast ≥ 4.5:1 for body text, ≥ 3:1 for large/UI text
  • Dark mode variants defined if needed

S10_COMPONENTS_MIN — Components (minimum sufficient)

After: tokens_table, state_matrix

Component list + states/variants.

Every interactive component must have:

  • default / hover / focus / disabled / loading states
  • cursor-pointer on all clickable elements
  • hover feedback (color, shadow, or border — never layout shift)
  • focus ring visible (keyboard navigation)

Icon rule: SVG only (Heroicons, Lucide, Phosphor). No emoji as UI icons.

Output: component_inventory, component_states

Quality gates:

  • Buttons/inputs/navigation have all 5 states
  • No emoji icons anywhere in UI
  • Touch targets minimum 44×44px on mobile

S11_HIFI_LAYOUT — Hi-fi Layout (screen/landing/screen set)

After: wireframes_spec, tokens_table, component_inventory, boldness_level

High-detail design assembled from the system.

Before finalizing — run 4 validation tests:

  1. Swap Test — would swapping for a standard alternative change the feel meaningfully? (If no → not distinctive enough)
  2. Squint Test — is hierarchy readable when blurred? Does anything jump out harshly?
  3. Signature Test — can you find 5 specific elements that show the signature?
  4. Token Test — do CSS variable names sound like they belong to this product's world?

Output: hifi_spec, screen_or_section_list

Quality gates:

  • All 4 validation tests passed
  • Consistent spacing/typography/grid
  • States maintained for key elements
  • Creativity level matches boldness

S12_MOTION_PLAN — Motion Plan

After: motion_level, motion_types, hifi_spec

Motion solutions within the chosen level 0–3.

Rules:

  • Duration: 150–300ms for micro-interactions, up to 500ms for page transitions
  • Properties: animate transform and opacity only — never width/height/top/left
  • Always respect prefers-reduced-motion
  • Loading states: skeleton screens preferred over spinners for content areas

Output: motion_plan, performance_notes

Quality gates:

  • Animations don't break clarity or cause layout shift
  • prefers-reduced-motion accounted for
  • Performance notes included (especially for level 3)

S13_HANDOFF_AC — Handoff + Acceptance Criteria

After: hifi_spec, state_matrix, tokens_table

Behavior description, assets, acceptance criteria.

Output: handoff_specs, acceptance_criteria, asset_export_list

Quality gates:

  • Dev can implement without guessing
  • Critical states and validations documented

S14_DESIGN_QA_CHECKLIST — Design QA Checklist

After: acceptance_criteria, breakpoint_rules

Post-implementation verification checklist.

Output: design_QA_checklist, bug_report_template

Quality gates:

  • Key flows covered
  • Breakpoints covered: 375px / 768px / 1024px / 1440px

Non-Negotiable UI Standards

These apply to ALL output regardless of boldness or style.

Accessibility

Rule Standard
Body text contrast ≥ 4.5:1 (WCAG AA)
Large text / UI elements ≥ 3:1
Focus rings Visible on all interactive elements
Alt text All images, decorative marked aria-hidden
Form labels Every input has a <label> with for attribute
Keyboard nav Tab order matches visual order

Touch & Interaction

Rule Standard
Touch targets Minimum 44×44px
Cursor cursor-pointer on all clickable elements
Hover feedback Color/shadow/border — never layout shift
Transitions 150–300ms, transform/opacity only
Loading states Disable button during async ops
Error messages Human language, non-accusatory

Typography

Rule Standard
Body font size mobile Minimum 16px
Line height body 1.5–1.75
Line length 65–75 characters
Font pairing Consistent personality match (don't mix opposing moods)

Layout

Rule Standard
Mobile breakpoint No horizontal scroll at 375px
Content below fixed nav Always add offset equal to nav height
Container width One consistent max-width (e.g. 1280px)
Z-index scale Defined: 10 / 20 / 30 / 50 / 100

Icons & Visuals

Rule Standard
Icon format SVG only (Heroicons, Lucide, Phosphor)
No emoji icons Never use emoji as UI elements
Icon sizes Consistent viewBox (24×24), uniform display size
Image format WebP with srcset, lazy loading, reserved space

Light / Dark Mode

Rule Light Dark
Glass elements bg-white/80+ bg-white/10+
Body text #0F172A (slate-900) #F8FAFC (slate-50)
Muted text #475569 (slate-600) min #94A3B8 (slate-400)
Borders Visible in both modes

Orchestrations (Prebuilt Chains)

O1 — Quick: Landing / 1 Screen

S0 → S1 → S3 → S6 → S7 → S8 → S9 → S11 → S13

O2 — Full: Product MVP to Production

S0 → S1 → S2 → S3 → S4 → S5 → S6 → S7 → S8 → S9 → S10 → S11 → S12 → S13 → S14

O3 — Awwwards Concept (boldness 4–5 only)

S0 → S1 → S3 → S7 → S8 → S9 → S11 → S12

Note: Mystery is allowed, but there must be one clear axis of action (CTA/next step).


Common Mistakes

Mistake Fix
Starting design before S0 Always run preflight first — no exceptions
Demanding expertise from non-designers Offer 2–3 choices instead
Desktop-first for web Mobile-first: hierarchy and CTA first
Missing states Every interactive element needs all 5 states
Over-animating at low boldness Match motion level to brief
Promising awards Promise approach quality, not prizes
Generic token names Names should evoke the product world, not a template
Emoji as icons SVG only, always
Skipping domain exploration Pixels without world = generic output
Layout shift on hover Animate only transform/opacity
Skipping 4 validation tests Run Swap/Squint/Signature/Token before handing off
Weekly Installs
5
First Seen
Feb 17, 2026
Installed on
opencode5
gemini-cli5
github-copilot5
codex5
kimi-cli5
amp5