Communitygithub.com

Liquid Glass Web

使用 Liquid Glass 设计系统构建或重新设计 Web 界面(HTML/CSS、React 或任何框架),包括令牌、组件和对比度规则,并可通过新的强调色进行品牌重塑。适用于需要玻璃、半透明或 Liquid Glass 风格的 Web 设计场景。不适用于原生 Apple 应用(应使用 SwiftUI/UIKit/AppKit 内置玻璃 API)或印刷与幻灯片设计。

Liquid Glass Web 是什么?

Liquid Glass Web 是一个将 Liquid Glass 材质模型适配到浏览器的 Web 设计系统。其核心概念是双层结构:内容位于不透明层上,导航和控件等半透明功能层浮于上方。该系统独立于 Apple 的“Adopting Liquid Glass”公开指南,不包含 Apple 字体、符号或资源。 该技能提供了完整的资产包:`tokens.json` 作为设计令牌的来源(包括 light、dark、contrast 三种主题的颜色、排版、间距、圆角、尺寸、材质和阴影),`tokens.css` 编译为 CSS 自定义属性,以及 `liquid-glass.css` 中的框架无关组件样式。同时,它还包含 React 18 捆绑包 `liquid-glass.react.js`、TypeScript 类型声明、示例 HTML 以及详细的组件指南和品牌手册。 技能的主要用途包括:快速构建或重构遵循 Liquid Glass 风格的 Web UI,以及通过修改令牌并运行对比度检查和令牌生成脚本进行全新强调色或中性色的品牌重塑。其工作流要求严格分层:仅导航和控件使用玻璃效果,内容背景和页面部分永不使用玻璃。 该技能还强制执行一套不可协商的规则,以确保设计一致性和可访问性:玻璃仅用于功能层,不在内容卡片或列表行上使用玻璃;玻璃上的文本颜色受限;清晰玻璃仅用于照片、视频或地图之上;每个视图只有一个突出按钮;所有控件为胶囊形状;触摸目标至少 44px;尊重用户偏好设置(减少透明度、对比度、动画);禁止使用 Apple 字体、符号或徽标。交付前需按照检查清单逐一验证,确保配色、对比度、键盘可访问性和文案风格正确。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tgallina-hub/liquid-glass-web/tree/HEAD/liquid-glass-web/skills/liquid-glass-web

在你喜欢的 AI 中提问

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

文档

Liquid Glass Web 是做什么的?

将 Liquid Glass 材质模型适配到浏览器的 Web 设计系统。内容位于不透明层上,导航和控件等轻薄半透明功能层浮于内容之上。该实现是对 Apple“Adopting Liquid Glass”公开指南的独立适配,不包含任何 Apple 字体、符号或资源。

技能包含内容

路径用途
assets/tokens.json真相之源:颜色(含 light、dark、contrast 三个主题)、字体、间距、圆角、尺寸、材质、阴影。
assets/tokens.css编译后的 CSS 自定义属性及类型类。修改令牌后请通过 scripts/build_tokens_css.py 重新生成。
assets/liquid-glass.css组件样式(lg-* 类),框架无关。
assets/liquid-glass.react.js可选的 React 18 捆绑包,暴露 window.LG(传统脚本方式,需依赖 window.React 和 window.ReactDOM)。
assets/liquid-glass.d.ts组件属性类型声明,兼作文档。
assets/example.html纯 HTML 编写的完整屏幕示例,可复制其结构。
references/brand-book.md设计原则、语气、颜色、材质、排版、布局、动效、图标、无障碍。设计前请先阅读。
references/html-api.md无 React 版本下每个组件的标记语法。
references/components/<Name>.md每个组件的使用指南:消费者需提供的内容、注意事项。
scripts/contrast_check.py对每个主题下所有令牌对(包括最坏情况的玻璃效果)进行 WCAG 对比度检查,失败时返回退出码 1。
scripts/build_tokens_css.py将 tokens.json 编译为 tokens.css。

工作流程

A. 构建或重构 UI

  1. 阅读 references/brand-book.md,然后阅读 references/components/ 中所需的组件文件。
  2. 将 assets/tokens.css 和 assets/liquid-glass.css 复制到项目中,并按顺序加载。在 React 项目中,可使用捆绑包或参照 references/html-api.md 中的标记进行移植。其他框架则请移植标记。
  3. 布局两个层:
    • 内容层: 不透明,位于 canvas 和 surface 上。所有需要阅读的内容都放在这里。
    • 玻璃层: 仅限导航和控件,浮动于滚动内容之上(如工具栏、标签栏、分组、菜单、中型面板)。
  4. 按令牌名称使用设计变量(如 var(--accent))。凡是有对应令牌的,切勿硬编码颜色、圆角或间距值。
  5. 完成前请执行下方检查清单。

B. 品牌重塑(新的强调色或中性色)

  1. 仅修改 assets/tokens.json 中的值。保留令牌名称,因为 CSS 依赖它们。
  2. 每个更改的强调色都必须在每个主题中拥有配套令牌:accent、on-accent、accent-text、accent-glass、focus-ring。如果深色主题的强调色较浅,则 on-accent 必须较深。
  3. 运行 python3 scripts/contrast_check.py assets/tokens.json,调整值直到输出 RESULT: PASS。请勿降低检查阈值。
  4. 运行 python3 scripts/build_tokens_css.py assets/tokens.json > assets/tokens.css。
  5. 除非另有要求,否则保留玻璃令牌(glass-fill、glass-edge、glass-lift、glass-blur)。玻璃层应保持无色。

不可协商的规则

  • 玻璃仅用于功能层。切勿在列表行、内容卡片或页面分区上使用玻璃,也不可在玻璃上叠加玻璃。
  • 常规玻璃上的文字仅可使用 ink、ink-glass-muted、accent-glass 或 critical-glass。切勿在玻璃上使用 ink-secondary、accent-text 或 critical,它们会在深色或明亮内容上失效。
  • 清晰玻璃(lg-glass--clear)仅用于照片、视频或地图之上,并需在其下方放置 lg-dim。其上只能放置图标和 19px 以上的粗体标签。
  • 每个视图只允许一个 prominent 按钮。所有控件应为胶囊形状(radius-full)。嵌套圆角应保持同心:内层圆角 = 外层圆角 − 内缩量。
  • 触摸目标至少为 target-min(44px)。每个仅含图标的控件都必须有 aria-label。
  • 状态指示必须同时包含图标和文字;颜色本身不得单独传达含义。
  • 尊重 prefers-reduced-transparency、prefers-contrast 和 prefers-reduced-motion 用户偏好。CSS 已处理这些,请勿覆盖。
  • 禁止使用 Apple 的 SF Symbols、Apple 字体或徽标。字体栈使用设备系统字体;React 捆绑包中的图标集为原创占位符。

交付前检查清单

  • 工具栏后方无自定义背景;内容应在它们下方滚动,当栏重叠内容时需有 lg-edge 滚动边缘效果。
  • 玻璃元素数量较少(仅限栏、分组、菜单、面板)。其他元素不应使用玻璃。
  • 已在 data-theme="light"、"dark" 和 "contrast" 三种主题下检查画面。
  • 若修改了令牌:contrast_check.py 输出 PASS,且已重新生成 tokens.css。
  • 键盘操作:所有控件均可通过键盘到达,并显示 focus-ring 轮廓。
  • 文案:操作按钮使用句子式大小写,仅列表分区标题使用首字母大写,动词在前,不使用 emoji。

相关技能