tailwindcssで作る便利で使いやすいパンくずリストガイド

目次

はじめに

この文書では、Tailwind CSSを使ったパンくずリスト(Breadcrumb)の作り方を丁寧に解説します。HTMLの構造とTailwindのユーティリティを組み合わせ、見た目だけでなくアクセシビリティやSEOにも配慮した実装方法を紹介します。

本章の目的

本章では、まずパンくずリストの役割と利点、推奨する基本方針を説明します。続く章で実際のコード例やカスタマイズ法を順を追って示します。

パンくずリストが重要な理由

  • ユーザーの現在地を分かりやすく示すことで操作性が向上します。
  • 検索エンジンがサイト構造を理解しやすくなり、SEOに役立ちます。
  • 階層が深いサイトほど利便性が高くなります。

この記事で扱う内容

  • シンプルなHTML構造とTailwindクラスの組み合わせ
  • ARIA属性やsemantic要素を用いたアクセシビリティ対応
  • 区切り(セパレータ)のカスタマイズ方法
  • コンポーネント化とテンプレートの使い方

前提

基本的なHTMLとTailwindの導入が済んでいることを想定します。初心者向けに説明を付けますので、初めての方も安心して進めてください。

基本的な実装例

概要

パンくずリストはnavとolで階層を明示し、現在のページにはaria-current=”page”を付けます。Tailwindのユーティリティで見た目と動作を整えます。

実装例(HTML)

<nav aria-label="Breadcrumb">
  <ol class="flex items-center gap-x-1 text-sm">
    <li>
      <a href="/" class="text-blue-600 hover:text-black">ホーム</a>
    </li>
    <li>
      <span class="text-gray-500">/</span>
      <a href="/products" class="ml-1 text-blue-600 hover:text-black">商品一覧</a>
    </li>
    <li aria-current="page">
      <span class="text-gray-500">/</span>
      <span class="ml-1 text-gray-700">商品A</span>
    </li>
  </ol>
</nav>

ポイント解説

  • navとolで意味を明確にします。スクリーンリーダーが理解しやすくなります。
  • aria-current=”page”で現在ページを示します。補助技術に重要です。
  • Tailwindのflexとgap-x-1で横並びと間隔を作ります。text-blue-600はリンク色、hover:text-blackでホバー時の色変化を付けます。
  • 必要ならSVGの区切りやaria-hidden属性で視覚のみの要素を扱えます。

パンくずリストの仕切り

概要

パンくずリストの仕切り(例:>/)は視覚的な区切りに使います。CSSの疑似要素(::before/::after)で実装するのが一般的です。Tailwindではユーティリティで簡潔に書けます。

実装例(Tailwind)

  • 疑似要素を使う方法(各項目の間に表示):
<li class="after:content-['>'] after:mx-2 after:text-gray-400 last:after:content-['']">
  <a href="#">カテゴリ</a>
</li>
  • 実際の要素を使う方法(アクセシビリティ対応しやすい):
<li class="inline-flex items-center">
  <a href="#">カテゴリ</a>
  <span aria-hidden="true" class="mx-2 text-gray-400">/</span>
</li>

アクセシビリティの注意点

疑似要素は多くのスクリーンリーダーで装飾扱いになり読み上げられませんが、確実にしたい場合は実際の要素にaria-hidden="true"を付けます。逆に画面読み上げで区切りを明示したいときはs‌r-onlyで補助テキストを用意します。

スタイル調整のコツ

  • 色や間隔はtext-mx-で統一します。
  • ホバー時に色を変えたい場合はhover:before:text-...やリンクに直接hover:text-...を追加します。
  • 最初や最後の不要な区切りはfirst:before:content-['']last:after:content-['']で消します。

便利なUIキットとテンプレート

概要

Tailwind CSS向けのUIキットやテンプレートには、パンくずリストのコンポーネントがあらかじめ用意されています。PostSrc、Tailblocks、daisyUIなどは無料で使え、コピー&ペーストで手早く導入できます。

主なキットと特徴

  • PostSrc:実際のページを想定したテンプレートが多く、レイアウトに合わせて貼り付けるだけで使えます。
  • Tailblocks:シンプルで読みやすいコードが多く、最小限のカスタマイズで済みます。
  • daisyUI:クラス名でテーマ切替ができ、見た目を統一しやすいです。

使い方の流れ(コピー&ペースト)

  1. キットのサイトでパンくずコンポーネントを探す。
  2. HTML/CSS(またはTailwindクラス)をコピーする。
  3. プロジェクトに貼り付け、必要な部分だけ書き換える。

カスタマイズのポイント

  • 色や間隔はTailwindのユーティリティクラスで変更できます。例:text-sm、px-2など。
  • アイコンはSVGを差し替えるだけで見た目が整います。
  • レスポンシブ対応は既存のクラスでほぼ対応できます。

注意点

  • ライセンスを確認してください。多くは無料ですが条件がある場合があります。
  • アクセシビリティ(aria属性など)を確認し、必要なら追記してください。

まとめ

ここまでの要点を分かりやすく整理します。

  • セマンティックな構造を使う: nav、ol、li を基本にします。検索エンジンや支援技術に優しい構造です。

  • Tailwindのユーティリティを活用する: flex、items-center、space-x-2、text-gray-500 などで見た目を整えます。クラスを組み合わせて一貫したデザインにできます。

  • 仕切りの実装例: before:content-[‘>’] や SVG アイコンを使う方法があります。before を使う場合は aria-hidden=”true” を付けて視覚補助に影響しないようにします。

  • アクセシビリティ: nav に aria-label、現ページの li に aria-current=”page” を付けて状態を伝えます。スクリーンリーダー向けの配慮を忘れないでください。

  • UIキットやテンプレートの活用: Flowbite、DaisyUI、Tailwind UI などは短時間で高品質なパンくずを作れます。カスタマイズも容易です。

短いチェックリスト:
1. nav と ol/li を使う
2. Tailwind で間隔と色を調整
3. 仕切りは before か SVG
4. aria-label と aria-current を設定

この流れで実装すれば、見た目と使いやすさの両立ができます。ぜひ試してみてください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次