アニメーション付きトグルスイッチのCSSジェネレーター
標準のチェックボックスを、アニメーション付きのトグルスイッチに置き換えるCSSを生成します。ボタンの形状や色を調整できます。
プレビュー
<label class="toggle-switch">
<input type="checkbox">
<span class="slider"></span>
</label>
.toggle-switch {
position: relative;
display: inline-block;
width: {{size}}px;
height: calc({{size}}px / 1.7);
}
.toggle-switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: {{color_off}};
transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: {{radius}}px;
}
.slider:before {
position: absolute;
content: "";
height: calc({{size}}px / 2.2);
width: calc({{size}}px / 2.2);
left: calc({{size}}px / 12);
top: 50%;
transform: translateY(-50%);
background-color: white;
transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: calc({{radius}}px / 1.5);
}
input:checked + .slider {
background-color: {{color_on}};
}
input:focus + .slider {
box-shadow: 0 0 1px {{color_on}};
}
input:checked + .slider:before {
transform: translateX(calc({{size}}px / 2.6)) translateY(-50%);
}
機能、使い方
- HTML標準のチェックボックスを、モダンで洗練されたトグルスイッチに変換します。
- プリセットカラー: 洗練された5つのカラーテーマをワンクリックで適用できます。
- レスポンシブ: サイズを動的に調整しても、ノブと背景の比率が自動的に保たれます。
- 画像を使用せずCSSのみで構築されているため、軽量でカスタマイズも容易です。
実装のヒント
チェックボックスのchecked状態を擬似要素:checked + .sliderで監視することで、JavaScriptなしで状態の切り替えを実現しています。
cubic-bezierを使用したスムーズなアニメーションにより、Macや最新のデバイスにマッチする質感を提供します。トランスフォーム(translate)による移動は GPU
アクセラレーションが効くため、低スペックなデバイスでも滑らかに動作します。