mcpField
D
design-guide

design-guide

github.com/mosif16设计与 UI1876 次安装48 周前更新
代码仓库

关于 design-guide

design-guide 是面向 SwiftUI、Android 和 Web 界面开发的 UI 设计技能,提供平台相关的设计指导与组件模板,并涵盖布局、字体、配色和交互状态检查。

主要功能

  1. 01跨平台 UI 设计原则
  2. 02配色与间距指导
  3. 03字体和阴影规范
  4. 04交互状态要求
  5. 05按钮、卡片和表单模板

适用场景

  1. 01规划跨平台一致的 UI
  2. 02为界面选择配色和间距
  3. 03实现常见 UI 组件
  4. 04检查可访问性与交互状态

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mosif16/codex-skills --skill design-guide

安装后在 Claude Code 中输入/design-guide确认已加载。

附带文件references/color-palettes.mdreferences/component-templates.md

详细介绍

设计指南

全面的设计系统,确保你构建的每个 UI 在所有平台(SwiftUI、Android Studio、Web 应用)上都现代、专业且风格统一。

附带资源

此技能包含其他参考资料:

  • references/color-palettes.md - 详细的配色方案、强调色选项和平台专属的颜色实现示例。选择或实现颜色时可参考。
  • references/component-templates.md - 适用于 SwiftUI、Android Compose 和 React 的按钮、卡片、表单和导航即用代码模板。实现特定组件时可参考。

核心设计原则

1. 简洁极简
  • 充分留白
  • 避免界面杂乱
  • 每个屏幕/区域只有一个主要操作
  • 移除不必要的装饰元素
  • 让内容有呼吸感
2. 配色方案

中性色基础:

  • 使用灰色和灰白色作为基础
  • 白色:#FFFFFF
  • 浅灰色:#F5F5F5、#EEEEEE
  • 中灰色:#9E9E9E、#757575
  • 深灰色:#424242、#212121
  • 慎用纯黑色:#000000

