适合场景
暗黑 / 深色 / 夜间
优雅的深色界面设计,低对比度层次、微妙的边框和高亮。适合开发工具、专业应用、深夜阅读模式。
适合场景
暗黑 / 深色 / 夜间
设计重点
使用深色背景 bg-slate-900, bg-gray-900, bg-[#0f172a]
注意事项
禁止使用纯白文字 text-white(过于刺眼)
AI 实现文档
默认用硬性提示词让 AI 直接生成前端;Design Spec 用来理解、改写和审核风格;Creative Brief 用来早期探索方向。
默认使用它:复制后追加具体需求,让 AI 直接生成一致、可落地的前端。
什么时候用
怎么用
STYLEKIT_STYLE_REFERENCE
style_name: 暗黑模式
style_slug: dark-mode
style_source: /styles/dark-mode
# Hard Prompt
## 什么时候用
当你希望 AI 严格按风格规则生成代码时使用。它是生产界面最稳的默认选择。
## 怎么用
- 把完整提示词复制到 ChatGPT、Claude、Cursor 或其他编码助手。
- 在提示词后追加具体产品、页面或组件需求。
- 生成后按禁止项和交互状态检查,确认没有风格漂移。
请严格遵守以下风格规则并保持一致性,禁止风格漂移。
## 执行要求
- 优先保证风格一致性,其次再做创意延展。
- 遇到冲突时以禁止项为最高优先级。
- 输出前自检:颜色、排版、间距、交互是否仍属于该风格。
## Style Rules
风格:Dark Mode(暗色模式)
类型:专业的暗色界面设计
必须使用:
- 深色背景:bg-slate-900、bg-gray-900、bg-[#0f172a]
- 卡片背景:静止时 bg-slate-800/50(半透明),hover 时 bg-slate-800
- 低对比度边框:静止时 border-slate-700,hover 时 border-slate-500(边框点亮效果)
- 文字层级:text-slate-100(主要)、text-slate-400(次要);次要文字 hover 时提亮为 group-hover:text-slate-300
- 高饱和度强调色:blue-500、green-500
- 按钮的内嵌顶边高光:shadow-[inset_0_1px_0_rgba(255,255,255,0.15)]
- hover 状态:hover:bg-slate-800、hover:bg-white/5
- 标准圆角:rounded-lg、rounded-xl
必须避免:
- 纯白色文字(过于刺眼)
- 高对比度边框
- 禁止纯黑色背景(#000000)
- 深色背景上使用深色文字
- 过多的高亮颜色
- 浅色阴影(浅色阴影在深色背景上不可见)
- 按钮缺少 active:scale-[0.98](没有触觉确认)
- focus:ring 缺少 focus:ring-offset-slate-900(焦点环在深色背景上不可见)
色彩层级:
- 背景:slate-900(#0f172a)
- 表面:slate-800/50 → hover 时 slate-800
- 边框:slate-700 → hover 时 slate-500
- 主要文字:slate-100 → group-hover 时 white
- 次要文字:slate-400 → group-hover 时 slate-300
- 强调色:blue-500、green-500
字体排版:
- 标题:font-semibold text-slate-100
- 正文:text-slate-300 或 text-slate-400
## 绝对禁止
- 禁止使用纯白文字 text-white(过于刺眼)
- 禁止使用高对比度边框
- 禁止使用纯黑背景 #000000(过于沉闷)
- 禁止在深色背景上使用深色文字
- 禁止高亮色使用过多
- 禁止阴影使用浅色(深色背景上用浅色阴影无法体现层次)
- 禁止按钮缺少 active:scale-[0.98](按钮需要触觉确认,否则如同装饰)
- 禁止 focus:ring 缺少 focus:ring-offset-slate-900(暗色背景上焦点环必须与元素分离才可见)
## 必须遵守
- 使用深色背景 bg-slate-900, bg-gray-900, bg-[#0f172a]
- 卡片使用略浅的背景 bg-slate-800/50,hover 时提亮 hover:bg-slate-800
- 边框使用低对比度 border-slate-700,hover 时照亮 hover:border-slate-500
- 文字使用 text-slate-100 主要, text-slate-400 次要,group-hover 时次要文字提亮 group-hover:text-slate-300
- 高亮色保持高饱和度 blue-500, green-500
- 按钮使用内发光 shadow-[inset_0_1px_0_rgba(255,255,255,0.15)] 模拟暗色光源
- 按钮必须有 active:scale-[0.98] 触觉按压确认
- 所有可交互元素必须有 focus:ring-2 focus:ring-offset-2 focus:ring-offset-slate-900
- 卡片 hover 时 hover:-translate-y-0.5 + 深色外阴影上浮
- 使用 rounded-lg 或 rounded-xl 圆角
## 动效与交互规则
- 光照物理:hover 时,边框从 slate-700 提亮到 slate-500(hover:border-slate-500)。这模拟的是附近光源照亮卡片边缘的效果——而不是背景色的变化。再配合 hover:bg-slate-800(表面轻微提亮),整体效果就是表面正在捕捉光线。
- 文字点亮:次要文字(text-slate-400)过渡为 group-hover:text-slate-300。标题文字(text-slate-200)过渡为 group-hover:text-white。使用 transition-colors duration-200。卡片必须使用 group 类。
- 内嵌高光按钮:主要按钮静止时使用 shadow-[inset_0_1px_0_rgba(255,255,255,0.15)](顶边高光,模拟头顶光源)。hover 时:shadow-[inset_0_1px_0_rgba(255,255,255,0.2),0_0_10px_rgba(59,130,246,0.3)]——光晕增强并向外扩散。active 时:shadow-[inset_0_2px_4px_rgba(0,0,0,0.3)]——内凹阴影模拟按钮被物理按下的效果。
- 触觉确认:所有按钮都必须使用 active:scale-[0.98]。这 2% 的缩放幅度是"按下已发生"的最低限度信号。缺少它,深色按钮会显得完全没有反馈。
- 焦点环可见性:务必将 focus:ring-2 与 focus:ring-offset-2 focus:ring-offset-slate-900 搭配使用。缺少 ring-offset-slate-900,焦点环会与深色背景融为一体而变得不可见——违反 WCAG 2.1 AA。
- 卡片抬升:hover:-translate-y-0.5 + hover:shadow-[0_8px_30px_rgba(0,0,0,0.5)]——这一深色阴影强化了整体的暗色环境。切勿在深色背景上使用浅色阴影。
- 缓动:按钮和交互控件使用 duration-200 ease-out;卡片级过渡使用 duration-300 ease-out。时长永远不超过 duration-300。
## 自检清单
生成代码后,请逐项确认:
1. 所有按钮都有 active:scale-[0.98]
2. 所有可聚焦元素都有 focus:ring-2 focus:ring-{color}-500 focus:ring-offset-2 focus:ring-offset-slate-900
3. 卡片使用 group 类;文字使用 group-hover:text-* 实现点亮效果
4. 卡片 hover 时:边框提亮(hover:border-slate-500)+ 背景变亮(hover:bg-slate-800)+ hover:-translate-y-0.5
5. 按钮阴影:内嵌阴影表现光晕,深色阴影表现抬升
6. 任何地方都不使用浅色阴影
---
# Dark Mode (暗黑模式) Design System
> 优雅的深色界面设计,低对比度层次、微妙的边框和高亮。适合开发工具、专业应用、深夜阅读模式。
## 核心理念
Dark Mode 设计强调在深色背景上创造舒适的阅读体验和清晰的信息层次。
核心理念:
- 护眼舒适:降低屏幕亮度,减少视觉疲劳
- 层次分明:通过灰度和透明度区分层级
- 高亮聚焦:使用高亮色引导用户注意力
- 专业氛围:传达技术感和专业感
设计原则:
- 视觉一致性:所有组件必须遵循统一的视觉语言,从色彩到字体到间距保持谐调
- 层次分明:通过颜色深浅、字号大小、留白空间建立清晰的信息层级
- 交互反馈:每个可交互元素都必须有明确的 hover、active、focus 状态反馈
- 响应式适配:设计必须在移动端、平板、桌面端上保持一致的体验
- 无障碍性:确保色彩对比度符合 WCAG 2.1 AA 标准,所有交互元素可键盘访问
---
## Token 字典(精确 Class 映射)
### 边框
```
宽度: border
颜色: border-slate-700
圆角: rounded-lg
```
### 阴影
```
小: shadow-none
中: shadow-none
大: shadow-lg shadow-black/20
悬停: shadow-none
聚焦: ring-1 ring-blue-500
```
### 交互效果
```
悬停位移: (无)
悬停缩放: (无)
悬停透明度: hover:bg-slate-700
过渡动画: transition-colors duration-200
按下状态: active:scale-95
```
### 字体
```
标题: font-semibold
正文: font-normal
等宽: font-mono
```
### 字号
```
Hero: text-4xl md:text-5xl lg:text-6xl
H1: text-3xl md:text-4xl
H2: text-2xl md:text-3xl
H3: text-xl md:text-2xl
正文: text-sm md:text-base
小字: text-xs
```
### 间距
```
Section: py-12 md:py-16 lg:py-20
容器: px-4 md:px-6 lg:px-8
卡片: p-6
小间距: gap-4
中间距: gap-6
大间距: gap-8
```
### 颜色角色
```
背景主色: bg-slate-900
背景辅色: bg-slate-800
背景强调色: bg-blue-600, bg-green-500, bg-amber-500
正文主色: text-slate-100
正文辅色: text-slate-300
正文弱化色: text-slate-400
按钮主色: bg-blue-600 text-white hover:bg-blue-500
按钮辅色: bg-slate-700 text-slate-200 hover:bg-slate-600
```
---
## [FORBIDDEN] 绝对禁止
以下 class 在本风格中**绝对禁止使用**,生成时必须检查并避免:
### 禁止的 Class
- `bg-white`
- `bg-gray-50`
- `border-black`
- `shadow-white`
- `bg-black`
### 禁止的模式
- 匹配 `^text-white$`
- 匹配 `^bg-white`
- 匹配 `^bg-gray-[1-3]00`
- 匹配 `^bg-black$`
### 禁止原因
- `text-white`: Use text-slate-100 for softer contrast
- `bg-white`: Dark mode uses dark backgrounds
- `bg-black`: Use bg-slate-900 for better depth
> WARNING: 如果你的代码中包含以上任何 class,必须立即替换。
---
## [REQUIRED] 必须包含
### 按钮必须包含
```
px-4 py-2
rounded-lg
font-medium
transition-colors duration-200
```
### 卡片必须包含
```
bg-slate-800
border border-slate-700
rounded-xl
```
### 输入框必须包含
```
bg-slate-800
border border-slate-700
rounded-lg
text-slate-100
placeholder:text-slate-500
focus:border-blue-500
focus:ring-1 focus:ring-blue-500
```
---
## [COMPARE] Dark Mode 错误 vs 正确对比
以下错误示例只代表“未经过当前风格适配的通用默认值”,不要把错误示例当成视觉建议。
### 按钮
[WRONG] **错误示例**(通用组件库默认样式,不要直接复制):
```html
<button class="{GENERIC_LIBRARY_BUTTON_DEFAULT}">
点击我
</button>
```
[CORRECT] **正确示例**(使用当前风格的 token):
```html
<button class="px-4 py-2 rounded-lg font-medium transition-colors duration-200 bg-blue-600 text-white hover:bg-blue-500">
点击我
</button>
```
### 卡片
[WRONG] **错误示例**(未经当前风格适配的通用卡片):
```html
<div class="{GENERIC_LIBRARY_CARD_DEFAULT}">
<h3>{TITLE}</h3>
</div>
```
[CORRECT] **正确示例**(使用当前风格的 card token):
```html
<div class="bg-slate-800 border border-slate-700 rounded-xl p-6">
<h3 class="font-semibold text-xl md:text-2xl">{TITLE}</h3>
</div>
```
### 输入框
[WRONG] **错误示例**(未经当前风格适配的通用输入框):
```html
<input class="{GENERIC_LIBRARY_INPUT_DEFAULT}" />
```
[CORRECT] **正确示例**(使用当前风格的 input token):
```html
<input class="bg-slate-800 border border-slate-700 rounded-lg text-slate-100 placeholder:text-slate-500 focus:border-blue-500 focus:ring-1 focus:ring-blue-500" placeholder="{PLACEHOLDER}" />
```
---
## [TEMPLATES] Dark Mode 页面骨架模板
以下骨架只使用当前风格的 token。替换 `{PLACEHOLDER}` 时,不要移除或替换这些 token:
### 导航栏骨架
```html
<nav class="bg-slate-900 text-slate-100 border border-slate-700 px-4 md:px-6 lg:px-8">
<div class="flex items-center justify-between max-w-6xl mx-auto gap-6">
<a href="/" class="font-semibold text-xl md:text-2xl">
{LOGO_TEXT}
</a>
<div class="flex gap-6 font-normal text-xs">
{NAV_LINKS}
</div>
</div>
</nav>
```
### Hero 区块骨架
```html
<section class="bg-blue-600 text-slate-100 py-12 md:py-16 lg:py-20 px-4 md:px-6 lg:px-8">
<div class="max-w-4xl mx-auto">
<h1 class="font-semibold text-4xl md:text-5xl lg:text-6xl">
{HEADLINE}
</h1>
<p class="font-normal text-sm md:text-base max-w-xl">
{SUBHEADLINE}
</p>
<button class="px-4 py-2 rounded-lg font-medium transition-colors duration-200 bg-blue-600 text-white hover:bg-blue-500">
{CTA_TEXT}
</button>
</div>
</section>
```
### 卡片网格骨架
```html
<section class="bg-slate-900 text-slate-100 py-12 md:py-16 lg:py-20 px-4 md:px-6 lg:px-8">
<div class="max-w-6xl mx-auto">
<h2 class="font-semibold text-2xl md:text-3xl">{SECTION_TITLE}</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Card template - repeat for each card -->
<div class="bg-slate-800 border border-slate-700 rounded-xl p-6">
<h3 class="font-semibold text-xl md:text-2xl">{CARD_TITLE}</h3>
<p class="font-normal text-sm md:text-base text-slate-400">{CARD_DESCRIPTION}</p>
</div>
</div>
</div>
</section>
```
### 表单输入骨架
```html
<input class="bg-slate-800 border border-slate-700 rounded-lg text-slate-100 placeholder:text-slate-500 focus:border-blue-500 focus:ring-1 focus:ring-blue-500" placeholder="{PLACEHOLDER}" />
```
### 页脚骨架
```html
<footer class="bg-slate-800 text-slate-300 py-12 md:py-16 lg:py-20 px-4 md:px-6 lg:px-8">
<div class="max-w-6xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<span class="font-semibold text-xl md:text-2xl">{LOGO_TEXT}</span>
<p class="font-normal text-xs">{TAGLINE}</p>
</div>
<div>
<h4 class="font-semibold text-xl md:text-2xl">{COLUMN_TITLE}</h4>
<ul class="font-normal text-xs">
{FOOTER_LINKS}
</ul>
</div>
</div>
</div>
</footer>
```
---
## [CHECKLIST] Dark Mode 生成后自检清单
**输出代码前,逐项验证当前风格的 token 和规则。如有违反,先修正再交付:**
### Token 检查
- [ ] 按钮包含: `px-4 py-2 rounded-lg font-medium transition-colors duration-200`
- [ ] 卡片包含: `bg-slate-800 border border-slate-700 rounded-xl`
- [ ] 输入框包含: `bg-slate-800 border border-slate-700 rounded-lg text-slate-100 placeholder:text-slate-500 focus:border-blue-500 focus:ring-1 focus:ring-blue-500`
### 禁止项检查
- [ ] 没有使用 `bg-white`
- [ ] 没有使用 `bg-gray-50`
- [ ] 没有使用 `border-black`
- [ ] 没有使用 `shadow-white`
- [ ] 没有使用 `bg-black`
### 风格规则检查
- [ ] 使用深色背景 bg-slate-900, bg-gray-900, bg-[#0f172a]
- [ ] 卡片使用略浅的背景 bg-slate-800/50,hover 时提亮 hover:bg-slate-800
- [ ] 边框使用低对比度 border-slate-700,hover 时照亮 hover:border-slate-500
- [ ] 文字使用 text-slate-100 主要, text-slate-400 次要,group-hover 时次要文字提亮 group-hover:text-slate-300
- [ ] 高亮色保持高饱和度 blue-500, green-500
### 风格漂移检查
- [ ] 没有违反:禁止使用纯白文字 text-white(过于刺眼)
- [ ] 没有违反:禁止使用高对比度边框
- [ ] 没有违反:禁止使用纯黑背景 #000000(过于沉闷)
- [ ] 没有违反:禁止在深色背景上使用深色文字
- [ ] 没有违反:禁止高亮色使用过多
### 通用交付检查
- [ ] 响应式布局在手机、平板和桌面下稳定,没有横向溢出
- [ ] 所有交互元素有清晰焦点、可访问名称和 reduced-motion 方案
- [ ] 文本对比度达到 WCAG AA,且没有用颜色单独传递状态
- [ ] 结果仍然能够一眼识别为 Dark Mode
---
## [EXAMPLES] 示例 Prompt
### 1. 开发者仪表板
生成暗色开发者仪表板
```
Create a developer dashboard using Dark Mode style:
- Sidebar navigation with slate-800 background
- Main content on slate-900
- Metric cards with subtle borders
- Code blocks with syntax highlighting
- Status indicators with colored dots
- Blue accent for primary actions
- Comfortable contrast for long sessions
```
### 2. SaaS 着陆页
生成 暗黑模式风格的 SaaS 产品着陆页
```
Create a SaaS landing page using Dark Mode style with hero section, feature grid, testimonials, pricing table, and footer.
```
### 3. 作品集展示
生成 暗黑模式风格的作品集页面
```
Create a portfolio showcase page using Dark Mode style with project grid, about section, contact form, and consistent visual language.
```
## 绝对禁止(匹配即拒绝)
以下模式一旦出现,视为风格违规——不找借口,直接重写。
- 使用纯白文字 text-white(过于刺眼)
- 使用高对比度边框
- 使用纯黑背景 #000000(过于沉闷)
- 在深色背景上使用深色文字
- 高亮色使用过多
- 阴影使用浅色(深色背景上用浅色阴影无法体现层次)
- 按钮缺少 active:scale-[0.98](按钮需要触觉确认,否则如同装饰)
- focus:ring 缺少 focus:ring-offset-slate-900(暗色背景上焦点环必须与元素分离才可见)
## 自检清单(交付前逐条确认)
如果任何一条不通过,说明风格漂移了——修改后再交付。
- [ ] 没有紫色到蓝色的渐变
- [ ] 没有使用 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 标题上面
- [ ] 禁止使用纯白文字 text-white(过于刺眼)
- [ ] 禁止使用高对比度边框
- [ ] 禁止使用纯黑背景 #000000(过于沉闷)
- [ ] 禁止在深色背景上使用深色文字
- [ ] 禁止高亮色使用过多更多提示词库:全部 UI 提示词 · Tailwind UI 提示词 · 暗色模式提示词
组件模板
暗黑模式三态按钮:顶边内发光模拟光源,hover 时蓝光晕外溢,active:scale-[0.98] 触觉按压,focus:ring-offset-slate-900 确保暗底焦点环可见
真实前端完成度
这层检查这个风格是否已经具备真实网站常见的主题、状态反馈、键盘可访问性和性能约束。
总体覆盖
58%
Fallback 规则
暗色模式
35%
通用组件状态
79%
部分动效规则
70%
部分可访问性
70%
部分性能代价
35%
通用按钮
默认 / 悬停 / 键盘焦点 / 按下 / 禁用
输入框
默认 / 悬停 / 键盘焦点 / 禁用 / 错误
卡片
默认 / 悬停 / 键盘焦点 / 加载中 / 骨架屏
表单
默认 / 键盘焦点 / 禁用 / 加载中 / 错误
常见问题
/* Dark Mode Global Styles */
@layer base {
body {
@apply bg-slate-900 text-slate-100 antialiased;
}
h1, h2, h3, h4 {
@apply font-semibold text-slate-100;
}
::selection {
@apply bg-blue-600 text-white;
}
}
/* Subtle glow for focus states */
.dark-focus-glow:focus {
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3);
}
/* Dark Mode Design Tokens */
:root {
--dark-mode-primary: #3b82f6;
--dark-mode-secondary: #0f172a;
--dark-mode-accent: #22c55e;
--dark-mode-glow: rgba(59, 130, 246, 0.3);
}
@keyframes dark-mode-fade-in {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes dark-mode-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
.dark-mode-card {
position: relative;
overflow: hidden;
}
.dark-mode-card::before {
content: "";
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.3s ease;
background: linear-gradient(135deg, rgba(59, 130, 246, 0.05), transparent);
pointer-events: none;
}
.dark-mode-card:hover::before {
opacity: 1;
}
.dark-mode-gradient {
background: linear-gradient(135deg, #3b82f6, #22c55e);
}
.dark-mode-gradient-text {
background: linear-gradient(135deg, #3b82f6, #22c55e);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.dark-mode-frosted {
backdrop-filter: blur(12px) saturate(180%);
-webkit-backdrop-filter: blur(12px) saturate(180%);
background: rgba(59, 130, 246, 0.08);
}
.dark-mode-accent-corner {
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 0 100%);
}
.dark-mode-animate-in {
animation: dark-mode-fade-in 0.5s ease-out both;
}兼容的布局模式
以下布局模式与 暗黑模式 风格搭配效果良好。
相关风格
探索这些风格获取现成的 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 的技能包
Dark Mode 设计强调在深色背景上创造舒适的阅读体验和清晰的信息层次。
基于颜色对比度和排版可读性的 WCAG 2.1 合规分析。
综合评分
等级: C - 一般
对比度
| 场景 | 颜色 | 比率 | AA | AAA |
|---|---|---|---|---|
| Text on background | /#f1f5f9 / #0f172a | 16.3:1 | ||
| Text on secondary background | /#f1f5f9 / #1e293b | 13.35:1 | ||
| Button primary | /#ffffff / #2563eb | 5.17:1 | ||
| Text on accent 1 | /#f1f5f9 / #2563eb | 4.72:1 | ||
| Text on accent 2 | /#f1f5f9 / #22c55e | 2.08:1 | ||
| Text on accent 3 | /#f1f5f9 / #f59e0b | 1.96:1 |
可读性
分数
82/100
字号
text-sm md:text-base
字重
font-semibold
行高
default
评分基于 WCAG 2.1 标准。AA 级要求普通文本对比度 4.5:1、大文本 3:1;AAA 级要求普通文本 7:1、大文本 4.5:1。