Skip to content

ToggleSwitch ​

設定の入 / 切を、その場で切り替えます。

いつ使うか ​

切り替えた瞬間に反映される設定に使います。 通知の受け取り、公開 / 非公開の切り替えが該当します。

送信ボタンを押して初めて反映されるものには使いません。 その場合はチェックボックス(Input)を使います。

例 ​

基本 ​

大きさは持っていません。 ルートに w-16 h-8、つまみに w-8 h-8 のように、つまみがルートの半分の幅になるよう指定してください。

html
<div class="jumpu-toggle-switch h-8 w-16">
  <input id="default" type="checkbox" aria-label="通知を受け取る" />
  <label for="default">
    <span class="h-8 w-8"></span>
  </label>
</div>

小さくする ​

html
<div class="jumpu-toggle-switch h-4 w-8">
  <input id="small" type="checkbox" aria-label="通知を受け取る" />
  <label for="small">
    <span class="h-4 w-4"></span>
  </label>
</div>

ユーティリティによる調整 ​

調整したいこと書き方備考
大きさルートに w-16 h-8、つまみに w-8 h-8比率を崩すとつまみがはみ出します

IMPORTANT

つまみは translateX(100%) で右端に移動します。 ルートの幅がつまみの幅の 2 倍でないと、入のときに位置がずれます。

マークアップ規約 ​

位置要素 / 属性要否効果
ルート任意の要素 + w-* h-*必須寸法は利用側が与えます
ルートclass="jumpu-toggle-switch"必須
ルート直下input[type="checkbox"] + id必須透明にして全面に重ねます
ルート直下label + for必須背景(レール)になります
label 直下span + w-* h-*必須つまみになります

状態 ​

状態見た目発火条件
切レールが gray-300既定
入レールが primary-700、つまみが右へ移動input:checked

いずれも 100ms で遷移します。

フォーカスの見た目は持ちません。 input を透明にして重ねているため、ブラウザの既定のフォーカスリングも見えません。

アクセシビリティ ​

APG には Switch パターンがありますが、Jumpu UI では role="switch" を使わず input[type="checkbox"] を採用しています。 ネイティブ要素のほうが、ブラウザと支援技術の対応が安定しているためです。

IMPORTANT

label の中身はつまみの span だけで、テキストがありません。 このままではアクセシブルな名前が付かないため、input に aria-label を与えるか、label に文字を入れてください。