Design

Web Design

CodePen

このページはプロモーションが含まれています。

【CodePen】トグルボタン(スイッチ)のアイデア15選

【CodePen】トグルボタン(スイッチ)のアイデア

CSSやJavaScriptで表現されたトグルボタン(スイッチ)のアイデアをCodePenから15個セレクトしました。シンプルなON/OFFのチェックボックス表現から、SVGフィルターやGSAPを使った凝ったモーションまで幅広いバリエーションを集めています。各スニペットには実装のポイントも添えているので、どんな仕組みで動いているのか、どこを見ればカスタマイズできるのかが把握しやすくなっています。気になるデザインが見つかったら、実際のサイト制作の参考にしてみてください。


トグルボタン(スイッチ)のアイデア

Toggles

カラフルな8種類のトグルボタン(スイッチ)のアイデア

See the Pen Toggles by Olivia Ng (@oliviale) on CodePen.

💡 実装のポイント
Pug+SCSSで書かれた8パターン構成。.normal.transparent.checkcross.pancake-stack.dog-rollover.basketball-hoop.beer-pongなど、パターンごとに専用クラスが割り当てられているので必要な1つだけ抜き出して使える。透明なinputlabelに重ねて:checkedで見た目を切り替える仕組みで、バスケやビールポンなど演出が凝ったパターンは対応する@keyframesも一緒にコピーする必要あり。

Pure CSS toggle buttons

CSSのみで作られた5種類のトグルボタン

See the Pen Pure CSS toggle buttons by Mauricio Allende (@mallendeo) on CodePen.

💡 実装のポイント
共通クラス.tgl(非表示チェックボックス)+隣接する.tgl-btnラベルの構成に、.tgl-light.tgl-ios.tgl-skewed.tgl-flat.tgl-flipの5テーマクラスを組み合わせる仕組み。Skewed・Flipパターンはdata-tg-offdata-tg-on属性の値をcontent: attr()で表示しているので、テキストを変える場合はHTML側の属性を書き換える。JSは一切不要。


Pure CSS Toggle Buttons | ON-OFF Switches

CSSのみで作られた18種類のトグルボタンセット

See the Pen Pure CSS Toggle Buttons | ON-OFF Switches by Himalaya Singh (@himalayasingh) on CodePen.

💡 実装のポイント
#button-1#button-18のID指定で18パターンが完全独立。作者コメントに「どのボタンのCSSも単体でコピーしやすいよう、あえて冗長に書いている」とある通り、各IDごとに::before::afterのスタイルを丸ごと再定義しているだけなので、使いたい番号のブロックだけ抜き出せば単体で動作する。JSなしの純CSS実装。

Gooey Toggle Switch

流体でスイッチするトグルボタンのアイデア

See the Pen Gooey Toggle Switch by Nicolas Jesenberger (@nicolasjesenberger) on CodePen.

💡 実装のポイント
SVGフィルターのfeGaussianBlurfeColorMatrixを組み合わせた「goo」効果で、2つの円がくっついたり離れたりする液体風の動きを表現。色は.toggle-container:nth-child()ごとに--active-colorカスタムプロパティで管理されているので、パターンごとの色替えはCSS変数を変えるだけでOK。JSは使わずチェックボックスの:checkedのみで制御。

Slap Toggle

めくれるイメージのトグルボタンのアイデア

See the Pen Slap Toggle by Yariv Fruend (@YarivFrd) on CodePen.

💡 実装のポイント
2つのradioボタンと#flapのめくれ板をperspectivetransform-style: preserve-3drotateYで3D的に反転させる仕組み。JSは#flapのテキストを選択したラベルの内容に書き換える処理と、反転後に少し揺り戻すバウンド演出のみを担当。色は--accent変数1つで管理。

Colorful Theme Switch

ナイトモードのトグルボタンのアイデア

See the Pen Colorful Theme Switch by Jon Kantner (@jkantner) on CodePen.

💡 実装のポイント
JS不使用が特徴で、body:has(.switch__input:checked)という:has()擬似クラスだけでページ全体をダークモードに切り替えている。太陽・月のアイコンはSVGで、位置や透明度の変化はCSSトランジションのみ。作者コメントにもある通り:has()はFirefoxでの対応状況に注意が必要。

