重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
phase-3-mockup by popup-studio-ai/bkit-claude-code
npx skills add https://github.com/popup-studio-ai/bkit-claude-code --skill phase-3-mockup无需设计师即可创建时尚 UI + 考虑 Next.js 组件化
在实际实施前快速验证想法。即使没有设计师,也要研究 UI/UX 趋势以创建高质量原型,旨在便于后续转换为 Next.js 组件。
mockup/
├── pages/ # HTML 页面
│ ├── index.html
│ ├── login.html
│ └── ...
├── styles/ # CSS
│ └── main.css
├── scripts/ # JavaScript
│ └── app.js
└── data/ # JSON 模拟数据
├── users.json
└── products.json
docs/02-design/
└── mockup-spec.md # 原型规范
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 级别 | 应用方法 |
|---|---|
| 入门级 | 此阶段可能是最终交付物 |
| 动态级 | 用于下一阶段前的验证 |
| 企业级 | 用于快速概念验证 |
"可工作的原型优于完美的代码"
- 使用纯 HTML/CSS/JS,无需框架
- 使用 JSON 文件而非 API 进行数据模拟
- 快速反馈循环
- 考虑 Next.js 组件化的结构
| 来源 | 目的 | URL |
|---|---|---|
| Dribbble | UI 设计趋势、配色方案 | dribbble.com |
| Behance | 真实项目案例研究 | behance.net |
| Awwwards | 获奖者的最新网页趋势 | awwwards.com |
| Mobbin | 移动应用 UI 模式 | mobbin.com |
| Godly | 着陆页参考 | godly.website |
| Land-book | 着陆页画廊 | land-book.com |
🎨 视觉趋势
├── Bento 网格布局
├── 玻璃态拟物化
├── 渐变网格
├── 3D 元素(简约 3D 元素)
└── 微交互
📱 UX 趋势
├── 深色模式优先
├── 骨架屏加载
├── 渐进式披露
├── 拇指友好的移动端设计
└── 无障碍性 (WCAG 2.1)
🔤 排版
├── 可变字体
├── 大型英雄文本
└── 混合字体粗细
| 工具 | 目的 |
|---|---|
| v0.dev | 基于 AI 的 UI 生成(兼容 shadcn/ui) |
| Tailwind UI | 高质量组件模板 |
| Heroicons | 图标 |
| Lucide | 图标(兼容 React) |
| Coolors | 配色方案生成 |
| Realtime Colors | 实时颜色预览 |
## UI 研究检查清单
- [ ] 分析了 3+ 个类似服务
- [ ] 决定了配色方案(主色、辅色、强调色)
- [ ] 选择了排版(标题、正文)
- [ ] 选择了布局模式(网格、Bento 等)
- [ ] 收集了参考设计截图
从原型阶段就考虑组件分离,可以使 Next.js 转换更容易。
<!-- ❌ 不佳:整体式 HTML -->
<div class="page">
<header>...</header>
<main>
<div class="hero">...</div>
<div class="features">...</div>
</main>
<footer>...</footer>
</div>
<!-- ✅ 良好:按组件单元分离 -->
<!-- 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>
mockup/
├── styles/
│ ├── base/
│ │ ├── reset.css
│ │ └── variables.css # CSS 变量(设计令牌)
│ ├── components/
│ │ ├── button.css
│ │ ├── card.css
│ │ ├── header.css
│ │ └── hero.css
│ └── pages/
│ └── home.css
## 组件映射(原型 → Next.js)
| 原型文件 | Next.js 组件 | Props |
|-------------|------------------|-------|
| `components/button.html` | `components/ui/Button.tsx` | variant, size, disabled |
| `components/card.html` | `components/ui/Card.tsx` | title, description, image |
| `components/header.html` | `components/layout/Header.tsx` | user, navigation |
// mockup/data/hero.json
{
"title": "创新服务",
"description": "我们提供更好的体验",
"cta": {
"label": "开始使用",
"href": "/signup"
},
"image": "/hero-image.png"
}
// → 转换到 Next.js 时
// components/Hero.tsx
interface HeroProps {
title: string;
description: string;
cta: {
label: string;
href: string;
};
image: string;
}
原型 (HTML):
<!-- mockup/components/feature-card.html -->
<div class="feature-card" data-component="FeatureCard">
<div class="feature-card__icon">🚀</div>
<h3 class="feature-card__title">快速速度</h3>
<p class="feature-card__description">我们提供优化的性能。</p>
</div>
Next.js 组件:
// 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>
);
}
// scripts/app.js
async function loadProducts() {
const response = await fetch('./data/products.json');
const products = await response.json();
renderProducts(products);
}
// mockup/data/products.json
// 此结构将成为第四阶段 API 设计的基础
{
"data": [
{
"id": 1,
"name": "产品名称",
"price": 10000,
"image": "/products/1.jpg"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 50
}
}
* 收集了参考设计(至少 3 个)
* 决定了配色方案
* 选择了字体
* HTML 按组件单元分离
* 使用 CSS 变量定义了设计令牌
* 使用 JSON 模拟了数据
* 创建了组件映射文档
* 定义了 Props 接口
* 验证了可重用结构
参见 templates/pipeline/phase-3-mockup.template.md
第四阶段:API 设计/实现 → 原型已验证,现在实现实际后端
每周安装量
65
仓库
GitHub Stars
443
首次出现
Jan 30, 2026
安全审计
安装于
gemini-cli58
opencode57
claude-code57
github-copilot56
cursor56
codex54
Create trendy UI without a designer + Consider Next.js componentization
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.
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 specification
| Level | Application Method |
|---|---|
| Starter | This stage may be the final deliverable |
| Dynamic | For validation before next stages |
| Enterprise | For quick PoC |
"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
| 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 |
🎨 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
| 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 |
## 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
Considering component separation from the mockup stage makes Next.js transition easier.
<!-- ❌ 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>
mockup/
├── styles/
│ ├── base/
│ │ ├── reset.css
│ │ └── variables.css # CSS variables (design tokens)
│ ├── components/
│ │ ├── button.css
│ │ ├── card.css
│ │ ├── header.css
│ │ └── hero.css
│ └── pages/
│ └── home.css
## Component Mapping (mockup → Next.js)
| Mockup File | Next.js Component | Props |
|-------------|------------------|-------|
| `components/button.html` | `components/ui/Button.tsx` | variant, size, disabled |
| `components/card.html` | `components/ui/Card.tsx` | title, description, image |
| `components/header.html` | `components/layout/Header.tsx` | user, navigation |
// 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;
}
Mockup (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 :
// 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>
);
}
// scripts/app.js
async function loadProducts() {
const response = await fetch('./data/products.json');
const products = await response.json();
renderProducts(products);
}
// 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
}
}
UI Research
Mockup Implementation
Next.js Transition Preparation
See templates/pipeline/phase-3-mockup.template.md
Phase 4: API Design/Implementation → Mockup is validated, now implement actual backend
Weekly Installs
65
Repository
GitHub Stars
443
First Seen
Jan 30, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
gemini-cli58
opencode57
claude-code57
github-copilot56
cursor56
codex54
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
125,600 周安装
统一项目脚手架工具:AI优先开发、NestJS后端、NextJS前端、Expo移动端、Plasmo扩展
103 周安装
Twitter 搜索与分析工具:使用高级语法获取1000条推文并生成专业洞察报告
103 周安装
数据探索可视化工具 - 自动化EDA、医疗数据分析与专业报告生成
104 周安装
YouTube视频规划工具 - 自动生成优化标题、缩略图和开场钩子,提升点击率和留存率
103 周安装
Qodo PR Resolver:AI代码评审问题批量修复工具,支持GitHub/GitLab/Bitbucket/Azure DevOps
106 周安装
DOCX文档处理与自动化技能:专业格式创建、视觉审阅与Python编辑指南
103 周安装