Home/Components/Breadcrumbs/5 Breadcrumb UI Patterns Tailwind CSS
Back to search
Code · Live Preview
Componenthtml
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Breadcrumb Patterns - Formfield</title>

    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />

    <script src="https://cdn.tailwindcss.com"></script>
    <script>
      tailwind.config = {
        theme: {
          extend: {
            fontFamily: {
              serif: ["DM Serif Display", "serif"],
              sans: ["DM Sans", "sans-serif"],
            },
            colors: {
              ink: "#111110",
              "off-white": "#f5f4f1",
              "warm-muted": "#888580",
              "warm-border": "#2a2927",
              "warm-mid": "#e8e7e4",
              "warm-card": "#ffffff",
              "warm-bg": "#f5f4f1",
            },
          },
        },
      };
    </script>

    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <!-- NAVBAR -->
    <nav
      style="
        background: rgba(245, 244, 241, 0.92);
        border-bottom: 1px solid #e8e7e4;
        backdrop-filter: blur(12px);
        position: sticky;
        top: 0;
        z-index: 100;
      "
    >
      <div class="max-w-[1280px] mx-auto px-6 lg:px-10">
        <div class="flex items-center justify-between h-[64px]">
          <a href="#" class="flex items-center gap-2 no-underline">
            <div
              class="w-7 h-7 flex items-center justify-center rounded-[3px]"
              style="background: #111110"
            >
              <span
                class="font-serif text-[14px] leading-none"
                style="color: #f5f4f1"
                >F</span
              >
            </div>
            <span
              class="font-serif text-[19px] text-ink tracking-tight leading-none"
            >
              Formfield<span style="color: #888580">.</span>
            </span>
          </a>
          <span class="section-label hidden sm:block">Components</span>
          <div></div>
        </div>
      </div>
    </nav>

    <!-- MAIN -->
    <main class="max-w-[1280px] mx-auto px-6 lg:px-10 py-12">
      <!-- Page header -->
      <div class="mb-10">
        <p class="section-label mb-2">UI Patterns</p>
        <h1
          class="font-serif text-[2rem] text-ink leading-tight mb-2"
          style="letter-spacing: -0.02em"
        >
          Breadcrumb Components
        </h1>
        <p class="text-[14px] text-warm-muted max-w-lg leading-relaxed">
          5 breadcrumb patterns - each with a distinct visual approach. Same
          design system, different personality.
        </p>
      </div>

      <div class="divider mb-10"></div>

      <!-- Cards grid -->
      <div class="flex flex-col gap-6">
        <!-- PATTERN 1 - Slash Separator -->
        <div class="pattern-card">
          <div class="pattern-header">
            <div>
              <p class="section-label mb-1">Pattern 01</p>
              <h2
                class="font-serif text-[1.2rem] text-ink leading-none"
                style="letter-spacing: -0.01em"
              >
                Slash Separator
              </h2>
            </div>
            <p
              class="text-[12px] text-warm-muted leading-relaxed max-w-xs text-right hidden sm:block"
            >
              Classic slash-divided links. Clean, minimal, universally
              understood.
            </p>
          </div>
          <div class="pattern-body">
            <nav aria-label="breadcrumb" class="bc1">
              <a href="#" class="bc1-link">Home</a>
              <span class="bc1-sep" aria-hidden="true">/</span>
              <a href="#" class="bc1-link">Products</a>
              <span class="bc1-sep" aria-hidden="true">/</span>
              <a href="#" class="bc1-link">Design</a>
              <span class="bc1-sep" aria-hidden="true">/</span>
              <span class="bc1-current" aria-current="page"
                >Brand Identity Kit</span
              >
            </nav>
          </div>
          <!-- Code snippet -->
          <div
            class="px-6 py-4"
            style="border-top: 1px solid #e8e7e4; background: #faf9f7"
          >
            <p class="section-label mb-2">Separator</p>
            <p class="text-[12px] text-warm-muted font-sans">
              Character
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >/</code
              >
              - padding
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >0 10px</code
              >
              - color
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >#e8e7e4</code
              >
            </p>
          </div>
        </div>

        <!-- PATTERN 2 - Pill / Tag Style -->
        <div class="pattern-card">
          <div class="pattern-header">
            <div>
              <p class="section-label mb-1">Pattern 02</p>
              <h2
                class="font-serif text-[1.2rem] text-ink leading-none"
                style="letter-spacing: -0.01em"
              >
                Pill Tags
              </h2>
            </div>
            <p
              class="text-[12px] text-warm-muted leading-relaxed max-w-xs text-right hidden sm:block"
            >
              Each crumb is a bordered tag. Current page gets the solid dark
              fill.
            </p>
          </div>
          <div class="pattern-body">
            <nav aria-label="breadcrumb" class="bc2">
              <a href="#" class="bc2-link">Home</a>
              <span class="bc2-sep" aria-hidden="true">›</span>
              <a href="#" class="bc2-link">Products</a>
              <span class="bc2-sep" aria-hidden="true">›</span>
              <a href="#" class="bc2-link">Design</a>
              <span class="bc2-sep" aria-hidden="true">›</span>
              <span class="bc2-current" aria-current="page"
                >Brand Identity Kit</span
              >
            </nav>
          </div>
          <div
            class="px-6 py-4"
            style="border-top: 1px solid #e8e7e4; background: #faf9f7"
          >
            <p class="section-label mb-2">Active state</p>
            <p class="text-[12px] text-warm-muted font-sans">
              Background
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >#111110</code
              >
              - text
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >#f5f4f1</code
              >
              - border-radius
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >4px</code
              >
            </p>
          </div>
        </div>

        <!-- PATTERN 3 - Dot + Underline -->
        <div class="pattern-card">
          <div class="pattern-header">
            <div>
              <p class="section-label mb-1">Pattern 03</p>
              <h2
                class="font-serif text-[1.2rem] text-ink leading-none"
                style="letter-spacing: -0.01em"
              >
                Dot &amp; Underline
              </h2>
            </div>
            <p
              class="text-[12px] text-warm-muted leading-relaxed max-w-xs text-right hidden sm:block"
            >
              A small dot separates items. Links underline on hover. Current
              page stays underlined.
            </p>
          </div>
          <div class="pattern-body">
            <nav aria-label="breadcrumb" class="bc3">
              <a href="#" class="bc3-link">Home</a>
              <span class="bc3-sep" aria-hidden="true"></span>
              <a href="#" class="bc3-link">Products</a>
              <span class="bc3-sep" aria-hidden="true"></span>
              <a href="#" class="bc3-link">Design</a>
              <span class="bc3-sep" aria-hidden="true"></span>
              <span class="bc3-current" aria-current="page"
                >Brand Identity Kit</span
              >
            </nav>
          </div>
          <div
            class="px-6 py-4"
            style="border-top: 1px solid #e8e7e4; background: #faf9f7"
          >
            <p class="section-label mb-2">Separator</p>
            <p class="text-[12px] text-warm-muted font-sans">
              4×4px circle - color
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >#e8e7e4</code
              >
              - margin
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >0 12px</code
              >
            </p>
          </div>
        </div>

        <!-- PATTERN 4 - Home Icon + Chevron -->
        <div class="pattern-card">
          <div class="pattern-header">
            <div>
              <p class="section-label mb-1">Pattern 04</p>
              <h2
                class="font-serif text-[1.2rem] text-ink leading-none"
                style="letter-spacing: -0.01em"
              >
                Icon &amp; Chevron
              </h2>
            </div>
            <p
              class="text-[12px] text-warm-muted leading-relaxed max-w-xs text-right hidden sm:block"
            >
              Home is an icon button. Chevron arrows separate the rest. Compact
              and structured.
            </p>
          </div>
          <div class="pattern-body">
            <nav aria-label="breadcrumb" class="bc4">
              <!-- Home icon -->
              <a href="#" class="bc4-home" aria-label="Home">
                <svg width="13" height="13" viewBox="0 0 13 13" fill="none">
                  <path
                    d="M1.5 6L6.5 1.5L11.5 6V11.5H8.5V8.5H4.5V11.5H1.5V6Z"
                    stroke="currentColor"
                    stroke-width="1.2"
                    stroke-linejoin="round"
                  />
                </svg>
              </a>

              <span class="bc4-sep" aria-hidden="true">
                <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
                  <path
                    d="M4 2.5L8 6L4 9.5"
                    stroke="currentColor"
                    stroke-width="1.3"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </span>

              <a href="#" class="bc4-link">Products</a>

              <span class="bc4-sep" aria-hidden="true">
                <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
                  <path
                    d="M4 2.5L8 6L4 9.5"
                    stroke="currentColor"
                    stroke-width="1.3"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </span>

              <a href="#" class="bc4-link">Design</a>

              <span class="bc4-sep" aria-hidden="true">
                <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
                  <path
                    d="M4 2.5L8 6L4 9.5"
                    stroke="currentColor"
                    stroke-width="1.3"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </span>

              <span class="bc4-current" aria-current="page"
                >Brand Identity Kit</span
              >
            </nav>
          </div>
          <div
            class="px-6 py-4"
            style="border-top: 1px solid #e8e7e4; background: #faf9f7"
          >
            <p class="section-label mb-2">Home icon</p>
            <p class="text-[12px] text-warm-muted font-sans">
              28×28px bordered box - border-radius
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >4px</code
              >
              - chevron separator SVG
            </p>
          </div>
        </div>

        <!-- PATTERN 5 - Stepped / Numbered -->
        <div class="pattern-card">
          <div class="pattern-header">
            <div>
              <p class="section-label mb-1">Pattern 05</p>
              <h2
                class="font-serif text-[1.2rem] text-ink leading-none"
                style="letter-spacing: -0.01em"
              >
                Stepped Numbers
              </h2>
            </div>
            <p
              class="text-[12px] text-warm-muted leading-relaxed max-w-xs text-right hidden sm:block"
            >
              Numbered steps with a line connector. Shows progress through a
              hierarchy or flow.
            </p>
          </div>
          <div class="pattern-body flex-col gap-6">
            <!-- State A: step 3 active -->
            <div>
              <p class="section-label text-center mb-4">Step 3 active</p>
              <nav aria-label="breadcrumb" class="bc5">
                <a href="#" class="bc5-step done" aria-label="Step 1: Home">
                  <div class="bc5-num">
                    <!-- Checkmark for completed -->
                    <svg width="9" height="9" viewBox="0 0 9 9" fill="none">
                      <path
                        d="M1.5 4.5L3.5 6.5L7.5 2.5"
                        stroke="currentColor"
                        stroke-width="1.4"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                      />
                    </svg>
                  </div>
                  <span class="bc5-text">Home</span>
                </a>
                <div class="bc5-sep"></div>
                <a href="#" class="bc5-step done" aria-label="Step 2: Products">
                  <div class="bc5-num">
                    <svg width="9" height="9" viewBox="0 0 9 9" fill="none">
                      <path
                        d="M1.5 4.5L3.5 6.5L7.5 2.5"
                        stroke="currentColor"
                        stroke-width="1.4"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                      />
                    </svg>
                  </div>
                  <span class="bc5-text">Products</span>
                </a>
                <div class="bc5-sep"></div>
                <a href="#" class="bc5-step done" aria-label="Step 3: Design">
                  <div class="bc5-num">
                    <svg width="9" height="9" viewBox="0 0 9 9" fill="none">
                      <path
                        d="M1.5 4.5L3.5 6.5L7.5 2.5"
                        stroke="currentColor"
                        stroke-width="1.4"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                      />
                    </svg>
                  </div>
                  <span class="bc5-text">Design</span>
                </a>
                <div class="bc5-sep"></div>
                <span class="bc5-step active" aria-current="page">
                  <div class="bc5-num">4</div>
                  <span class="bc5-text">Brand Identity Kit</span>
                </span>
              </nav>
            </div>

            <div class="w-full h-px" style="background: #e8e7e4"></div>

            <!-- State B: step 2 active -->
            <div>
              <p class="section-label text-center mb-4">Step 2 active</p>
              <nav aria-label="breadcrumb" class="bc5">
                <a href="#" class="bc5-step done">
                  <div class="bc5-num">
                    <svg width="9" height="9" viewBox="0 0 9 9" fill="none">
                      <path
                        d="M1.5 4.5L3.5 6.5L7.5 2.5"
                        stroke="currentColor"
                        stroke-width="1.4"
                        stroke-linecap="round"
                        stroke-linejoin="round"
                      />
                    </svg>
                  </div>
                  <span class="bc5-text">Home</span>
                </a>
                <div class="bc5-sep"></div>
                <span class="bc5-step active" aria-current="page">
                  <div class="bc5-num">2</div>
                  <span class="bc5-text">Products</span>
                </span>
                <div class="bc5-sep"></div>
                <span class="bc5-step">
                  <div class="bc5-num">3</div>
                  <span class="bc5-text">Design</span>
                </span>
                <div class="bc5-sep"></div>
                <span class="bc5-step">
                  <div class="bc5-num">4</div>
                  <span class="bc5-text">Brand Identity Kit</span>
                </span>
              </nav>
            </div>
          </div>
          <div
            class="px-6 py-4"
            style="border-top: 1px solid #e8e7e4; background: #faf9f7"
          >
            <p class="section-label mb-2">States</p>
            <p class="text-[12px] text-warm-muted font-sans">
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >.done</code
              >
              - completed with checkmark &nbsp;·&nbsp;
              <code
                style="
                  background: #e8e7e4;
                  padding: 1px 5px;
                  border-radius: 3px;
                  font-size: 11px;
                "
                >.active</code
              >
              - current, filled dark &nbsp;·&nbsp; default - upcoming, muted
            </p>
          </div>
        </div>
      </div>
      <!-- end cards -->

      <!-- Bottom note -->
      <div class="mt-12 pt-8" style="border-top: 1px solid #e8e7e4">
        <div
          class="flex flex-col sm:flex-row sm:items-center justify-between gap-3"
        >
          <p class="text-[12px] text-warm-muted">
            All patterns use DM Sans 13px · warm neutral palette · 0.15s ease
            transitions
          </p>
          <p class="text-[12px] text-warm-muted">
            © 2026 Formfield. All rights reserved.
          </p>
        </div>
      </div>
    </main>
  </body>
</html>
Detecting libraries...

Component details

Overview, install command, dependencies, and project links.

Five distinct breadcrumb navigation patterns built with pure HTML and Tailwind CSS — no JavaScript, no dependencies. Each pattern follows the same warm monochrome design system but takes a completely different visual approach. Pattern 01 uses a classic slash separator with muted-to-ink hover transitions. Pattern 02 wraps each crumb in a bordered pill tag, with the current page getting a solid dark fill matching the CTA button style. Pattern 03 uses a 4×4px circular dot separator with underline hover states on links and a permanent underline on the active crumb. Pattern 04 replaces the home link with a bordered icon button and uses SVG chevron arrows as separators — structured and compact. Pattern 05 is a stepped numbered breadcrumb with a horizontal line connector and three distinct states: completed (checkmark), active (dark fill), and upcoming (muted) — useful for multi-step flows and deep hierarchies. All five are horizontally scrollable on mobile with hidden scrollbars, fully accessible with aria-label and aria-current="page", and use DM Serif Display for headings and DM Sans for all breadcrumb text on a warm #f5f4f1 background.

Added Apr 20, 2026

Discussion

Feedback, implementation tips, and usage notes.

0 threads

Comments

Sign in to join the conversation