强调色:

  • 为应用选择一种强调色
  • 少量用于 CTA、重要操作和关键信息
  • 合适的强调色选项:翡翠绿(#10B981)、靛蓝(#6366F1)、玫瑰红(#F43F5E)、琥珀色(#F59E0B)
  • 切勿使用常见的紫/蓝渐变

颜色使用规则:

  • 80% 中性色、15% 次级中性色、5% 强调色
  • 背景:浅灰色或白色
  • 文本:浅色背景上使用深灰色
  • 交互元素:强调色
  • 边框/分隔线:极浅灰色(#E5E5E5)
3. 间距系统(8px 网格)

始终使用 8 的倍数:

  • 8px:紧凑间距(图标内边距、行内元素)
  • 16px:标准间距(按钮内边距、表单字段间距)
  • 24px:区域间距(卡片内部内边距)
  • 32px:组件间距(卡片、区域之间)
  • 48px:主要区域分隔
  • 64px:屏幕级间距(外边距)

应用方式:

  • 大多数容器的内边距:16px 或 24px
  • 主要区域之间的外边距:32px
  • 元素之间的间距:标准为 16px,紧凑组合为 8px
  • 切勿使用 13px 或 27px 等任意数值
4. 字体排印

层级:

  • H1:32px - 40px,加粗,少用(仅用于页面标题)
  • H2:24px - 28px,半粗体(区域标题)
  • H3:20px - 24px,半粗体(子区域)
  • 正文:16px - 18px,常规(为确保可读性,最小为 16px)
  • 小号:14px,常规(说明文字、元数据)
  • 极小号:12px,常规(仅用于法律文本,少用)

字体规则:

  • 每个项目最多使用 2 种字体
  • 一种用于标题(可使用展示字体)
  • 一种用于正文(必须易于阅读)
  • 推荐搭配:
    • Inter + Inter(同一字体系列,使用不同字重)
    • SF Pro Display + SF Pro Text(Apple 平台)
    • Roboto + Roboto(Android)
    • 始终可以使用系统字体

行高:

  • 标题:1.2 - 1.3
  • 正文:1.5 - 1.6
  • 小号文本:1.4
5. 阴影

轻柔而非厚重:

  • 小阴影:0 1px 3px rgba(0,0,0,0.12)
  • 中阴影:0 4px 6px rgba(0,0,0,0.1)
  • 大阴影:0 10px 15px rgba(0,0,0,0.1)
  • 浮动阴影:0 20px 25px rgba(0,0,0,0.1)

使用场景:

  • 卡片:使用轻微阴影或边框,二者不要同时使用
  • 按钮:悬停时使用非常轻微的阴影
  • 模态框/对话框:中阴影
  • 下拉菜单:中阴影
  • **避免:**厚重的投影、内阴影、多重阴影
6. 圆角

圆角半径指南:

  • 小型元素(按钮、输入框):6px - 8px
  • 卡片、容器:8px - 12px
  • 大型面板:12px - 16px
  • 圆形元素(头像、图标按钮):50% 或 9999px

不要过度使用:

  • 不必为所有元素添加圆角
  • 以下元素可以使用直角:
    • 屏幕边缘
    • 全宽区域
    • 数据表格
    • 导航栏
7. 交互状态

每个交互元素都必须具备:

按钮:

  • 默认:基础颜色、微妙的阴影
  • 悬停:颜色稍深(10%),提升阴影效果
  • 激活:呈现按下状态,颜色更深(20%)
  • 禁用:40% 不透明度,不响应悬停,不显示指针光标
  • 焦点:可见轮廓(2px 强调色,偏移 2px)

表单字段:

  • 默认:浅灰色边框(#E5E5E5)
  • 焦点:强调色边框(2px),移除阴影
  • 错误:红色边框,下方显示错误文本
  • 禁用:灰色背景,不可交互
  • 有效:微妙的绿色勾号(可选)

链接:

  • 默认:强调色,悬停时添加下划线
  • 已访问:稍显柔和的强调色
  • 切勿使用:蓝色 #0000FF(除非这是你的强调色)

卡片:

  • 默认:微妙的阴影或边框
  • 悬停:提升效果,阴影稍强
  • 激活:立即反馈
8. 移动优先思维

始终先针对移动端设计,再逐步扩展:

  • 触控目标至少为 44x44px(iOS)、48x48px(Android)
  • 可点击元素之间留有充足间距(至少 8px)
  • 便于拇指操作的导航(屏幕底部)
  • 移动端采用单列布局
  • 响应式断点:
    • 移动端:< 640px
    • 平板:640px - 1024px
    • 桌面端:> 1024px

组件模式

按钮

主按钮(主要操作):

Background: Accent color
Text: White
Padding: 12px 24px (vertical, horizontal)
Border radius: 8px
Shadow: 0 1px 3px rgba(0,0,0,0.12)
Font: 16px, semibold
Hover: Darken 10%, lift shadow

次要按钮(替代操作):

Background: White
Text: Accent color
Border: 1px solid accent color
Padding: 12px 24px
Border radius: 8px
Hover: Light accent background (10% opacity)

幽灵按钮(次要操作):

Background: Transparent
Text: Dark gray
No border
Padding: 12px 24px
Hover: Light gray background

不良按钮示例:

  • ❌ 渐变背景
  • ❌ 一个按钮中使用多种颜色
  • ❌ 内边距过小(显得拥挤)
  • ❌ 没有悬停状态
  • ❌ 文本过小(< 14px)
卡片

标准卡片:

Background: White
Border: 1px solid #E5E5E5 OR subtle shadow (not both)
Border radius: 12px
Padding: 24px
Margin bottom: 16px

OR

Background: White
Shadow: 0 4px 6px rgba(0,0,0,0.1)
Border radius: 12px
Padding: 24px
Margin bottom: 16px

卡片内容间距:

  • 标题与副标题之间:8px
  • 副标题与内容之间:16px
  • 内容区块之间:24px
  • 内容与操作之间:24px

不良卡片示例:

  • ❌ 同时使用边框和阴影
  • ❌ 阴影过重
  • ❌ 内边距不一致
  • ❌ 颜色过多
表单

表单字段:

Label: 14px, semibold, dark gray, margin bottom 8px
Input: 
  - Height: 44px minimum
  - Padding: 12px 16px
  - Border: 1px solid #E5E5E5
  - Border radius: 8px
  - Background: White
  - Font: 16px
  - Focus: Accent border, no shadow
  
Error state:
  - Border: Red
  - Helper text: Red, 14px, margin top 4px
  
Field spacing: 24px between fields

表单布局:

  • 标签置于输入框上方(不要放在旁边)
  • 清晰标示必填项
  • 将相关字段分组
  • 留有充足间距(至少 24px)
  • 提交按钮:移动端占满宽度,桌面端使用自动宽度

不良表单示例:

  • ❌ 标签放在输入框内(占位符文本不能替代标签)
  • ❌ 文本过小(< 16px)
  • ❌ 间距拥挤
  • ❌ 没有错误状态
  • ❌ 必填字段标示不清
导航

顶部导航:

Height: 64px
Background: White
Border bottom: 1px solid #E5E5E5
Padding: 0 32px (desktop), 0 16px (mobile)
Logo: 32px height
Links: 16px, medium weight, dark gray
Active link: Accent color

底部导航(移动端):

Height: 56px
Background: White
Shadow: 0 -4px 6px rgba(0,0,0,0.1)
Icons: 24px, centered
Labels: 12px (optional)
Active: Accent color

设计质量检查清单

在认为任何 UI 已完成之前,请确认:

布局:

  • 整体留白充足
  • 使用 8px 网格保持间距一致
  • 不杂乱、不拥挤
  • 视觉层级清晰

颜色:

  • 使用中性色作为基础色(灰色/白色)
  • 只使用一种强调色
  • 不使用渐变(除非有明确要求)
  • 对比度充足(至少符合 WCAG AA)

排版:

  • 层级清晰(字号 + 字重)
  • 正文文本至少为 16px
  • 字体系列最多使用 2 种
  • 行高易于阅读

交互元素:

  • 悬停状态清晰
  • 激活状态清晰
  • 禁用状态清晰
  • 焦点状态清晰(键盘导航)

组件:

  • 按钮内边距合适
  • 表单标签清晰、间距合理
  • 卡片使用边框或阴影,不要两者兼用
  • 阴影微妙

移动端:

  • 触控目标至少为 44x44px
  • 在小屏幕上正常使用
  • 触控区域间距充足

平台专属说明

SwiftUI
  • 使用 .padding(),并采用 8px 网格中的明确数值
  • 使用带十六进制初始化器的 Color,确保颜色一致
  • 利用 @Environment(\.colorScheme) 支持深色模式
  • 使用 SF Symbols 图标(始终保持一致)
Android Studio
  • 使用 dp 单位(在 mdpi 上,1dp ≈ 1px)
  • 可以使用 Material Design 3 组件,但需自定义颜色
  • 使用 dimens.xml 定义间距常量
  • 利用 Compose 构建现代 UI
Web(HTML/CSS/React)
  • 使用 CSS 变量定义颜色和间距
  • 使用移动优先的媒体查询
  • 使用语义化 HTML
  • 按照本指南使用 Tailwind CSS 类

应避免的反模式

绝对不要这样做:

  • ❌ 到处使用彩虹渐变
  • ❌ 每个元素都使用不同的颜色
  • ❌ 默认使用紫色/蓝色渐变
  • ❌ 使用难以辨认的小字(正文小于 16px)
  • ❌ 间距不一致(随意设置数值)
  • ❌ 使用厚重的阴影
  • ❌ 所有元素都使用过度圆润的样式
  • ❌ 缺少交互状态
  • ❌ 在同一个元素上同时使用边框和阴影
  • ❌ 布局杂乱,毫无留白
  • ❌ 使用超过 2 种字体
  • ❌ 触控目标小于 44px

快速参考

间距: 8、16、24、32、48、64px 排版: 正文至少 16px,最多使用 2 种字体 颜色: 中性色为基础色 + 一种强调色 阴影: 仅使用轻微阴影 圆角: 大多数元素使用 6-12px 交互状态: 始终包含悬停、激活、禁用和聚焦状态

创建任何 UI 组件前,务必先参考本指南。保持一致是打造专业设计的关键。

评论

支持 Markdown