码译 · VibeCode
一个能滑动的小开关,开是绿关是灰
开关切换
Switch / Toggle
反模式用两个按钮「开/关」或复选框表示,占地方又不直观
正解用一段式 Switch:圆点滑块在轨道上左右移动,开态变绿,关态变灰
在线对比体验 · 同一个需求,大白话 vs 平台提示词,效果立分高下 · 右边可点击体验
大白话直接生成
接收推送通知
平台提示词生成
接收推送通知
点「点击试用」拨动开关
差在哪?大白话没讲「用两个按钮「开/关」或复选框表示,占地方又不直观」,AI 只能自己猜;平台提示词写明「用一段式 Switch:圆点滑块在轨道上左右移动,开态变绿,关态变灰」,还带要点与三端注意,一次到位不用返工。
代码示例
错误写法
<button>开</button><button>关</button> /* 两个按钮,像设置里一堆 */
正确写法
.sw{ width:48px;height:28px;border-radius:15px;background:#ccc } .sw.on{ background:#1C7A4E } .sw .dot{ transform:translateX(22px) }
语义锚点 · 对齐 AI 语义库契约
<div data-vibe="switch-toggle"> … 组件根元素 … </div><!-- AI 用语义名片 locate 此属性即可定位/修改 -->
在组件根元素挂 data-vibe="switch-toggle",AI 用语义名片里的 locate([data-vibe='switch-toggle'])即可定位、修改、组合该组件——与「AI 语义库」tab 的契约一一对应。在 AI 语义库看契约 →
不同平台注意
网页input[type=checkbox] 自定义成开关样式
AppRN 直接用 Switch 组件,受控 value/onValueChange
小程序小程序 switch 组件,bindchange 拿勾选状态
可直接复制的提示词(三端都给你,挑对应平台复制给 Cursor / 通义灵码 / Claude)
网页 Web
你是一位资深前端工程师。我想实现【开关切换】(专业术语:Switch / Toggle)。

【我想达到的效果】一个能滑动的小开关,开是绿关是灰。
【请避免的反模式】用两个按钮「开/关」或复选框表示,占地方又不直观。
【正确做法】用一段式 Switch:圆点滑块在轨道上左右移动,开态变绿,关态变灰。

【平台】网页 Web(标准 HTML/CSS/JS,单文件零依赖,不引任何 CDN)。
【提示词要点】
- 开态用绿、关态用灰,符合直觉
- 用 transform 移动圆点(性能优于 left)
- 加 transition 让滑动顺滑

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。
手机 App
你是一位资深前端工程师。我想实现【开关切换】(专业术语:Switch / Toggle)。

【我想达到的效果】一个能滑动的小开关,开是绿关是灰。
【请避免的反模式】用两个按钮「开/关」或复选框表示,占地方又不直观。
【正确做法】用一段式 Switch:圆点滑块在轨道上左右移动,开态变绿,关态变灰。

【平台】手机 App(React Native / Flutter / 原生,给出对应组件与关键代码)。
【提示词要点】
- 开态用绿、关态用灰,符合直觉
- 用 transform 移动圆点(性能优于 left)
- 加 transition 让滑动顺滑

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。
微信小程序
你是一位资深前端工程师。我想实现【开关切换】(专业术语:Switch / Toggle)。

【我想达到的效果】一个能滑动的小开关,开是绿关是灰。
【请避免的反模式】用两个按钮「开/关」或复选框表示,占地方又不直观。
【正确做法】用一段式 Switch:圆点滑块在轨道上左右移动,开态变绿,关态变灰。

【平台】微信小程序(WXML/WXSS/JS,注意 rpx 单位与小程序专属约束)。
【提示词要点】
- 开态用绿、关态用灰,符合直觉
- 用 transform 移动圆点(性能优于 left)
- 加 transition 让滑动顺滑

请输出完整可运行代码(关键处写中文注释),并附 50 字以内使用说明。