Communitygithub.com

lym2128094758/liquid-glass-switch

在Web应用或AI编码工具UI中添加或适配一个可拖动的液态玻璃分段开关,适用于实现双选项视图或模式控制,支持移动玻璃透镜、拖动阈值、边界弹性回弹及平面/球体切换。

liquid-glass-switch 是什么?

这是一个用于AI编码工具(如Codex、Claude)的液态玻璃分段开关技能。它提供了一个可复用的双选项开关组件,支持用鼠标或触摸拖动在两种状态间切换。该组件以纯JavaScript和CSS构建,无外部依赖,并包含轻/暗玻璃质感主题。关键交互特性包括:连续指针拖动、单次手势内可多次反向、在70%行程阈值处触发切换、透镜悬停在边界处最多20个CSS像素的弹性效果,以及遵循`prefers-reduced-motion`媒体查询。用户可通过集成`assets/liquid-controls.js`和`assets/liquid-controls.css`文件,并结合`references/harness-porting.md`文档来适配项目。该技能特别适合需要实现类似“平面/球体”或“全局/局部”等二元状态切换的场景。

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

在你喜欢的 AI 中提问

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

文档

用于工具UI的液态玻璃开关

当用户要求向Web界面、AI编码工具或类似项目UI添加封装的玻璃开关时,使用此技能。目标是调整该组件以适配宿主项目的框架和状态模型,而不是重新设计工具中无关的部分。

将此技能安装到Codex或Claude中,可为编码代理提供可复用的指令和组件文件;它不会授予修改这些产品自身应用程序框架的API。请改为在用户的可编辑项目或工具源码上进行操作。

工作流程

  1. 编辑前检查宿主项目。查找UI入口点、框架、现有的分段控件、状态所有者、样式方法以及可用的构建或预览命令。遵循其本地的 AGENTS.md、CLAUDE.md 和其他项目说明。
  2. 确定用户想要切换的两个状态。此组件仅限两个选择,例如“平面/球体”或“全局/局部”。如果用户要求更多选择,请说明封装的控件是二元的,仅当所请求的交互仍然合理时才进行调整。
  3. 阅读 references/harness-porting.md 和 assets/ 目录下的文件。当 assets/liquid-controls.js 和 assets/liquid-controls.css 的DOM契约符合时,直接复用它们。否则,将其交互模型移植到宿主框架中。
  4. 将选择与宿主的实际状态源连接起来。点击或拖动必须同时更新选中的视觉状态和显示的视图。在声明式框架中,从框架状态派生活动样式和 aria-pressed,而不是在框架背后直接操作DOM。
  5. 保留关键交互行为:连续指针拖动、单次手势期间可多次反向切换方向、在70%行程阈值处触发切换、在被选中的选项处稳定下来,并将透镜悬停限制在每侧20个CSS像素以内。尊重 prefers-reduced-motion。
  6. 如果宿主应用已使用 .view-switch、.view-button 或 .view-lens,则对CSS选择器进行作用域限定或重命名。避免更改工具中无关的导航、面板、路由或持久化机制。
  7. 使用宿主可用的构建、测试或浏览器预览工作流来验证实际的宿主UI。检查鼠标和触摸拖动、直接按钮激活、反向/快速手势、调整大小、键盘焦点和减少动画模式。报告已运行了哪些检查以及宿主工具中的任何限制。

打包的资源

  • assets/liquid-controls.js:无依赖的指针和透镜动画行为。
  • assets/liquid-controls.css:亮色和暗色玻璃外观。
  • assets/demo.html:独立浏览器示例。
  • references/harness-porting.md:框架和工具集成指南。

该开关使用原生按钮。宿主项目仍需负责根据按钮的正常 click 事件来更改选中状态。

相关技能