phase-3-mockup
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePhase 3: Mockup Development
阶段3:Mockup开发
Create trendy UI without a designer + Consider Next.js componentization
无需设计师即可打造潮流UI + 考虑Next.js组件化
Purpose
目的
Quickly validate ideas before actual implementation. Even without a designer, research UI/UX trends to create high-quality prototypes, designed for easy conversion to Next.js components later.
在实际开发前快速验证想法。即便没有设计师,也可通过调研UI/UX趋势创建高质量原型,设计时考虑后续可轻松转换为Next.js组件。
What to Do in This Phase
本阶段需完成的工作
- Screen Mockups: Implement UI with HTML/CSS
- Interactions: Implement behavior with basic JavaScript
- Data Simulation: Simulate API responses with JSON files
- Feature Validation: Test user flows
- 页面Mockup:用HTML/CSS实现UI
- 交互效果:用基础JavaScript实现行为逻辑
- 数据模拟:用JSON文件模拟API响应
- 功能验证:测试用户流程
Deliverables
可交付成果
mockup/
├── pages/ # HTML pages
│ ├── index.html
│ ├── login.html
│ └── ...
├── styles/ # CSS
│ └── main.css
├── scripts/ # JavaScript
│ └── app.js
└── data/ # JSON mock data
├── users.json
└── products.json
docs/02-design/
└── mockup-spec.md # Mockup specificationmockup/
├── pages/ # HTML pages
│ ├── index.html
│ ├── login.html
│ └── ...
├── styles/ # CSS
│ └── main.css
├── scripts/ # JavaScript
│ └── app.js
└── data/ # JSON mock data
├── users.json
└── products.json
docs/02-design/
└── mockup-spec.md # Mockup specificationPDCA Application
PDCA应用
- Plan: What screens/features to mock up
- Design: Screen structure, interaction design
- Do: Implement HTML/CSS/JS
- Check: Verify feature behavior
- Act: Apply feedback and proceed to Phase 4
- Plan:确定需要Mockup的页面/功能
- Design:页面结构、交互设计
- Do:实现HTML/CSS/JS
- Check:验证功能行为
- Act:采纳反馈并进入阶段4
Level-wise Application
分级别应用
| Level | Application Method |
|---|---|
| Starter | This stage may be the final deliverable |
| Dynamic | For validation before next stages |
| Enterprise | For quick PoC |
| 级别 | 应用方式 |
|---|---|
| 入门级 | 本阶段产出可能是最终交付物 |
| 动态级 | 用于后续阶段前的验证 |
| 企业级 | 用于快速PoC |
Core Principles
核心原则
"Working prototype over perfect code"
- Pure HTML/CSS/JS without frameworks
- JSON files instead of APIs for data simulation
- Fast feedback loops
- Structure considering Next.js componentization"Working prototype over perfect code"
- Pure HTML/CSS/JS without frameworks
- JSON files instead of APIs for data simulation
- Fast feedback loops
- Structure considering Next.js componentizationUI/UX Trend Research Methods
UI/UX趋势调研方法
Creating Trendy UI Without a Designer
无需设计师打造潮流UI
1. Trend Research Sources
1. 趋势调研来源
| Source | Purpose | URL |
|---|---|---|
| Dribbble | UI design trends, color palettes | dribbble.com |
| Behance | Real project case studies | behance.net |
| Awwwards | Latest web trends from award winners | awwwards.com |
| Mobbin | Mobile app UI patterns | mobbin.com |
| Godly | Landing page references | godly.website |
| Land-book | Landing page gallery | land-book.com |
| 来源 | 用途 | URL |
|---|---|---|
| Dribbble | UI设计趋势、配色方案 | dribbble.com |
| Behance | 真实项目案例研究 | behance.net |
| Awwwards | 获奖站点的最新Web趋势 | awwwards.com |
| Mobbin | 移动应用UI模式 | mobbin.com |
| Godly | 落地页参考 | godly.website |
| Land-book | 落地页图库 | land-book.com |
2. 2025-2026 UI/UX Trends
2. 2025-2026 UI/UX趋势
🎨 Visual Trends
├── Bento Grid Layout
├── Glassmorphism
├── Gradient Mesh
├── 3D Elements (minimal 3D elements)
└── Micro-interactions
📱 UX Trends
├── Dark Mode First
├── Skeleton Loading
├── Progressive Disclosure
├── Thumb-friendly Mobile Design
└── Accessibility (WCAG 2.1)
🔤 Typography
├── Variable Fonts
├── Large Hero Text
└── Mixed Font Weights🎨 Visual Trends
├── Bento Grid Layout
├── Glassmorphism
├── Gradient Mesh
├── 3D Elements (minimal 3D elements)
└── Micro-interactions
📱 UX Trends
├── Dark Mode First
├── Skeleton Loading
├── Progressive Disclosure
├── Thumb-friendly Mobile Design
└── Accessibility (WCAG 2.1)
🔤 Typography
├── Variable Fonts
├── Large Hero Text
└── Mixed Font Weights3. Quick UI Implementation Tools
3. 快速UI实现工具
| Tool | Purpose |
|---|---|
| v0.dev | AI-based UI generation (shadcn/ui compatible) |
| Tailwind UI | High-quality component templates |
| Heroicons | Icons |
| Lucide | Icons (React compatible) |
| Coolors | Color palette generation |
| Realtime Colors | Real-time color preview |
| 工具 | 用途 |
|---|---|
| v0.dev | 基于AI的UI生成(兼容shadcn/ui) |
| Tailwind UI | 高质量组件模板 |
| Heroicons | 图标库 |
| Lucide | 图标库(兼容React) |
| Coolors | 配色方案生成 |
| Realtime Colors | 实时配色预览 |
4. Pre-Mockup Checklist
4. Mockup前检查清单
markdown
undefinedmarkdown
undefinedUI Research Checklist
UI Research Checklist
- Analyzed 3+ similar services
- Decided color palette (Primary, Secondary, Accent)
- Selected typography (Heading, Body)
- Chose layout pattern (Grid, Bento, etc.)
- Collected reference design screenshots
---- Analyzed 3+ similar services
- Decided color palette (Primary, Secondary, Accent)
- Selected typography (Heading, Body)
- Chose layout pattern (Grid, Bento, etc.)
- Collected reference design screenshots
---Design for Next.js Componentization
面向Next.js组件化的设计
Mockup → Component Transition Strategy
Mockup → 组件迁移策略
Considering component separation from the mockup stage makes Next.js transition easier.
从Mockup阶段就考虑组件拆分可以让Next.js迁移更顺畅。
1. Design HTML Structure in Component Units
1. 按组件单元设计HTML结构
html
<!-- ❌ Bad: Monolithic HTML -->
<div class="page">
<header>...</header>
<main>
<div class="hero">...</div>
<div class="features">...</div>
</main>
<footer>...</footer>
</div>
<!-- ✅ Good: Separated by component units -->
<!-- components/Header.html -->
<header data-component="Header">
<nav data-component="Navigation">...</nav>
</header>
<!-- components/Hero.html -->
<section data-component="Hero">
<h1 data-slot="title">...</h1>
<p data-slot="description">...</p>
<button data-component="Button" data-variant="primary">...</button>
</section>html
<!-- ❌ Bad: Monolithic HTML -->
<div class="page">
<header>...</header>
<main>
<div class="hero">...</div>
<div class="features">...</div>
</main>
<footer>...</footer>
</div>
<!-- ✅ Good: Separated by component units -->
<!-- components/Header.html -->
<header data-component="Header">
<nav data-component="Navigation">...</nav>
</header>
<!-- components/Hero.html -->
<section data-component="Hero">
<h1 data-slot="title">...</h1>
<p data-slot="description">...</p>
<button data-component="Button" data-variant="primary">...</button>
</section>2. Separate CSS by Component
2. 按组件拆分CSS
mockup/
├── styles/
│ ├── base/
│ │ ├── reset.css
│ │ └── variables.css # CSS variables (design tokens)
│ ├── components/
│ │ ├── button.css
│ │ ├── card.css
│ │ ├── header.css
│ │ └── hero.css
│ └── pages/
│ └── home.cssmockup/
├── styles/
│ ├── base/
│ │ ├── reset.css
│ │ └── variables.css # CSS variables (design tokens)
│ ├── components/
│ │ ├── button.css
│ │ ├── card.css
│ │ ├── header.css
│ │ └── hero.css
│ └── pages/
│ └── home.css3. Create Component Mapping Document
3. 创建组件映射文档
markdown
undefinedmarkdown
undefinedComponent Mapping (mockup → Next.js)
Component Mapping (mockup → Next.js)
| Mockup File | Next.js Component | Props |
|---|---|---|
| | variant, size, disabled |
| | title, description, image |
| | user, navigation |
undefined| Mockup File | Next.js Component | Props |
|---|---|---|
| | variant, size, disabled |
| | title, description, image |
| | user, navigation |
undefined4. Design Data Structure as Props
4. 将数据结构设计为Props
javascript
// mockup/data/hero.json
{
"title": "Innovative Service",
"description": "We provide better experiences",
"cta": {
"label": "Get Started",
"href": "/signup"
},
"image": "/hero-image.png"
}
// → When transitioning to Next.js
// components/Hero.tsx
interface HeroProps {
title: string;
description: string;
cta: {
label: string;
href: string;
};
image: string;
}javascript
// mockup/data/hero.json
{
"title": "Innovative Service",
"description": "We provide better experiences",
"cta": {
"label": "Get Started",
"href": "/signup"
},
"image": "/hero-image.png"
}
// → When transitioning to Next.js
// components/Hero.tsx
interface HeroProps {
title: string;
description: string;
cta: {
label: string;
href: string;
};
image: string;
}Next.js Transition Example
Next.js迁移示例
Mockup (HTML):
html
<!-- mockup/components/feature-card.html -->
<div class="feature-card" data-component="FeatureCard">
<div class="feature-card__icon">🚀</div>
<h3 class="feature-card__title">Fast Speed</h3>
<p class="feature-card__description">We provide optimized performance.</p>
</div>Next.js Component:
tsx
// components/FeatureCard.tsx
interface FeatureCardProps {
icon: string;
title: string;
description: string;
}
export function FeatureCard({ icon, title, description }: FeatureCardProps) {
return (
<div className="feature-card">
<div className="feature-card__icon">{icon}</div>
<h3 className="feature-card__title">{title}</h3>
<p className="feature-card__description">{description}</p>
</div>
);
}Mockup(HTML):
html
<!-- mockup/components/feature-card.html -->
<div class="feature-card" data-component="FeatureCard">
<div class="feature-card__icon">🚀</div>
<h3 class="feature-card__title">Fast Speed</h3>
<p class="feature-card__description">We provide optimized performance.</p>
</div>Next.js组件:
tsx
// components/FeatureCard.tsx
interface FeatureCardProps {
icon: string;
title: string;
description: string;
}
export function FeatureCard({ icon, title, description }: FeatureCardProps) {
return (
<div className="feature-card">
<div className="feature-card__icon">{icon}</div>
<h3 className="feature-card__title">{title}</h3>
<p className="feature-card__description">{description}</p>
</div>
);
}JSON Data Simulation Example
JSON数据模拟示例
javascript
// scripts/app.js
async function loadProducts() {
const response = await fetch('./data/products.json');
const products = await response.json();
renderProducts(products);
}javascript
// scripts/app.js
async function loadProducts() {
const response = await fetch('./data/products.json');
const products = await response.json();
renderProducts(products);
}JSON Structure → Use as API Schema
JSON结构 → 用作API Schema
json
// mockup/data/products.json
// This structure becomes the basis for Phase 4 API design
{
"data": [
{
"id": 1,
"name": "Product Name",
"price": 10000,
"image": "/products/1.jpg"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 50
}
}json
// mockup/data/products.json
// This structure becomes the basis for Phase 4 API design
{
"data": [
{
"id": 1,
"name": "Product Name",
"price": 10000,
"image": "/products/1.jpg"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 50
}
}Deliverables Checklist
交付物检查清单
-
UI Research
- Collected reference designs (minimum 3)
- Decided color palette
- Selected fonts
-
Mockup Implementation
- HTML separated by component units
- Design tokens defined with CSS variables
- Data simulated with JSON
-
Next.js Transition Preparation
- Component mapping document created
- Props interfaces defined
- Verified reusable structure
-
UI调研
- 收集参考设计(至少3份)
- 确定配色方案
- 选定字体
-
Mockup实现
- 按组件单元拆分HTML
- 用CSS变量定义设计令牌
- 用JSON模拟数据
-
Next.js迁移准备
- 完成组件映射文档
- 定义Props接口
- 验证可复用结构
Template
模板
See
templates/pipeline/phase-3-mockup.template.md参见
templates/pipeline/phase-3-mockup.template.mdNext Phase
下一阶段
Phase 4: API Design/Implementation → Mockup is validated, now implement actual backend
阶段4:API设计/实现 → Mockup已验证,现在实现实际后端