关于 ios-ui-craft
根据屏幕或组件需求创建精细 iOS 界面的设计技能。它引导 Agent 确定统一的视觉方向、编写可运行的 SwiftUI 代码,并通过模拟器截图迭代。
主要功能
- 01视觉方向规划
- 02字体、色彩与动效指南
- 03SwiftUI 界面实现
- 04基于截图的迭代
- 05无障碍与视觉质量检查表
适用场景
- 01设计 iOS 应用屏幕
- 02构建风格鲜明的 SwiftUI 组件
- 03通过模拟器截图检查界面
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill ios-ui-craft安装后在 Claude Code 中输入/ios-ui-craft确认已加载。
详细介绍
iOS UI Craft
打造独具特色、足以斩获 Apple 设计大奖的 iOS 界面。这项技能可生成真正可用的 SwiftUI 代码,并以非凡的细节把控和创意选择,避免千篇一律的 AI 风格。
用户会提供 iOS 需求:需要构建的屏幕、组件、视图或界面,也可能会补充用途、受众或技术限制等背景信息。
设计思考
编写任何代码之前,先理解背景,并确定一个大胆的美学方向:
- 用途:这个界面要解决什么问题?谁会使用它?
- 调性:选择一个方向:平静/宁谧、俏皮/活力、高端/精致、实用/专注、编辑/杂志、粗野/原始、温暖/自然、冷峻/技术。坚定贯彻。
- 灵感:哪些 Apple 应用树立了标杆?(Weather、Health、Fitness、Notes、Apple TV、Journal)
- 差异化:如何让它令人难忘?用户会记住哪一点?
- 玻璃设计理念:玻璃是用来衬托内容,还是会喧宾夺主?
重要:选择清晰的概念方向,并精准地贯彻。大胆繁复与精致极简都可行——关键在于意图明确,而非强度大小。
然后实现可用的 SwiftUI 代码,要求:
- 达到生产级水准且功能完整
- 视觉出众、令人难忘
- 风格统一,审美立场明确
- 每个细节都经过细致打磨
应避免的反模式
以下是 AI 生成的 iOS 设计千篇一律的典型特征。务必避免:
| 反模式 | 问题所在 | 应采用的做法 |
|---|---|---|
| 乏味的纯色背景 | 缺乏层次感和氛围 | 使用渐变、细腻纹理或叠加色彩 |
| 到处使用系统字体 | 缺乏字体设计意图 | 建立明确的层级,考虑使用展示字体 |
| 千篇一律的标签栏 | 缺乏个性 | 自定义样式,使用有意义的图标 |
| 紫色/靛蓝渐变 | 典型的 AI 垃圾风格 | 选择鲜明且契合情境的配色 |
| 平淡无趣的交互 | 缺少愉悦感 | 加入触觉反馈、弹簧动画和交互反馈 |
| 到处使用玻璃效果 | 适得其反 | 玻璃效果仅用于控件/导航层 |
| 忽略内容层 | 玻璃效果出现在不该出现的位置 | 玻璃衬托内容,绝不遮挡内容 |
| 泛泛的卡片布局 | 带阴影的白色矩形 | 使用契合情境、目的明确的容器 |
| 把表情符号当作设计元素 | 偷懒、不专业 | 使用 SF Symbols 或自定义资源 |
| 颜色均匀分布 | 缺乏主见、犹豫不决 | 以主色为主,搭配鲜明点缀色 |
iOS 美学指南
重点关注:
- 排版:建立清晰的层级。使用展示字体增强视觉冲击力,合理安排字重。不要处处默认使用系统字体——要有意识地做出选择。标题可考虑使用 SF Pro Display,品牌识别可考虑使用自定义字体。
- 色彩与主题:贯彻统一的美学风格。相比谨慎且均匀分布的配色,以主色为核心、搭配鲜明点缀色更出色。深色模式通常更容易打造独特效果。先设计深色模式,再适配浅色模式。
- 动效:弹簧/弹跳动画是新的默认选择。在状态之间平滑变形,而不是直接切换。为每个有意义的交互加入触觉反馈。使用
.bouncy,而非.easeInOut。 - 空间构图:有意识地安排间距(8pt 网格)。需要时留出呼吸空间,合适时则增加信息密度。使用与设备硬件相呼应的同心圆角。
- 背景与层次:营造氛围。使用渐变、细腻的层次和径向光晕。除非刻意追求极简效果,否则不要使用纯白背景。
三项原则
| 原则 | 描述 |
|---|---|
| 层级 | 控件浮于内容之上。玻璃衬托内容,绝不遮挡。内容为王。 |
| 和谐 | 软件设计与硬件相协调。圆角相呼应,手势流畅自然。 |
| 一致性 | 在 iPhone、iPad 和 Mac 之间灵活适配。保持统一的品牌识别,并根据情境灵活呈现。 |
必读内容
在开始实现之前,请阅读共享的 Liquid Glass 参考资料,了解 API 模式:
skills/ios-liquid-glass/ - Liquid Glass 核心 API、代码模式、导航模式、动画理念、触觉反馈
这份参考资料包含技术实现细节。本技能提供美学愿景;参考资料提供代码模式。
有表现力的字体
不要所有内容都默认使用系统字体。创建字体层级:
// Display fonts for headers
Text("Dashboard")
.font(.largeTitle.bold())
.foregroundStyle(.primary)
// Secondary information
Text("Last updated 5 min ago")
.font(.subheadline)
.foregroundStyle(.secondary)
// Consider custom fonts for brand identity
Text("Premium")
.font(.custom("PlayfairDisplay-Bold", size: 32))
字体建议
| 用例 | 选项 |
|---|---|
| 展示 | SF Pro Display、New York、自定义衬线字体 |
| 正文 | SF Pro Text(系统字体)、自定义无衬线字体 |
| 技术 | SF Mono、自定义等宽字体 |
| 编辑 | New York、有特色的自定义衬线字体 |
有意图地运用色彩
主色 + 强调色
不要平均分配色彩。选择:
- 一种主色,定义品牌/氛围
- 用于操作和重点内容的醒目强调色
- 提高内容可读性的中性色基底
深色模式优先
深色模式往往能带来更鲜明的效果。先设计深色模式,再适配浅色模式。
// Semantic colors that adapt
.foregroundStyle(.primary)
.foregroundStyle(.secondary)
.background(.background)
// Accent with purpose
.tint(.accentColor)
开发循环:以屏幕截图驱动迭代
提交 UI 工作前,务必进行视觉验证。 使用截图脚本反复迭代,直到界面兼具实用性与美感。
# Screenshot simulator
xcrun simctl io booted screenshot /tmp/screenshot.png && sips --resampleHeightWidthMax 1800 /tmp/screenshot.png
迭代流程:
- 实现更改
- 对模拟器截图
- 批判性地评估——它值得分享吗?
- 如果不值得,就继续迭代——修复问题并再次截图
持续迭代,直到:
- 你愿意自豪地截图发给朋友看
- 它可以出现在 App Store 的精选内容中
- 它看起来像是 Apple 营销材料的一部分
这就是我们的质量标准:值得分享、值得获奖。
质量检查清单
在确认 UI 已完成前,请检查:
- 采用了明确的美学方向(而非千篇一律)
- 玻璃效果仅用于导航层(不用于内容)
- 所有有意义的交互都有触觉反馈
- 使用弹簧/弹跳动画(而非线性动画)
- 使用 SF Symbols(而非表情符号或随意挑选的图标)
- 已测试并打磨深色模式
- 字体层级清晰且经过精心设计
- 色彩运用有目的,而非默认使用蓝色
- 在适用的地方使用形变过渡
- 加载状态带有动画
- 空状态经过设计
- 错误状态实用且样式得当
- 尊重辅助功能设置
- 已截图并进行视觉验证
- 我愿意截图给别人看吗?(如果不愿意,就继续迭代)
要求
请记住:Claude 能够完成非凡的创意工作。不要满足于“能用”,要追求令人难忘。
每个界面都应具备:
- 鲜明的观点——明确的美学方向
- 用心的细节——没有任何设计是偶然的
- 情感共鸣——让用户有所感受
- 卓越的技术表现——流畅、高性能、易于访问
目标是打造一款足以角逐 Apple Design Award 的应用——一款真正经过设计,而非生成出来的应用。
相关技能
/ios-dev- 任何 iOS 任务都从这里开始——协调指南、正确性检查和 API 参考资料/ios-design-consultant- 编码前咨询设计问题