Communitygithub.com

Apple 网页设计

为网页应用提供 Apple.com / iOS 26 风格的外观与感受,适用于纯 HTML/CSS/JS、PWA、Cloudflare Workers 站点、Capacitor 封装应用。

Apple 网页设计 是什么?

该技能为开发者提供了一套完整的设计语言和组件库,用于构建具有原生 iPhone 应用或 Apple.com 产品页面风格的 Web 应用。它基于一个已上线的 iPhone 优先应用提炼而成,所有样式均为纯 CSS 和原生 JavaScript,不依赖任何框架,可轻松集成到任何项目中。核心设计原则包括:单一蓝色强调色、自动暗黑模式、系统字体堆栈、无边框磁贴、药丸形按钮、滑动切换器、毛玻璃或 Liquid Glass 标签栏(滚动时可收起)、底部弹出面板(Sheet)、提示(Toast)、iOS 风格的警告框和开关、细大数字,以及尊重用户“减少动效”设置的原地动画(包括 DOM 变形、FLIP、数字滚动、弹簧按压、触觉反馈)。此技能适用于所有主流 AI 编码助手 (Claude Code, Cursor, Codex 等)。使用此技能时,开发者应首先粘贴 tokens.css,然后根据需要阅读 `references/` 目录下的对应文档(组件、动效、毛玻璃、检查清单等),按需取用。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JT-GRDT/apple-design-skills/tree/HEAD/skills/apple-web-design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Apple 网页设计 是做什么的?

一种为 Web 应用打造原生 iPhone 或 Apple.com 产品页面感觉的设计语言。它在一个已上线的饮食计划应用中构建、在真机 iPhone 上测试并逐屏完善(其单个 index.html 即为参考实现)。所有内容均为纯 CSS 和原生 JavaScript,无框架或库依赖,可轻松嵌入任何项目。

目标是打造一个安静的产品,从头到尾:浅灰色页面、白色磁贴、一个蓝色强调色、大而自信的字体,每次点击都能触发原位动画。没有元素跳跃,不会重新渲染整个屏幕,键入的文本和滚动位置永不丢失。

如何使用此技能

  1. 新 UI: 首先将 references/tokens.css 粘贴到页面中。然后根据 references/components.md 中的组件配方构建屏幕。如果 UI 会根据状态重新渲染,则添加 assets/morph.js 和 references/motion.md 中的动效层。
  2. 现有 UI: 保留项目的结构和数据。将颜色、字体和形状替换为令牌,然后逐一转换组件。不要为了改样式而重写逻辑。
  3. 毛玻璃: 仅当用户想要 Liquid Glass / iOS 26 玻璃效果(标签栏、浮动按钮、提示、表单按钮)时,才阅读 references/liquid-glass.md。
  4. 深色展示屏(启动屏、“模式”屏如派对或专注屏):references/keynote.md。
  5. 完成前: 运行 references/checklist.md——在 390×844 分辨率下分别截取浅色和深色模式的截图。
  6. 如果应用会出售(App Store 或商业用途):先阅读 references/commercial.md。一些最像苹果的细节恰恰是苹果反对的。

只阅读你需要的参考文档;每份文档都是独立的。

核心规则(为何重要)

颜色:一种强调色,克制使用。 页面 #f5f5f7,磁贴 #fff,墨色 #1d1d1f,次要色 #6e6e73,操作蓝 #0071e3(深色模式:#000 / #1d1d1f / #f5f5f7 / #86868b / #2997ff)。蓝色表示“此处可操作”,因此仅用于主按钮、链接、选中的标签和进度条——绝不用于装饰。状态色(--ok 绿色,--warn 琥珀色,--bad 红色)仅用于传达含义。额外色调(水青色、步数橙色)仅当它们用于始终如一地标记某类数据时才可使用。品牌渐变(如果有)仅属于一个特殊屏幕。

深色模式跟随手机。 每种颜色都是在 prefers-color-scheme: dark 下重新定义的 CSS 变量。深色模式使用纯黑页面配合 #1d1d1f 磁贴,阴影关闭(--shadow:none),因为阴影在黑色背景上看起来像污渍。

