apple-hig

Apple Human Interface Guidelines 实战参考。涵盖 macOS/iOS 设计规范、System Colors、排版层级、控件规格、布局间距、Dark Mode 适配、辅助功能和平台差异。适用于开发 macOS 桌面应用(Electron/SwiftUI/AppKit)和 iOS 应用时的 UI 设计决策。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "apple-hig" with this command: npx skills add bingfoon/apple-hig

Apple Human Interface Guidelines 实战参考

从 Apple 官方 HIG 和生产级桌面应用实战中提炼的设计规范速查。

适用场景

  • macOS 桌面应用 UI 设计(Electron / SwiftUI / AppKit)
  • iOS 应用 UI 设计
  • 需要"原生感"的跨平台应用
  • 审计现有 UI 是否符合 Apple 设计语言

不适用

  • Android / Windows 应用(参考 Material Design / Fluent Design)
  • Web 专属设计(不追求 native 感)

1. 核心设计原则

Apple HIG 的三大支柱:

原则含义实践
Clarity(清晰)文字可读、图标清晰、功能一目了然用 SF 字体、标准图标、足够对比度
Deference(顺从)UI 服务内容,不喧宾夺主减少装饰、留白充足、动画克制
Depth(层次)通过视觉层级传达结构阴影、模糊、动画暗示前后关系

与其他平台的根本区别

Apple: 做减法,每一个像素都要有理由
Material: 做加法,用动效和色彩引导注意力
Fluent: 做透明,用 Acrylic/Mica 融入环境

2. 颜色系统

Apple System Colors

这些颜色在 Light/Dark 模式下自动适配,优先使用

颜色Light HEXDark HEX用途
Blue#007AFF#0A84FF主强调色、链接、可交互元素
Green#34C759#30D158成功、确认
Orange#FF9500#FF9F0A警告
Red#FF3B30#FF453A错误、危险操作、删除
Purple#AF52DE#BF5AF2辅助强调
Teal#5AC8FA#64D2FF次要信息
Yellow#FFCC00#FFD60A注意
Pink#FF2D55#FF375F情感、收藏
Indigo#5856D6#5E5CE6特殊强调

语义色

用途LightDark
Label(主文字)#000000#FFFFFF
Secondary Labelrgba(0,0,0,0.5)rgba(255,255,255,0.55)
Tertiary Labelrgba(0,0,0,0.25)rgba(255,255,255,0.25)
Quaternary Labelrgba(0,0,0,0.1)rgba(255,255,255,0.1)
Separatorrgba(0,0,0,0.1)rgba(255,255,255,0.1)
Background(窗口)#FFFFFF#1E1E1E
Secondary BG#F5F5F5#2C2C2E
Tertiary BG#FFFFFF#3A3A3C

使用原则

✅ 用 System Colors 做交互元素的强调色
✅ 用语义色做文字、背景、分隔线
❌ 不要硬编码 #007AFF — 在 Dark Mode 下它应该变成 #0A84FF
❌ 不要用 System Colors 做静态数据展示(如参数值 "0.3"、"18s")

铁律:主强调色严格保留给强交互元素(按钮、Checkbox 选中、Slider 填充段、Focus Ring),不用于静态文字/数值。


3. 排版

字体栈

font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif;

macOS 上会自动使用 SF Pro,iOS 上使用 SF。不要手动指定 SF Pro 的 TTF 文件。

字号层级(macOS)

层级字号字重颜色用途
Large Title26pxBoldLabel页面大标题(iOS 常用,macOS 少用)
Title 122pxRegularLabel区块标题
Title 217pxRegularLabel次要标题
Title 3 / Headline15pxSemiboldLabel工具栏标题、卡片标题
Body13pxRegularLabel正文、控件默认
Callout12pxRegularLabel注释文字
Subheadline11pxRegularSecondary Label辅助说明
Footnote10pxRegularTertiary Label脚注、时间戳
Caption 110pxRegularTertiary Label图片说明
Caption 210pxMediumTertiary Label表格表头

字号层级(iOS)

层级字号字重
Large Title34pxBold
Title 128pxRegular
Title 222pxRegular
Title 320pxRegular
Headline17pxSemibold
Body17pxRegular
Callout16pxRegular
Subheadline15pxRegular
Footnote13pxRegular
Caption 112pxRegular
Caption 211pxRegular

实战要点

  • macOS 默认正文 13px,iOS 默认正文 17px — 差异大,不要混用
  • Section 标题用 11px font-medium text-black/40 降噪(macOS),禁止 uppercase tracking-wide font-bold
  • 静态数值(Slider 值、时间)用 12px font-mono text-black/50
  • 辅助说明 10-11px font-normal text-black/25~30

