このツールとは?
ブラウザ標準のチェックボックスは見た目がブラウザごとに異なり、外観はOSが描画するため、普通のCSSでは直接スタイルを変えにくいものです。定番の回避策は、ネイティブのチェックボックスを視覚的に隠し、代わりに隣接する要素をチェックボックスの:checked状態に応じてスタイルすることです。入力要素自体は完全に機能し続け、アクセシビリティも保たれ、変わるのは見た目だけです。
このツールは、丸みのあるボックスにアニメーション付きのチェックマークを重ねるスタイル、iOS風のスライド式トグルスイッチ、塗りつぶし円(ラジオボタン風)という3種類の定番スタイルでこのパターンを実装しています。プレビュー内のチェックボックスをクリックするとチェック状態を確認でき、サイズとアクセントカラーを調整してCSSをコピーできます。
出典: Selectors Level 4, W3C — この手法の基盤となる:checked疑似クラスを定義する仕様。
なぜこれを使うのか?
- 実際にクリックできるライブプレビュー——チェックボックスを切り替えて、チェック時・未チェック時の見た目をそのまま確認できます。
- チェックマーク型・トグルスイッチ型・塗りつぶし円型という3種類の定番スタイルを1つのツールで用意。
- 内部の要素は実際の<input type="checkbox">のままなので、キーボード操作・フォーム送信・スクリーンリーダーも通常どおり動作します。
- サイズとアクセントカラーを調整でき、後で埋める変数ではなく、CSSの値として直接生成されます。
- アイコンフォント・SVGファイル・画像は不要——チェックマークとつまみは通常のCSSボーダーと疑似要素だけで描画されます。
- 無料でブラウザ内で完結し、登録も不要です。
使い方
- スタイルを選びます:丸型チェック、トグルスイッチ、塗りつぶし円。
- サイズのスライダーをドラッグしてチェックボックスを拡大・縮小します。
- アクセントカラーを選びます——チェック時の背景色とボーダー色になります。
- プレビューパネルのチェックボックスをクリックして、チェック時・未チェック時のどちらも問題ないか確認します。
- 生成されたCSSをスタイルシートにコピーし、プレビューと同じ構造で囲んだ任意の<input type="checkbox">に適用します。
例
入力
スタイル:丸型チェック · サイズ:24px · 色:オレンジ出力
.css-checkbox .mark {
width: 24px;
height: 24px;
border: 2px solid #f97316;
border-radius: 5px;
}
.css-checkbox input:checked + .mark {
background: #f97316;
}チェックボックスのinputは視覚的に隠され、実際に表示される四角形は入力要素の:checked状態でスタイルされる隣接<span>です。チェックされると小さく回転したボーダーがチェックマークとして描画されます。
ネイティブのチェックボックスを削除せずに隠す理由
本物の<input>を使わず、クリックイベント付きのスタイル済み<div>だけでチェックボックスを作りたくなるかもしれませんが、それではキーボード操作・フォーム送信・スクリーンリーダー向けのセマンティクスが失われてしまいます。このツールが生成するパターンは、マークアップ内に本物のチェックボックス入力を残したまま、opacity: 0などで視覚的に隠して再配置するだけなので、重要な点はすべてブラウザから見て本物のチェックボックスのままであり、見た目だけを隣接要素が担当します。
3つのスタイルの概要
- 丸型チェック:おなじみの「四角+チェックマーク」パターンで、フォーム項目や規約同意チェック、複数選択リストで最もよく使われます。
- トグルスイッチ:フォーム項目というより、その場でオン・オフを切り替える設定という印象を与えます——チェックボックスの並ぶリストより、設定画面向きです。
- 塗りつぶし円:ラジオボタンに近いミニマルな見た目で、角のある四角が周囲の丸みを帯びたUI要素の中で浮いて見えるときに使えます。
UI全体との調和
生成されるアクセントカラーはチェック状態にのみ適用されるので、ブランドカラーやボタンの色に合わせるとページ全体との一貫性が生まれます。インターフェースの他の場所で使っているborder-radiusと揃えると、さらにまとまりのある見た目になります。
よくある質問
スタイルを変えたチェックボックスはアクセシブルなままですか?
はい。内部の要素は本物の<input type="checkbox">のままで、削除ではなく視覚的に隠されているだけです。フォーカスも受け取り、キーボード操作(スペースキーでの切り替え)にも反応し、スクリーンリーダーは隣にあるスタイル済みのspanではなく入力要素自体を読み上げるため、正しくアナウンスされます。
なぜCSSでinput:checked + .markのような隣接セレクタを使うのですか?
表示用のボックスは実際のチェックボックス入力とは別の要素なので、CSSでは入力要素の状態に応じてその隣接要素をスタイルする手段が必要です。+結合子はチェックされた入力の直後にある要素を選択するもので、JavaScriptなしでカスタムのチェックボックスやラジオボタンのスタイルを作る標準的な手法です。
デモだけでなく実際のフォームでも使えますか?
はい。生成されたCSSをコピーし、HTML/プレビューに示された構造と同じ形で実際のフォームのチェックボックス入力を囲んでください。ネイティブのチェックボックスのままなので、スタイルなしのチェックボックスと同じようにフォームと一緒に送信され、既存のバリデーションロジックとも問題なく動作します。
なぜ丸型スタイルのチェックマークにはアニメーションが付いているのですか?
チェックマークに短い拡大アニメーションを付けることで、瞬時に表示・非表示が切り替わるよりも、チェック状態がより意図的で反応の良いものに感じられます。これは洗練されたUIのチェックボックスでよく使われる手法で、生成されるコードには小さな@keyframesルールとして含まれています。
トグルスイッチのスタイルには別のHTMLが必要ですか?
いいえ。3つのスタイルはすべて同じ基本マークアップ(隠されたチェックボックス入力と、見た目を担当する隣接要素)を使用します。このツールでスタイルを切り替えても、同じ構造に適用されるCSSルールが変わるだけなので、後からHTMLを触らずにスタイルだけ変更できます。