Night && Day Toggle ☀️/🌙 [Completed It!]

昼/夜でイメージしやすいトグルボタンのアイデア

See the Pen Night && Day Toggle ☀️/🌙 [Completed It!] by Jhey (@jh3y) on CodePen.

💡 実装のポイント
大量のSVGイラストで構成された非常に凝った実装。ボタンクリック時にJSが[aria-pressed]属性を切り替え、それに連動する--darkというCSSカスタムプロパティ(0か1)を軸に、雲や星、パイロットのクマなどあらゆる要素の位置・拡大率がcalc()で一括計算されている。実務に丸ごと転用するより、CSS変数1つで全体をアニメーションさせる考え方の参考にするのがおすすめ。

Night & Day

昼/夜のアニメーションが特徴的なトグルボタンのアイデア

See the Pen Night & Day by Steve Gardner (@ste-vg) on CodePen.

💡 実装のポイント
GSAPのタイムラインでclipPathの円(#circle)を一気に拡大させて画面を昼→夜に切り替え、拡大しきったタイミングで<use>要素のhref#day/#nightに瞬時に差し替えることで違和感なく背景を入れ替えるトリックを使用。星の瞬きや雲の流れも別途gsap.to()でランダム・無限ループさせている。JS依存度が高く、GSAP本体の読み込みが前提。

Let there be light 💡

ライトのスイッチをイメージさせるトグルボタンのアイデア

See the Pen Let there be light 💡 by Dilum Sanjaya (@dilums) on CodePen.

💡 実装のポイント
GSAPのMorphSVGPluginを使い、紐(#rope)をマウスダウンで伸ばし、マウスアップでバウンドしながら元に戻すモーフィングを実装。isChecked変数のON/OFFに応じてノブの位置・電球の色・光の広がり(.lightの幅高さ)をgsap.to()で変化させている。GSAP本体と有償プラグインのMorphSVGPluginが必須。


Tuggable Light Bulb! 💡(GSAP Draggable && MorphSVG)

引っ張って操作するライトスイッチのアイデア

See the Pen Tuggable Light Bulb! 💡(GSAP Draggable && MorphSVG) by Jhey (@jh3y) on CodePen.

💡 実装のポイント
GSAPのDraggableで紐を実際にドラッグでき、50px以上引っ張るとあらかじめ用意された複数の紐カーブ(SVGパス)をMorphSVGPluginで順番にモーフィングさせてスイッチが入る演出。Stylus記法の--onカスタムプロパティ(0/1)が電球の色・輝きをすべて計算しており、GSAP本体+Draggable+MorphSVGPluginの3点セットが必須という上級者向け構成。

Neon Toggle Switch

リアルな表現のトグルボタン

See the Pen Neon Toggle Switch by Jon Kantner (@jkantner) on CodePen.

💡 実装のポイント
SVGのfeGaussianBlurフィルターで枠線を光らせるネオン管風の演出。枠線・ノブそれぞれにstroke-dasharrayを仕込み、ON時にだけ描画されるよう値を切り替えている。色は--on-hue1--on-hue2のグラデーション用カスタムプロパティ2つで管理。JSなしの純CSS+SVG実装。

3D Orange Switch (Pure CSS)

CSSのみで作られた立体的なトグルボタン

See the Pen 3D Orange Switch (Pure CSS) by Yoav Kadosh (@ykadosh) on CodePen.

💡 実装のポイント
左右の.indicator.left.indicator.rightがオレンジ・グレーの半円を表し、base64エンコードしたSVGノイズ画像を重ねて質感を出しているのが特徴。ノブ本体(.button)はleft: 40%への移動だけで切り替わるシンプルな仕組みで、色は--accent-hue変数のみで管理。JSは使用していない。

Skillet Switch

フライパンで表現されたトグルボタンのアイデア

See the Pen Skillet Switch by Jon Kantner (@jkantner) on CodePen.

💡 実装のポイント
.switch:has(:checked)という:has()擬似クラスでフライパン全体を傾けるrotateYアニメーションを発火させ、卵黄がtranslateXrotateで滑るように移動する仕組み。data-pristine属性と小さなJSクラスで、ページ読み込み時に無駄なアニメーションが再生されないよう制御している。こちらも:has()を使うためFirefoxでの対応状況に要注意。

Toothed Toggle – CSS

CSSのみで作られた歯車風のトグルボタン

See the Pen Toothed Toggle – CSS by Josetxu (@josetxu) on CodePen.

💡 実装のポイント
.track-top.track-botという上下2列の<span>を、それぞれ異なるtransform-originで逆方向に回転させることで歯車が噛み合っているように見せる仕組み。ON/OFFの光る色は--lgカスタムプロパティを@keyframes経由で書き換えて表現しており、JSは一切使用していない。

Realistic Red Switch (Pure CSS)

CSSのみで作られたリアルなスイッチ

See the Pen Realistic Red Switch (Pure CSS) by Yoav Kadosh (@ykadosh) on CodePen.

💡 実装のポイント
SCSSの$color$rotation$pivot-distanceなどの変数と、darken()lighten()adjust-hue()といったSassのカラー関数を多用したリアルな質感が特徴。perspectivetransform-style: preserve-3drotateXでボタンを傾け、.light.dots.characters.shine.shadowの5層を重ねて立体感を演出。Sass関数を使っているため「View Compiled CSS」で書き出したものを使う必要がある。


トグルボタンとは?

トグルボタンはWebデザインで頻繁に使用され、主に2つの状態の切り替えに利用されます。デザイン要素では、ユーザービリティやUXに注意を払い、選択状態と非選択状態の視覚的な差異を強調します。アクセシビリティにも配慮し、セマンティクスや支援技術との互換性を確保します。アニメーションはユーザーに視覚的なフィードバックを提供し、レスポンシブデザインでは異なるデバイスに対応することが重要です。

CodePenとは?

CodePenは、HTML、CSS、JavaScriptを使ってウェブページのプロトタイプや実装を行うことができるオンラインの開発環境です。

CodePenでは、ウェブ開発者やデザイナーが、ブラウザ上でコードを書きながら、すばやく試行錯誤することができます。ユーザーは自分のプロジェクトを公開し、他のユーザーによるフィードバックを受けたり、共有することもできます。

CodePenには、エディター機能が搭載されており、HTML、CSS、JavaScriptのコードを入力することができます。また、ユーザーが公開したプロジェクトは、フロントエンドの技術を利用して動的な表現やアニメーションを作ることができます。

よくある質問

  • Q

    SCSSで書かれているコードはそのまま使えますか?

    A

    そのままでは動作しません。SCSSはコンパイルが必要なため、Sassのビルド環境がない場合はCodePen上の「View Compiled CSS」から通常のCSSを書き出して使用してください。

  • Q

    :has()を使ったトグルボタンはどのブラウザで使えますか?

    A

    Chrome・Edge・Safariの最新版では問題なく動作しますが、Firefoxは対応が遅れていた時期があるため、本番環境で採用する際は事前に最新のブラウザ対応状況を確認してください。

  • Q

    GSAPを使ったトグルボタンを実装するには何が必要ですか?

    A

    GSAP本体に加えて、記事内で紹介しているパターンではMorphSVGPluginDraggableといった追加プラグインの読み込みが必要です。それぞれ別途スクリプトタグでの読み込みが必要になるので、CodePen上の設定(Add External Scripts/Pens)を確認してください。

  • Q

    トグルボタンはアクセシビリティ的に問題ありませんか?

    A

    <input type="checkbox">をベースにしたものはキーボード操作にも対応しやすい一方、視覚的な意味が伝わりにくい場合があります。role="switch"aria-label、スクリーンリーダー専用テキスト(.switch__srのようなクラス)を併用することを推奨します。


JisuLife

JisuLife ハンディファン Pro1 S【強力 / 40時間長時間駆動 / 静音 / 大風量100段階ローラー調整 / 小型/携帯扇風機/手持ち扇風機/USB-C充電/卓上扇風機/ポータブル/ジスライフ】ダークグレー

konciwa

konciwa 日傘 軽量 遮光率100% UVカット率 100% 自動開閉 晴雨兼用 傘 超撥水 レディース 折りたたみ傘 ンズ 紫外線カット 折り畳み傘 かわいい 可愛い おしゃれ コンパクト 旅行 ブランド 誕生日プレゼント 女友達 母 女性