PUDGE/UI v0.2.1 2025-07
  • + 5 new hardware compositions: Walkman Deck (Sony WM-D6C), Game Boy (Nintendo DMG-01), DJ Controller Deck (Pioneer DDJ), Synthesizer Panel (Roland SH-101 / Moog Minimoog)
  • + Changelog page at /changelog with full version history
  • + Animated NEW badge on recently added specs and compositions
  • + LCD-style version update banner with per-version dismiss
navigation .breadcrumbs

Breadcrumbs

Channel strip label chain showing navigation path

Size
State
<div class="breadcrumbs">
  <span class="breadcrumb-item">HOME</span>
  <span class="breadcrumb-sep">&#9654;</span>
  <span class="breadcrumb-item">SETTINGS</span>
  <span class="breadcrumb-sep">&#9654;</span>
  <span class="breadcrumb-item active">DISPLAY</span>
</div>
.breadcrumbs {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--font-ui); font-size: 10px; font-weight: 500;
  color: var(--text-muted); letter-spacing: 1px;
}

.breadcrumb-item { cursor: pointer; transition: color 0.12s; }

.breadcrumb-item:hover { color: var(--text-primary); }

.breadcrumb-item.active { color: var(--amber); }

.breadcrumb-sep { color: var(--text-muted); opacity: 0.5; font-size: 8px; }

API

Class Type Description
.breadcrumbs Base Primary component class
.default Size Extra large variant
.active State Active state

Design Notes

Physical Analog

Reference devices: Channel strip label chains on mixing desks. Mechanism: Represents a navigation path -- derived from the channel routing labels on mixing console signal chains (INPUT -> PREAMP -> EQ -> COMP -> BUS). Each segment represents a level in the navigation hierarchy, with separators indicating signal flow direction.

Geometry

Property Value
Gap 6px
Font size 10px
Separator font size 8px
Letter spacing 1px

CSS Recipe

Container (.breadcrumbs)

.breadcrumbs {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--font-ui); font-size: 10px; font-weight: 500;
  color: var(--text-muted); letter-spacing: 1px;
}

Item (.breadcrumb-item)

.breadcrumb-item { cursor: pointer; transition: color 0.12s; }

Hover

.breadcrumb-item:hover { color: var(--text-primary); }

Active (current location)

.breadcrumb-item.active { color: var(--amber); }

Separator (.breadcrumb-sep)

.breadcrumb-sep { color: var(--text-muted); opacity: 0.5; font-size: 8px; }

HTML Structure

<div class="breadcrumbs">
  <span class="breadcrumb-item">HOME</span>
  <span class="breadcrumb-sep">&#9654;</span>
  <span class="breadcrumb-item">SETTINGS</span>
  <span class="breadcrumb-sep">&#9654;</span>
  <span class="breadcrumb-item active">DISPLAY</span>
</div>

Size Variants

No size variants defined.

Material Variants

No material variants. Text-only component.

Theme Behavior

  • Text colors swap via --text-muted, --text-primary tokens
  • Active item always uses --amber
  • Separator opacity remains constant

Constraints

  1. MUST use right-pointing triangle (▶) as separator to indicate signal flow direction
  2. Separator MUST be at 50% opacity to maintain visual hierarchy
  3. Current/active item MUST be amber colored
  4. Previous items MUST be clickable (navigable)
  5. MUST use uppercase text (mixing desk convention)

Accessibility

  • Container should have role="navigation" and aria-label="Breadcrumb"
  • Use <nav> element as wrapper
  • Use <ol> with <li> for semantic list structure
  • Current item should have aria-current="page"
  • Separators should be decorative (aria-hidden="true")
Accessibility
Element
Use <nav> with aria-label
Keyboard
Arrow keys to navigate, Enter to select
Focus
Visible focus indicator required. Use native browser focus ring or custom :focus-visible styles.

Hand it to your agent

pudge-ui is a spec, not a package — there's nothing to npm install. Pick your stack, copy the prompt, and your coding agent builds this component from the spec.

The menu grid is Nokia-inspired. 3x3 icons with labels — simple and effective.

Depth model →
Pudge