4. 控件规格

macOS 标准控件尺寸

控件高度内边距圆角
Button(Regular)22px12px 水平5px
Button(Large)28px16px 水平7px
TextField22px4px 内5px
Checkbox14×14px3px
Radio16×16px(circle)50%
Switch(macOS Ventura+)20×34px10px
Slider4px 轨道高2px
Segmented Control22px6px 水平5px
Popup Button22px内含箭头5px

iOS 标准控件

控件最小高度触控目标
Button44px44×44px
TextField44px
Navigation Bar44px
Tab Bar49px
Table Row44px全宽

⚠️ 触控目标铁律

最小触控目标:44×44pt(iOS) / 24×24px(macOS 鼠标)

即使视觉上更小,可点击区域也必须达到最小尺寸。

Segmented Control(macOS 仿真规格)

属性
底座色#e8e8ed
底座内距p-[3px]
底座圆角rounded-lg
选中药丸bg-white rounded-[7px]
药丸阴影0 1px 3px rgba(0,0,0,0.08), 0 0.5px 1px rgba(0,0,0,0.12)
文字text-[13px] font-medium
选中文字text-[#1d1d1f]
未选中文字text-black/50
布局flex-1 平分等宽

不要替换为 Tabs 或 RadioGroup — Segmented Control 是 2-5 个选项的切换专用控件。


5. 布局与间距

macOS 间距系统

间距用途
最小间距4px相关元素间
控件间距8px按钮组、表单字段间
区块间距12-16px功能区块间
大区块间距20-24px页面 section 间
窗口内边距20px窗口内容边距

窗口

属性macOSiOS
最小宽度400px
标题栏高度22px(标准)/ 52px(工具栏)
Sidebar 宽度200-260px(标准)
Safe Area顶部/底部刘海

容器层级

✅ 平铺式布局 — 内容直接放在白底上,用间距和微弱分隔线区分
❌ 框套框 — Card 里面套 Card,增加视觉噪音

实战规则

  • 配置参数直接平铺,不要用 border + padding 整体包裹
  • 列表 Header 可用极弱底纹(bg-[#f5f5f7]/50)产生软分隔
  • 去掉灰色嵌套面板(bg-s-bg-subtle Card 套 Card)

6. 图标

SF Symbols

Apple 提供 5000+ 个 SF Symbols 图标,与 SF 字体匹配。

使用场景:macOS / iOS 原生应用
替代方案:Lucide Icons(Web/Electron,风格接近 SF Symbols)

图标规格

场景尺寸线宽
工具栏16×16px1.5px
导航项20×20px1.5px
Tab Bar(iOS)25×25px
空状态48-64px1px

颜色规则

✅ 可交互图标:System Blue(或当前 accent color)
✅ 信息图标:Secondary Label 色
✅ 状态图标:对应 System Color(Green=成功, Red=错误)
❌ 禁止给信息图标上彩色 — 只有可交互/状态图标用色

7. 动画与过渡

标准时长

类型时长缓动
微交互(hover, press)100-200msease-out
状态切换200-300msease-in-out
页面转场300-500msease-in-out
弹窗出现200msease-out
弹窗消失150msease-in

Apple 标准缓动

/* macOS 标准 */
--apple-ease: cubic-bezier(0.25, 0.1, 0.25, 1);

/* Spring-like(弹性) */
--apple-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

动画原则

✅ 动画要有目的 — 引导注意力、暗示关系
✅ 支持 prefers-reduced-motion — 简化或禁用动画
❌ 不要为了炫技加动画 — Apple 的动画是"感觉到但说不出"的
❌ 不要用 linear 缓动 — 感觉机械

8. Dark Mode

设计原则

Dark Mode ≠ 反转颜色
Dark Mode = 重新设计的配色方案
原则实践
用语义色不硬编码 #FFFFFF / #000000
降低饱和度Dark 模式中高饱和度色块刺眼
提高对比度文字/图标的对比度要求更严格
阴影不可见Dark 模式中阴影效果弱,改用微弱边框或高光

macOS Dark Mode 特殊处理

/* Light: 阴影分层 */
box-shadow: 0 1px 3px rgba(0,0,0,0.08);

/* Dark: 阴影无效,改用微弱边框 */
border: 1px solid rgba(255,255,255,0.06);

适配检查

✅ 所有文字在 Dark 背景上对比度 ≥ 4.5:1
✅ 分隔线/边框在两种模式下都可见
✅ 图标在两种模式下都清晰
✅ 品牌色在 Dark 模式下略微提亮

9. 辅助功能(Accessibility)

WCAG 对比度

级别正文大字体(≥18px bold / ≥24px)
AA≥ 4.5:1≥ 3:1
AAA≥ 7:1≥ 4.5:1

Apple 特有要求

✅ 支持 Dynamic Type(iOS)— 用户可全局调整字体大小
✅ 支持 VoiceOver — 所有可交互元素有 aria-label
✅ 支持 Reduce Motion — 简化动画
✅ 支持 Increase Contrast — 提高边框/文字对比度
✅ 支持键盘导航(macOS)— Tab 遍历所有控件

Focus Ring

/* macOS 标准 Focus Ring */
outline: none;
box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.3);

/* 或用 Tailwind */
ring-[var(--color-primary)]/30  /* 不带 ring-offset */

所有可聚焦控件统一此规则。


10. macOS vs iOS 差异速查

差异点macOSiOS
正文字号13px17px
最小交互目标24px44px
导航模式Sidebar + TabTab Bar + Navigation Stack
窗口管理多窗口单窗口全屏
输入方式鼠标 + 键盘手指触控
Hover 状态必须有没有(无鼠标)
Right-click上下文菜单长按菜单
滚动条自动隐藏 / 始终显示始终自动隐藏
标题栏红黄绿三按钮(左上角)
通知右上角通知中心顶部横幅

跨平台设计策略

如果是 Electron 桌面应用:
  → macOS: 追求 native 感,使用 Segmented Control、Sidebar
  → Windows: 可以偏 Fluent,也可以保持统一(大多数 Electron 应用选后者)

如果是 React Native / Flutter:
  → 每个平台用对应的组件库(iOS: Cupertino / Android: Material)
  → 或用自定义设计语言统一(如 Notion、Figma 的做法)

11. HIG 审计 Checklist

设计审计五维度

D1 — 容器层级与分组

  • 无框套框(Card 套 Card)
  • 配置参数平铺,不过度包裹
  • 列表 Header 用弱底纹分隔,非强边框

D2 — 排版降噪

  • Section 标题用 11px font-medium text-black/40(macOS)
  • 禁止 uppercase tracking-wider font-bold
  • Card header 高度适当(macOS: ~40px)

D3 — 控件选择

  • 2-5 选项切换用 Segmented Control
  • 数值显示用纯文字 font-mono text-black/50
  • 主按钮用 accent color,不用品牌色

D4 — 交互反馈

  • 所有可交互元素有 hover 状态(macOS)
  • Focus Ring 统一使用 accent color /30
  • 动画时长 100-300ms,缓动用 ease-out

D5 — 状态表达

  • 日志/状态用纯文字颜色区分(Apple System Colors)
  • 时间戳 text-black/20 text-[10px]
  • 空状态克制:浅灰图标 + 简短文字
  • Loading 用 skeleton / spinner,不留空白

通用审计

  • 所有文字对比度 ≥ 4.5:1
  • 触控目标 ≥ 44pt(iOS)/ 24px(macOS)
  • 支持 prefers-reduced-motion
  • 支持 prefers-color-scheme(Dark Mode)
  • 键盘可导航所有控件(macOS)

12. 快速参考卡片

色彩

主强调: #007AFF (Light) / #0A84FF (Dark)
成功:   #34C759 / #30D158
警告:   #FF9500 / #FF9F0A
错误:   #FF3B30 / #FF453A

字体

macOS 正文: 13px Regular
iOS 正文:   17px Regular
字体栈:     -apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui

间距

最小: 4px | 控件间: 8px | 区块间: 16px | 窗口边距: 20px

动画

微交互: 150ms ease-out
状态切换: 250ms ease-in-out
标准缓动: cubic-bezier(0.25, 0.1, 0.25, 1)

来源

Apple Human Interface Guidelines (developer.apple.com/design/human-interface-guidelines) + 生产级 macOS Electron 应用实战中的像素级校准经验。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Ai Competitor Analyzer

提供AI驱动的竞争对手分析,支持批量自动处理,提升企业和专业团队分析效率与专业度。

Registry SourceRecently Updated
General

Ai Data Visualization

提供自动化AI分析与多格式批量处理,显著提升数据可视化效率,节省成本,适用企业和个人用户。

Registry SourceRecently Updated
General

Ai Cost Optimizer

提供基于预算和任务需求的AI模型成本优化方案,计算节省并指导OpenClaw配置与模型切换策略。

Registry SourceRecently Updated