MOTION HUB

线性开关

Slide Toggle
#slide-toggle · 55/72
CLICK · 点击交互

参数调改

PLAYGROUND
开启色--on_color
关闭色--off_color
圆钮颜色--knob_color
轨道宽度--track_w
52110
px
切换时长--dur_ms
100600
ms
圆角--radius_px
6999
px

实现要点

NOTES
  1. 01

    与霓虹开关的区分:本条是扁平现代风——轨道纯色填充、无任何 box-shadow 辉光层,质感靠边界清晰的 1px 描边与状态文字;霓虹开关靠多层同色阴影堆出发光体感,两者观感路线完全不同。

  2. 02

    轨道内嵌 ON/OFF 等宽字状态文字,分别贴左右端:滑块滑过时文字交叉淡入淡出(opacity 过渡),这是扁平开关信息量与质感的主要来源;文字尺寸用 calc(var(--h) * 0.3) 随轨道高度联动。

  3. 03

    圆钮按下时宽度临时拉长(:active 下 width 过渡到 h-2px),松开回弹——iOS 开关的标志性微交互,只用 width 一处非合成属性、元素极小,开销可忽略。

  4. 04

    行程 = 轨道宽 - 轨道高 + 4px,全部由 --track_w 用 calc 推导,改宽度参数圆钮行程自动正确;圆角参数同步作用于轨道与圆钮。

  5. 05

    input 视觉隐藏但可聚焦,label 包裹扩大点击区;:focus-visible 外圈保证键盘可用;选中态全部由 :checked 相邻选择器驱动。

  6. 06

    reduced-motion:全部过渡压到 0.01ms,状态瞬时切换。

源代码

SOURCE

加载源代码…