用途:当界面“看起来相关却对不齐”时,用它在 SwiftUI 中建立并长期维持一套设计系统。核心是四个尺度、一个网格、一份组件目录和一条防回退的“绊线”。全部使用原生 SwiftUI(Environment、style 协议、containerRelativeFrame),不引入设计系统框架。
主要能力:先用 grep 统计现有 padding、spacing、cornerRadius、font、spring 的实际取值,用数据说明问题;再以命名空间枚举分文件写出 Space(4 点步进)、Grid(12 列、gutter、margin、gridSpan、GridOverlay)、Typography(8 级,每级对应平台 TextStyle)、Radii、Motion、Surface 等尺度。用 ButtonStyle、LabelStyle 等 style 协议统一控件手感,而非逐处加修饰符。
使用方式:按工作流执行——统计现状、写尺度、用 codemod 机械迁移(就近 4 点取整、平局向上,只处理 padding/spacing/cornerRadius/字体,跳过 frame、offset、lineWidth、阴影半径)、用 style 协议替代散落修饰符、构建组件目录(make design 用 ImageRenderer 出 PNG,make design-app 在模拟器看玻璃与动效,-designGrid YES 在真实界面叠加 12 列)、最后加三层守卫(pre-commit 对新增行做警告式 grep、对网格算术做测试、仓库内快照图)。
适用场景:需要统一多屏视觉与间距的 SwiftUI 应用;需要把 21 种 spring 收敛为 6 条曲线并遵循频率、非对称时序、可中断性、减弱动态效果等规则的项目。
限制:containerRelativeFrame 需 iOS 17+;ImageRenderer 不绘制材质,玻璃效果在快照中呈平面;玻璃不能采样玻璃,iOS 26 需 GlassEffectContainer;禁止 repeatForever;调试开关需可注入且 Release 下为 false。Xcode 26.6 不导出 agent skills,Xcode 27.0 beta 2 导出十个,名称跨版本不稳定,需每次 Xcode 更新后重跑。具体收费、价格与平台支持资料未提供。