用字体做层级,而不是用盒子。 系统字体堆栈(-apple-system, BlinkMacSystemFont, system-ui, sans-serif,在 Apple 设备上提供 SF 字体),正文字号 17 px,大字号使用紧凑的负字间距:

  • 页面标题 40–48 px 粗体,-0.035em,以句号结尾:“Recipes.”—— Apple.com 的标题语调。
  • 双色区块标题,24 px 粗体:前半部分墨色,后半部分灰色:“Pirkiniai. Trūksta 15 produktų.”。两部分都以句号结尾。
  • 大数字纤薄(字重 200–300)且巨大(38–72 px),使用 font-variant-numeric: tabular-nums 使数字在变化时不抖动。较小的统计数字(规格行)使用字重 600。
  • 说明文字 13–14 px 灰色。不要低于 12 px。

形状:无边框磁贴、药丸、充裕的间距。 圆角 8 / 14 / 22 / 28 px;磁贴无边框,带非常柔和的阴影(0 4px 18px rgba(0,0,0,.06))。磁贴内部的行由从文本开始(而非从边缘开始)的细线分隔(iOS 内嵌分隔线)。按钮为药丸形(border-radius: 999px):主按钮实心蓝配白字,次要按钮灰色填充配蓝字,破坏性按钮灰色填充配红字。照片在磁贴内边缘对齐。

布局:单列,手机优先。 max-width: 720px 居中,16 px 侧边距,每个固定边缘的安全区内边距(env(safe-area-inset-*)),底部 110 px 内边距使内容不被标签栏遮挡。触摸目标 ≥ 44 px。

动效:所有元素原地运动。 使用 DOM 变形而非 innerHTML 重新渲染,使节点得以保留;新行渐显,移除的行以渐隐的幽灵形式离开,移动的行平滑滑动(FLIP),变化的数字滚动,药丸滑动,弹簧向上弹起,按钮按压(缩放至 0.96,弹簧曲线)。两种曲线几乎涵盖所有情况:--spring: cubic-bezier(.3,1.4,.5,1)(按压、小弹跳)和 --ease: cubic-bezier(.2,.8,.2,1)(淡入淡出、条状移动);iOS 自身的曲线 cubic-bezier(.32,.72,0,1)(无过冲)用于弹出面板和大范围移动。所有这些动画在 prefers-reduced-motion: reduce 下关闭——务必检查,不要假设。

文案:简短、人性化、苹果腔调。 标题带句号,按钮用动词(“Pagaminau”,“Pridėti”),数字根据语言区域格式化(toLocaleString(lang);立陶宛语在千位使用空格,小数点使用逗号),不用感叹号,界面元素中不使用表情符号(表情符号可作为内容图标使用,例如 🍸 表示饮料条目)。错误文本应说明下一步该做什么。

已做决策(无需重新争论)

以下来自构建参考应用时的真实反馈:

  • 主要蓝色操作按钮保持实心蓝色,即使在玻璃 UI 内部——已尝试并否决了有色玻璃蓝按钮。
  • Liquid Glass 默认开启,但用户可切换,带强度滑块;内容卡片保持不透明以确保文字可读。玻璃效果仅用于浮动界面元素。
  • 使用食谱/产品照片作为图片;不使用插画或库存图片风格的装饰。
  • 有疑问时,采用 iOS 26 的行为:标签栏以胶囊形式浮动,向下滚动时收起为一个小按钮;手指触摸时玻璃效果膨胀(放大)而非下沉。
  • 每个标签页记住自己的滚动位置;点击活动标签页滚动到顶部。
  • 提示 (Toast) 可向上滑动关闭,并且每次破坏性或数据更改操作都带有“Atšaukti / 撤消”操作。

文件

  • references/tokens.css —— 完整的令牌块(浅色 + 深色、圆角、阴影、曲线)。直接粘贴。
  • references/components.md —— 每个组件的可复制粘贴 HTML + CSS,包含行为说明。
  • references/motion.md —— 动画辅助工具、变形钩子、FLIP、数字滚动、标签切换、弹出面板、滑动和长按手势、触觉反馈、减少动效。
  • references/liquid-glass.md —— iOS 26 玻璃材质、Chromium 折射透镜、可收起的标签栏。
  • references/keynote.md —— 用于一个特殊屏幕的黑色“Keynote”样式。
  • references/checklist.md —— 审阅清单和截图脚本。
  • references/commercial.md —— 在以此风格出售应用前需要更改的内容。
  • assets/morph.js —— 70 行的 DOM 变形(带关键行的、聚焦和输入安全的、回退到 innerHTML)。

相关技能