纸艺手作
Paper Craft
纸艺与剪纸风格,层叠纸张效果、柔和阴影暗示深度、手作质感边缘。适合儿童品牌、教育产品、创意工作室。
配色方案
Primary
#e85d75
Secondary
#fdf6ee
Accent 1
#5cb8a5
Accent 2
#f5c040
Accent 3
#6b7fb5
提示词
硬性 + 软性提示词
一键复制并生成 纸艺手作 风格界面。硬性提示词用于强约束一致性,软性提示词用于保留风格方向下的灵活实现。
硬性提示词
高一致性,严格执行风格规则
STYLEKIT_STYLE_REFERENCE
style_name: 纸艺手作
style_slug: paper-craft
style_source: /styles/paper-craft
# Hard Prompt
请严格遵守以下风格规则并保持一致性,禁止风格漂移。
## 执行要求
- 优先保证风格一致性,其次再做创意延展。
- 遇到冲突时以禁止项为最高优先级。
- 输出前自检:颜色、排版、间距、交互是否仍属于该风格。
## Style Rules
# Paper Craft (纸艺手作) Design System
> 纸艺与剪纸风格,层叠纸张效果、柔和阴影暗示深度、手作质感边缘。适合儿童品牌、教育产品、创意工作室。
## 核心理念
Paper Craft(纸艺手作)的设计灵感来自剪纸艺术、折纸和手工拼贴。通过层叠的纸张效果、柔和的投影和不规则的手作边缘,创造出温暖、有触感的视觉体验。
核心理念:
- 纸张层叠:通过多层阴影和微妙的偏移创造出真实的纸张堆叠感
- 手作质感:边缘略带不规则感,避免过于数字化的精确
- 柔和色彩:使用纸张般温暖的底色搭配明快但不刺眼的彩色纸片
- 深度暗示:通过阴影方向和强度传达前后层次关系
这个风格刻意回避数字世界的冷硬精确感,转而拥抱手工制作的温度。每一个 UI 元素都应该看起来像是用彩色纸张裁剪、折叠和粘贴而成的——按钮是一张凸起的纸片,卡片是堆叠的纸层,输入框是在纸上裁切出的凹槽。
适合场景:儿童教育应用、手工创意商店、幼儿园网站、创意工作室作品集、DIY 教程平台。
---
## Token 字典(精确 Class 映射)
### 边框
```
宽度: border-2
颜色: border-[#e0d8cc]
圆角: rounded-xl
```
### 阴影
```
小: shadow-[2px_2px_0px_rgba(0,0,0,0.06)]
中: shadow-[4px_4px_0px_rgba(0,0,0,0.08)]
大: shadow-[6px_6px_0px_rgba(0,0,0,0.1)]
悬停: hover:shadow-[5px_5px_0px_rgba(0,0,0,0.12)]
聚焦: focus:shadow-[0_0_0_3px_rgba(232,93,117,0.15)]
```
### 交互效果
```
悬停位移: undefined
过渡动画: transition-all duration-200
按下状态: active:translate-y-0.5 active:shadow-[1px_1px_0px_rgba(0,0,0,0.06)]
```
### 字体
```
标题: font-bold
正文: font-sans
```
### 字号
```
Hero: text-4xl md:text-6xl lg:text-7xl
H1: text-3xl md:text-5xl
H2: text-2xl md:text-3xl
H3: text-xl md:text-2xl
正文: text-sm md:text-base
小字: text-xs
```
### 间距
```
Section: py-12 md:py-20
容器: px-4 md:px-8
卡片: p-6
```
---
## [FORBIDDEN] 绝对禁止
以下 class 在本风格中**绝对禁止使用**,生成时必须检查并避免:
### 禁止的 Class
- `bg-black`
- `bg-gray-900`
- `bg-gray-950`
- `text-white`
- `shadow-[0_0_`
- `text-cyan-`
- `text-fuchsia-`
- `bg-cyan-`
- `bg-fuchsia-`
### 禁止的模式
- 匹配 `^bg-(?:black|gray-[89])`
- 匹配 `^shadow-\[0_0_.*rgba`
- 匹配 `^text-(?:cyan|fuchsia)-`
- 匹配 `^bg-(?:cyan|fuchsia)-`
### 禁止原因
- `bg-black`: Paper Craft uses warm light backgrounds, never dark
- `shadow-[0_0_`: Use offset paper shadows (shadow-[4px_4px_...]), not glows
- `text-cyan-`: Use craft colors (#e85d75, #5cb8a5, #f5c040) not neon
> WARNING: 如果你的代码中包含以上任何 class,必须立即替换。
---
## [REQUIRED] 必须包含
### 按钮必须包含
```
px-6 py-3
font-bold
rounded-xl
shadow-[3px_3px_0px_rgba(0,0,0,0.1)]
transition-all duration-200
```
### 卡片必须包含
```
bg-white
rounded-2xl
shadow-[4px_4px_0px_rgba(0,0,0,0.08)]
```
### 输入框必须包含
```
bg-white
border-2 border-[#e0d8cc]
rounded-xl
text-[#2d2d2d]
focus:border-[#e85d75]
focus:outline-none
```
---
## [COMPARE] 错误 vs 正确对比
### 按钮
[WRONG] **错误示例**(使用了圆角和模糊阴影):
```html
<button class="rounded-lg shadow-lg bg-blue-500 text-white px-4 py-2 hover:bg-blue-600">
点击我
</button>
```
[CORRECT] **正确示例**(使用硬边缘、无圆角、位移效果):
```html
<button class="px-6 py-3 font-bold rounded-xl shadow-[3px_3px_0px_rgba(0,0,0,0.1)] transition-all duration-200 bg-[#ff006e] text-white px-4 py-2 md:px-6 md:py-3">
点击我
</button>
```
### 卡片
[WRONG] **错误示例**(使用了渐变和圆角):
```html
<div class="rounded-xl shadow-2xl bg-gradient-to-r from-purple-500 to-pink-500 p-6">
<h3 class="text-xl font-semibold">标题</h3>
</div>
```
[CORRECT] **正确示例**(纯色背景、硬边缘阴影):
```html
<div class="bg-white rounded-2xl shadow-[4px_4px_0px_rgba(0,0,0,0.08)] p-6">
<h3 class="font-bold text-xl md:text-2xl">标题</h3>
</div>
```
### 输入框
[WRONG] **错误示例**(灰色边框、圆角):
```html
<input class="rounded-md border border-gray-300 px-3 py-2 focus:ring-2 focus:ring-blue-500" />
```
[CORRECT] **正确示例**(黑色粗边框、聚焦阴影):
```html
<input class="bg-white border-2 border-[#e0d8cc] rounded-xl text-[#2d2d2d] focus:border-[#e85d75] focus:outline-none px-3 py-2 md:px-4 md:py-3" placeholder="请输入..." />
```
---
## [TEMPLATES] 页面骨架模板
使用以下模板生成页面,只需替换 `{PLACEHOLDER}` 部分:
### 导航栏骨架
```html
<nav class="bg-white border-b-2 md:border-b-4 border-black px-4 md:px-8 py-3 md:py-4">
<div class="flex items-center justify-between max-w-6xl mx-auto">
<a href="/" class="font-black text-xl md:text-2xl tracking-wider">
{LOGO_TEXT}
</a>
<div class="flex gap-4 md:gap-8 font-mono text-sm md:text-base">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero 区块骨架
```html
<section class="min-h-[60vh] md:min-h-[80vh] flex items-center px-4 md:px-8 py-12 md:py-0 bg-{ACCENT_COLOR} border-b-2 md:border-b-4 border-black">
<div class="max-w-4xl mx-auto">
<h1 class="font-black text-4xl md:text-6xl lg:text-8xl leading-tight tracking-tight mb-4 md:mb-6">
{HEADLINE}
</h1>
<p class="font-mono text-base md:text-xl max-w-xl mb-6 md:mb-8">
{SUBHEADLINE}
</p>
<button class="bg-black text-white font-black px-6 py-3 md:px-8 md:py-4 border-2 md:border-4 border-black shadow-[4px_4px_0px_0px_rgba(255,0,110,1)] md:shadow-[8px_8px_0px_0px_rgba(255,0,110,1)] hover:shadow-none hover:translate-x-[2px] hover:translate-y-[2px] transition-all text-sm md:text-base">
{CTA_TEXT}
</button>
</div>
</section>
```
### 卡片网格骨架
```html
<section class="py-12 md:py-24 px-4 md:px-8">
<div class="max-w-6xl mx-auto">
<h2 class="font-black text-2xl md:text-4xl mb-8 md:mb-12">{SECTION_TITLE}</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6">
<!-- Card template - repeat for each card -->
<div class="bg-white border-2 md:border-4 border-black shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] md:shadow-[8px_8px_0px_0px_rgba(0,0,0,1)] p-4 md:p-6 hover:shadow-[4px_4px_0px_0px_rgba(255,0,110,1)] md:hover:shadow-[8px_8px_0px_0px_rgba(255,0,110,1)] hover:-translate-y-1 transition-all">
<h3 class="font-black text-lg md:text-xl mb-2">{CARD_TITLE}</h3>
<p class="font-mono text-sm md:text-base text-gray-700">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### 页脚骨架
```html
<footer class="bg-black text-white py-12 md:py-16 px-4 md:px-8 border-t-2 md:border-t-4 border-black">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<span class="font-black text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-mono text-sm mt-4 text-gray-400">{TAGLINE}</p>
</div>
<div>
<h4 class="font-black text-lg mb-4">{COLUMN_TITLE}</h4>
<ul class="space-y-2 font-mono text-sm text-gray-400">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] 生成后自检清单
**在输出代码前,必须逐项验证以下每一条。如有违反,立即修正后再输出:**
### 1. 圆角检查
- [ ] 搜索代码中的 `rounded-`
- [ ] 确认只有 `rounded-none` 或无圆角
- [ ] 如果发现 `rounded-lg`、`rounded-md` 等,替换为 `rounded-none`
### 2. 阴影检查
- [ ] 搜索代码中的 `shadow-`
- [ ] 确认只使用 `shadow-[Xpx_Xpx_0px_0px_rgba(...)]` 格式
- [ ] 如果发现 `shadow-lg`、`shadow-xl` 等,替换为正确格式
### 3. 边框检查
- [ ] 搜索代码中的 `border-`
- [ ] 确认边框颜色是 `border-black`
- [ ] 如果发现 `border-gray-*`、`border-slate-*`,替换为 `border-black`
### 4. 交互检查
- [ ] 所有按钮都有 `hover:shadow-none hover:translate-x-[2px] hover:translate-y-[2px]`
- [ ] 所有卡片都有 hover 效果(阴影变色或位移)
- [ ] 都包含 `transition-all`
### 5. 响应式检查
- [ ] 边框有 `border-2 md:border-4`
- [ ] 阴影有 `shadow-[4px...] md:shadow-[8px...]`
- [ ] 间距有 `p-4 md:p-6` 或类似的响应式值
- [ ] 字号有 `text-sm md:text-base` 或类似的响应式值
### 6. 字体检查
- [ ] 标题使用 `font-black`
- [ ] 正文使用 `font-mono`
> CRITICAL: **如果任何一项检查不通过,必须修正后重新生成代码。**
---
## [EXAMPLES] 示例 Prompt
### 1. 儿童教育平台
纸艺风格的儿童学习界面
```
Create a kids education landing page using Paper Craft style:
- Warm paper-white background
- Colorful paper-layered cards for subjects
- Playful buttons with paper-shadow and slight rotation
- Badge/label elements as paper cutouts
- Layered paper decorative borders
- Bright but soft craft colors
```软性提示词
保留风格方向,允许实现灵活
STYLEKIT_STYLE_REFERENCE
style_name: 纸艺手作
style_slug: paper-craft
style_source: /styles/paper-craft
# Soft Prompt
保持整体风格气质即可,允许实现细节灵活调整,但不要偏离核心视觉语言。
## Style Signals
- 纸艺
- 剪纸
- 手作
- 层叠
- 阴影
- 创意
## Prefer
- 背景使用纸白色 bg-[#fdf6ee] 或柔和暖白
- 卡片使用纸张阴影 shadow-[4px_4px_0px_rgba(0,0,0,0.08)] 模拟凸起效果
- 按钮使用偏移阴影 shadow-[3px_3px_0px_rgba(0,0,0,0.1)] 模拟纸片凸起
- 使用圆润但不完美的圆角 rounded-xl 搭配微旋转 rotate-[1deg]
## Avoid
- 禁止使用深色/黑色背景
- 禁止使用发光效果或霓虹阴影
- 禁止使用金属质感或玻璃拟态
## Output Guidance
- 先保证整体风格识别度,再优化细节。
- 避免过度炫技,保持可读性与可维护性。设计哲学
Paper Craft(纸艺手作)的设计灵感来自剪纸艺术、折纸和手工拼贴。通过层叠的纸张效果、柔和的投影和不规则的手作边缘,创造出温暖、有触感的视觉体验。
核心理念: - 纸张层叠:通过多层阴影和微妙的偏移创造出真实的纸张堆叠感 - 手作质感:边缘略带不规则感,避免过于数字化的精确 - 柔和色彩:使用纸张般温暖的底色搭配明快但不刺眼的彩色纸片 - 深度暗示:通过阴影方向和强度传达前后层次关系
这个风格刻意回避数字世界的冷硬精确感,转而拥抱手工制作的温度。每一个 UI 元素都应该看起来像是用彩色纸张裁剪、折叠和粘贴而成的——按钮是一张凸起的纸片,卡片是堆叠的纸层,输入框是在纸上裁切出的凹槽。
适合场景:儿童教育应用、手工创意商店、幼儿园网站、创意工作室作品集、DIY 教程平台。
必须做 / Do's
- +背景使用纸白色 bg-[#fdf6ee] 或柔和暖白
- +卡片使用纸张阴影 shadow-[4px_4px_0px_rgba(0,0,0,0.08)] 模拟凸起效果
- +按钮使用偏移阴影 shadow-[3px_3px_0px_rgba(0,0,0,0.1)] 模拟纸片凸起
- +使用圆润但不完美的圆角 rounded-xl 搭配微旋转 rotate-[1deg]
- +色块使用明快的纸艺色 bg-[#e85d75]、bg-[#5cb8a5]、bg-[#f5c040]
- +文字使用深色 text-[#2d2d2d] 搭配手写感字体或圆润无衬线字体
- +层叠效果使用多个 div 带 absolute 定位和不同阴影深度
- +悬停时微微抬起 hover:-translate-y-1 hover:shadow-[5px_5px_0px_rgba(0,0,0,0.12)]
- +多层卡片在 hover 时让底层纸片向不同角度散开(Layer Separation)
- +按钮和卡片位移时,阴影偏移距离同步增大,强调纸片离开桌面的厚度
- +输入框 focus 使用更深 inset 阴影模拟纸板切口(Cutout Depth)
禁止做 / Don'ts
- -禁止使用深色/黑色背景
- -禁止使用发光效果或霓虹阴影
- -禁止使用金属质感或玻璃拟态
- -禁止使用过于精确的直角边缘(看起来太数字化)
- -禁止使用高饱和度的荧光色
- -禁止使用渐变发光效果
- -禁止使用 drop-shadow 滤镜(使用 box-shadow 模拟纸张阴影)
- -禁止使用弹簧回弹曲线(纸片轻但不橡胶)
- -禁止层叠纸片在 hover 时完全同向运动(会丢失手工剥离感)
组件模板
组件预览
按钮
纸艺风格纸片按钮,强调硬挺纸板位移和阴影联动
// Paper Primary
<button className="px-8 py-3 bg-[#e85d75] text-white font-bold rounded-xl shadow-[4px_4px_0px_rgba(45,45,45,0.15)] hover:-translate-y-1 hover:-translate-x-1 hover:shadow-[6px_6px_0px_rgba(45,45,45,0.15)] active:translate-y-1 active:translate-x-1 active:shadow-[1px_1px_0px_rgba(45,45,45,0.2)] transition-all duration-200 ease-out -rotate-1 hover:rotate-0">
Create
</button>
// Paper Teal
<button className="px-8 py-3 bg-[#5cb8a5] text-white font-bold rounded-xl shadow-[4px_4px_0px_rgba(45,45,45,0.15)] hover:-translate-y-1 hover:translate-x-0.5 hover:shadow-[6px_6px_0px_rgba(45,45,45,0.14)] active:translate-y-1 active:shadow-[1px_1px_0px_rgba(45,45,45,0.2)] transition-all duration-200 ease-out rotate-[0.5deg] hover:rotate-0">
Explore
</button>
// Paper Outline
<button className="px-8 py-3 bg-white border-2 border-[#2d2d2d] text-[#2d2d2d] font-bold rounded-xl shadow-[3px_3px_0px_rgba(0,0,0,0.08)] hover:-translate-y-0.5 hover:shadow-[5px_5px_0px_rgba(0,0,0,0.12)] active:translate-y-0.5 active:shadow-[1px_1px_0px_rgba(0,0,0,0.1)] transition-all duration-200 ease-out">
Learn More
</button>全局样式
全局 CSS
/* Paper Craft Global Styles */
@layer base {
body {
@apply bg-[#fdf6ee] text-[#2d2d2d] antialiased;
}
::selection {
@apply bg-[#f5c040] text-[#2d2d2d];
}
}
/* Paper texture overlay */
.paper-texture {
background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23noise)' opacity='0.02'/%3E%3C/svg%3E");
}
/* Paper fold line */
.paper-fold {
background-image: linear-gradient(
to right,
transparent 49.5%,
rgba(0, 0, 0, 0.05) 49.5%,
rgba(0, 0, 0, 0.05) 50.5%,
transparent 50.5%
);
}无障碍
无障碍评分
基于颜色对比度和排版可读性的 WCAG 2.1 合规分析。
综合评分
等级: D - 较差
对比度
| 场景 | 颜色 | 比率 | AA | AAA |
|---|---|---|---|---|
| Text on background | /#2d2d2d / #fdf6ee | 12.85:1 | ||
| Secondary text on background | /#666666 / #fdf6ee | 5.36:1 | ||
| Muted text on background | /#b0a898 / #fdf6ee | 2.2:1 | ||
| Text on secondary background | /#2d2d2d / #ffffff | 13.77:1 | ||
| Secondary text on secondary | /#666666 / #ffffff | 5.74:1 | ||
| Button primary | /#ffffff / #e85d75 | 3.36:1 | ||
| Text on accent 1 | /#2d2d2d / #e85d75 | 4.1:1 | ||
| Alt text on accent 1 | /#666666 / #e85d75 | 1.71:1 | ||
| Text on accent 2 | /#2d2d2d / #5cb8a5 | 5.81:1 | ||
| Alt text on accent 2 | /#666666 / #5cb8a5 | 2.42:1 | ||
| Text on accent 3 | /#2d2d2d / #f5c040 | 8.2:1 | ||
| Alt text on accent 3 | /#666666 / #f5c040 | 3.42:1 | ||
| Text on accent 4 | /#2d2d2d / #6b7fb5 | 3.49:1 | ||
| Alt text on accent 4 | /#666666 / #6b7fb5 | 1.46:1 |
可读性
分数
87/100
字号
text-sm md:text-base
字重
font-bold
行高
default
评分基于 WCAG 2.1 标准。AA 级要求普通文本对比度 4.5:1、大文本 3:1;AAA 级要求普通文本 7:1、大文本 4.5:1。
IDE 集成
IDE 配置导出
下载 AI 编码助手的配置文件,使其按照此风格生成代码。
风格包
导出风格包
获取完整的可机器读取风格资源,包括 Design Tokens、Tailwind 预设、CSS 变量和 shadcn/ui 主题。
Metadata
Style metadata including version information
Design Tokens
Figma / Style Dictionary / Tokens Studio 兼容
Tailwind Preset
Tailwind CSS 主题预设,可直接在配置中引用
Global CSS
包含 CSS 变量和基础样式
shadcn Theme
shadcn/ui 主题配置
CSS Variables
纯 CSS 变量,适用于任何项目
SKILL.md
可加载到 Cursor / Claude Code / VS Code 的技能包