适合场景
工具应用 / 手机应用 / 效率
面向高频使用的手机工具 App,使用浅色背景、清晰状态色和柔和层级,在效率与亲和力之间取得平衡。
适合场景
工具应用 / 手机应用 / 效率
设计重点
使用深青色作为主行动色,保证按钮和正文可读
注意事项
不要用低对比度文字承载关键任务信息
AI 实现文档
默认用硬性提示词让 AI 直接生成前端;Design Spec 用来理解、改写和审核风格;Creative Brief 用来早期探索方向。
默认使用它:复制后追加具体需求,让 AI 直接生成一致、可落地的前端。
什么时候用
怎么用
STYLEKIT_STYLE_REFERENCE
style_name: 柔和工具风
style_slug: soft-utility
style_source: /styles/soft-utility
# Hard Prompt
## 什么时候用
当你希望 AI 严格按风格规则生成代码时使用。它是生产界面最稳的默认选择。
## 怎么用
- 把完整提示词复制到 ChatGPT、Claude、Cursor 或其他编码助手。
- 在提示词后追加具体产品、页面或组件需求。
- 生成后按禁止项和交互状态检查,确认没有风格漂移。
请严格遵守以下风格规则并保持一致性,禁止风格漂移。
## 执行要求
- 优先保证风格一致性,其次再做创意延展。
- 遇到冲突时以禁止项为最高优先级。
- 输出前自检:颜色、排版、间距、交互是否仍属于该风格。
## Style Rules
STYLE: Soft Utility
## 必须遵守
- 使用深青色作为主行动色,保证按钮和正文可读
- 用薄荷、杏色、蓝色区分状态和模块,而不是装饰性铺色
- 在移动端采用底部操作栏和清晰的返回路径
- 所有输入控件提供 focus、error、success 和 disabled 状态
- 使用 rounded-xl 到 rounded-2xl,保持密度而不过度可爱
- 为常用操作提供一键完成和可撤销反馈
## 绝对禁止
- 不要用低对比度文字承载关键任务信息
- 不要为了柔和而移除边界、分隔和状态反馈
- 不要把工具型页面做成纯展示卡片墙
- 不要使用过度弹跳或影响效率的动画
- 不要让主操作在不同页面随意改变位置
INTERACTION:
- Use 160-240ms transitions and scale-[0.98] on press
- Keep primary controls in a consistent location across screens
- Provide undo or confirmation for destructive actions
COLOR ROLES:
- Surface: #f4f8f6
- Text: #203b40
- Primary: #2d5b63
- Success/support: #a9d8cc
- Notice: #f3c98b
- Secondary states: #e6b7b0 and #b8c9ed
---
# Soft Utility (柔和工具风) Design System
> 面向高频使用的手机工具 App,使用浅色背景、清晰状态色和柔和层级,在效率与亲和力之间取得平衡。
## 核心理念
Soft Utility 面向每天都会打开的工具型 App。它保留柔和色彩和圆润触感,但让状态、输入、筛选和确认拥有比装饰更高的权重。
核心原则:
- 先让用户完成任务,再表达风格
- 颜色承担状态,不用颜色替代文字
- 控件有明确的默认、聚焦、完成和错误状态
- 主要动作固定在拇指容易到达的位置
- 信息密度适中,避免空洞的装饰
---
## Token 字典(精确 Class 映射)
### 边框
```
宽度: border
颜色: border-[#2d5b63]
圆角: rounded-lg
```
### 阴影
```
小: shadow-sm
中: shadow-md
大: shadow-lg
悬停: hover:shadow-md
聚焦: focus:shadow-md
```
### 交互效果
```
悬停位移: (无)
悬停缩放: (无)
悬停透明度: hover:opacity-90
过渡动画: transition-all duration-200
按下状态: active:scale-[0.98]
```
### 字体
```
标题: font-semibold tracking-tight
正文: font-sans
```
### 字号
```
Hero: text-4xl md:text-6xl
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 md:text-sm
```
### 间距
```
Section: py-10 md:py-20
容器: px-4 md:px-8
卡片: p-5 md:p-6
小间距: gap-2 md:gap-4
中间距: gap-4 md:gap-6
大间距: gap-6 md:gap-8
```
### 颜色角色
```
背景主色: bg-[#f4f8f6]
背景辅色: bg-[#2d5b63]
背景强调色: bg-[#a9d8cc], bg-[#f3c98b], bg-[#e6b7b0], bg-[#b8c9ed]
正文主色: text-[#2d5b63]
正文辅色: text-[#a9d8cc]
正文弱化色: text-zinc-500
按钮主色: bg-[#2d5b63] text-white
按钮辅色: bg-[#f4f8f6] text-[#2d5b63]
```
---
## [FORBIDDEN] 绝对禁止
以下 class 在本风格中**绝对禁止使用**,生成时必须检查并避免:
### 禁止的 Class
- (当前风格没有登记的禁止 class)
### 禁止的模式
- (当前风格没有登记的禁止模式)
### 禁止原因
- 以当前风格的设计规则为准。
> WARNING: 如果你的代码中包含以上任何 class,必须立即替换。
---
## [REQUIRED] 必须包含
### 按钮必须包含
```
rounded-lg
border
font-medium
inline-flex
items-center
```
### 卡片必须包含
```
rounded-lg
border
bg-white/80
```
### 输入框必须包含
```
rounded-lg
border
bg-background
focus:outline-none
```
---
## [COMPARE] Soft Utility 错误 vs 正确对比
以下错误示例只代表“未经过当前风格适配的通用默认值”,不要把错误示例当成视觉建议。
### 按钮
[WRONG] **错误示例**(通用组件库默认样式,不要直接复制):
```html
<button class="{GENERIC_LIBRARY_BUTTON_DEFAULT}">
点击我
</button>
```
[CORRECT] **正确示例**(使用当前风格的 token):
```html
<button class="rounded-lg border font-medium inline-flex items-center bg-[#2d5b63] text-white">
点击我
</button>
```
### 卡片
[WRONG] **错误示例**(未经当前风格适配的通用卡片):
```html
<div class="{GENERIC_LIBRARY_CARD_DEFAULT}">
<h3>{TITLE}</h3>
</div>
```
[CORRECT] **正确示例**(使用当前风格的 card token):
```html
<div class="rounded-lg border bg-white/80 p-5 md:p-6">
<h3 class="font-semibold tracking-tight text-xl md:text-2xl">{TITLE}</h3>
</div>
```
### 输入框
[WRONG] **错误示例**(未经当前风格适配的通用输入框):
```html
<input class="{GENERIC_LIBRARY_INPUT_DEFAULT}" />
```
[CORRECT] **正确示例**(使用当前风格的 input token):
```html
<input class="rounded-lg border bg-background focus:outline-none" placeholder="{PLACEHOLDER}" />
```
---
## [TEMPLATES] Soft Utility 页面骨架模板
以下骨架只使用当前风格的 token。替换 `{PLACEHOLDER}` 时,不要移除或替换这些 token:
### 导航栏骨架
```html
<nav class="bg-[#f4f8f6] text-[#2d5b63] border border-[#2d5b63] px-4 md:px-8">
<div class="flex items-center justify-between max-w-6xl mx-auto gap-4 md:gap-6">
<a href="/" class="font-semibold tracking-tight text-xl md:text-2xl">
{LOGO_TEXT}
</a>
<div class="flex gap-4 md:gap-6 font-sans text-xs md:text-sm">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero 区块骨架
```html
<section class="bg-[#a9d8cc] text-[#2d5b63] py-10 md:py-20 px-4 md:px-8">
<div class="max-w-4xl mx-auto">
<h1 class="font-semibold tracking-tight text-4xl md:text-6xl">
{HEADLINE}
</h1>
<p class="font-sans text-sm md:text-base max-w-xl">
{SUBHEADLINE}
</p>
<button class="rounded-lg border font-medium inline-flex items-center bg-[#2d5b63] text-white">
{CTA_TEXT}
</button>
</div>
</section>
```
### 卡片网格骨架
```html
<section class="bg-[#f4f8f6] text-[#2d5b63] py-10 md:py-20 px-4 md:px-8">
<div class="max-w-6xl mx-auto">
<h2 class="font-semibold tracking-tight text-2xl md:text-3xl">{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="rounded-lg border bg-white/80 p-5 md:p-6">
<h3 class="font-semibold tracking-tight text-xl md:text-2xl">{CARD_TITLE}</h3>
<p class="font-sans text-sm md:text-base text-zinc-500">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### 表单输入骨架
```html
<input class="rounded-lg border bg-background focus:outline-none" placeholder="{PLACEHOLDER}" />
```
### 页脚骨架
```html
<footer class="bg-[#2d5b63] text-[#a9d8cc] py-10 md:py-20 px-4 md:px-8">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8">
<div>
<span class="font-semibold tracking-tight text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-sans text-xs md:text-sm">{TAGLINE}</p>
</div>
<div>
<h4 class="font-semibold tracking-tight text-xl md:text-2xl">{COLUMN_TITLE}</h4>
<ul class="font-sans text-xs md:text-sm">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] Soft Utility 生成后自检清单
**输出代码前,逐项验证当前风格的 token 和规则。如有违反,先修正再交付:**
### Token 检查
- [ ] 按钮包含: `rounded-lg border font-medium inline-flex items-center`
- [ ] 卡片包含: `rounded-lg border bg-white/80`
- [ ] 输入框包含: `rounded-lg border bg-background focus:outline-none`
### 禁止项检查
- [ ] 没有使用当前风格禁止的 class 或模式
### 风格规则检查
- [ ] 使用深青色作为主行动色,保证按钮和正文可读
- [ ] 用薄荷、杏色、蓝色区分状态和模块,而不是装饰性铺色
- [ ] 在移动端采用底部操作栏和清晰的返回路径
- [ ] 所有输入控件提供 focus、error、success 和 disabled 状态
- [ ] 使用 rounded-xl 到 rounded-2xl,保持密度而不过度可爱
### 风格漂移检查
- [ ] 没有违反:不要用低对比度文字承载关键任务信息
- [ ] 没有违反:不要为了柔和而移除边界、分隔和状态反馈
- [ ] 没有违反:不要把工具型页面做成纯展示卡片墙
- [ ] 没有违反:不要使用过度弹跳或影响效率的动画
- [ ] 没有违反:不要让主操作在不同页面随意改变位置
### 通用交付检查
- [ ] 响应式布局在手机、平板和桌面下稳定,没有横向溢出
- [ ] 所有交互元素有清晰焦点、可访问名称和 reduced-motion 方案
- [ ] 文本对比度达到 WCAG AA,且没有用颜色单独传递状态
- [ ] 结果仍然能够一眼识别为 Soft Utility
## 绝对禁止(匹配即拒绝)
以下模式一旦出现,视为风格违规——不找借口,直接重写。
- 用低对比度文字承载关键任务信息
- 为了柔和而移除边界、分隔和状态反馈
- 把工具型页面做成纯展示卡片墙
- 使用过度弹跳或影响效率的动画
- 让主操作在不同页面随意改变位置
## 自检清单(交付前逐条确认)
如果任何一条不通过,说明风格漂移了——修改后再交付。
- [ ] 没有紫色到蓝色的渐变
- [ ] 没有使用 Inter / Roboto / Geist 等过度使用的字体
- [ ] 没有嵌套卡片(卡片里面套卡片)
- [ ] 没有在彩色背景上放灰色文字
- [ ] 正文对比度满足 WCAG AA(≥4.5:1)
- [ ] 没有 bounce / elastic 缓动曲线
- [ ] 动效有 prefers-reduced-motion 备选方案
- [ ] 正文行宽不超过 65-75 个字符
- [ ] 没有单侧粗边框装饰(border-left/right accent stripe)
- [ ] 没有渐变文字(background-clip: text)
- [ ] 没有把玻璃态(glassmorphism)当作默认风格
- [ ] 没有 tiny uppercase tracked eyebrow 放在每个 section 标题上面
- [ ] 不要用低对比度文字承载关键任务信息
- [ ] 不要为了柔和而移除边界、分隔和状态反馈
- [ ] 不要把工具型页面做成纯展示卡片墙
- [ ] 不要使用过度弹跳或影响效率的动画
- [ ] 不要让主操作在不同页面随意改变位置更多提示词库:全部 UI 提示词 · Tailwind UI 提示词 · 暗色模式提示词
组件模板
Button component in this style.
真实前端完成度
这层检查这个风格是否已经具备真实网站常见的主题、状态反馈、键盘可访问性和性能约束。
总体覆盖
51%
Fallback 规则
暗色模式
0%
缺失组件状态
79%
部分动效规则
70%
部分可访问性
70%
部分性能代价
35%
通用按钮
默认 / 悬停 / 键盘焦点 / 按下 / 禁用
输入框
默认 / 悬停 / 键盘焦点 / 禁用 / 错误
卡片
默认 / 悬停 / 键盘焦点 / 加载中 / 骨架屏
表单
默认 / 键盘焦点 / 禁用 / 加载中 / 错误
常见问题
:root { --utility-surface: #f4f8f6; --utility-ink: #203b40; --utility-primary: #2d5b63; --utility-mint: #a9d8cc; --utility-apricot: #f3c98b; }
.utility-status { min-height: 0.5rem; border-radius: 9999px; }
.utility-bottom-bar { padding-bottom: max(0.75rem, env(safe-area-inset-bottom)); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }相关风格
探索这些风格获取现成的 tokens 和组件。
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 的技能包
Soft Utility 面向每天都会打开的工具型 App。它保留柔和色彩和圆润触感,但让状态、输入、筛选和确认拥有比装饰更高的权重。
基于颜色对比度和排版可读性的 WCAG 2.1 合规分析。
综合评分
等级: D - 较差
对比度
| 场景 | 颜色 | 比率 | AA | AAA |
|---|---|---|---|---|
| Text on background | /#2d5b63 / #f4f8f6 | 7.03:1 | ||
| Secondary text on background | /#a9d8cc / #f4f8f6 | 1.47:1 | ||
| Text on secondary background | /#2d5b63 / #2d5b63 | 1:1 | ||
| Secondary text on secondary | /#a9d8cc / #2d5b63 | 4.8:1 | ||
| Button primary | /#ffffff / #2d5b63 | 7.53:1 | ||
| Text on accent 1 | /#2d5b63 / #a9d8cc | 4.8:1 | ||
| Alt text on accent 1 | /#a9d8cc / #a9d8cc | 1:1 | ||
| Text on accent 2 | /#2d5b63 / #f3c98b | 4.86:1 | ||
| Alt text on accent 2 | /#a9d8cc / #f3c98b | 1.01:1 | ||
| Text on accent 3 | /#2d5b63 / #e6b7b0 | 4.22:1 | ||
| Alt text on accent 3 | /#a9d8cc / #e6b7b0 | 1.14:1 | ||
| Text on accent 4 | /#2d5b63 / #b8c9ed | 4.52:1 | ||
| Alt text on accent 4 | /#a9d8cc / #b8c9ed | 1.06:1 |
可读性
分数
82/100
字号
text-sm md:text-base
字重
font-semibold tracking-tight
行高
default
评分基于 WCAG 2.1 标准。AA 级要求普通文本对比度 4.5:1、大文本 3:1;AAA 级要求普通文本 7:1、大文本 4.5:1。