サービス紹介

タブ切替型サービス紹介

このパーツは、複数のサービスをタブで切り替えて表示する UI です。 role="tablist" のボタン群( sv-tb__b )に data-i でインデックスを持たせ、クリックされたタブに対応するパネル( sv-tb__p )に is-show を付けて表示を入れ替える JavaScript と組み合わせて…

プレビュー

このパーツの使いどころと実装ポイント

このパーツは、複数のサービスをタブで切り替えて表示する UI です。role="tablist" のボタン群(sv-tb__b)に data-i でインデックスを持たせ、クリックされたタブに対応するパネル(sv-tb__p)に is-show を付けて表示を入れ替える JavaScript と組み合わせて動きます。選択中のタブは下線(border-bottom)で示し、限られた縦スペースに複数サービスの詳細を収められるのが特長です。

向いている場面

3〜5 種類のサービスや料金プラン、機能カテゴリーを1 つの領域でコンパクトに見せ分けたいときに向きます。制作会社のサービス一覧、SaaS の機能紹介、サロンのメニュー区分など、横並びのカードを延々と並べたくない場面で効果的です。各パネルは見出し・説明・ul の箇条書きで構成され、情報量を確保しています。

カスタマイズの勘所

  • タブのボタンとパネルを 1 組ずつ追加・削除すれば項目数を変えられる
  • タブが多すぎると窮屈になるので 5 個程度までが見やすい目安
  • 初期表示するタブは is-actis-show の付け先で決まる

アクセシビリティ面では、ボタンに aria-selected、パネルに role="tabpanel"aria-labelledby を付け、矢印キーでタブ移動できるようにするとより親切です。スマホではタブが折り返して 2 段になるため、ラベルを短くするか横スクロールに切り替える設計も検討します。JavaScript が無効でも内容が読めるよう、フォールバックとして全パネル表示を用意すると安心です。

このパーツは JavaScript が含まれます。HTML の最後に <script> タグで読み込むか、外部 JS ファイルに切り出してください。

よくある質問

タブはいくつまで置けますか
技術的には自由に追加できますが、見やすさの目安は 5 個前後です。それ以上になるとタブが折り返したりラベルが窮屈になります。項目が多い場合はカテゴリーでまとめるか、タブを横スクロール対応にして 1 段に収める工夫をおすすめします。
JavaScript が動かないと中身は見えなくなりますか
初期表示のパネル以外は隠れる設計のため、スクリプトが無効だと切り替えられません。対策として、最初は全パネルを表示しておき、JavaScript が動いたときだけタブ切替に切り替えるフォールバックを用意すると、どの環境でも内容を読めるようになります。