← All libraries

SugarCrumbs

SugarCrumbs

Navigation breadcrumbs for terminal UIs

port of KevM/bubbleo navigationbreadcrumbrouting

Push / pop navigation items to build breadcrumbs. Track a stack of visited locations — useful for file explorers, menu trees, and shell history.

Install

composer require sugarcraft/sugar-crumbs

Quickstart

use SugarCraft\Crumbs\{NavStack, NavigationItem};

$nav = new NavStack();
$nav = $nav->push(new NavigationItem('Home', '/'));
$nav = $nav->push(new NavigationItem('Settings', '/settings'));
$nav = $nav->push(new NavigationItem('Display', '/settings/display'));

echo $nav->view(); // Home / Settings / Display
$nav = $nav->pop(); // back to Settings

What's in the box

NavStackImmutable push / pop navigation stack.
Shell integrationDetect directory changes and auto-push.
FilterType-ahead filtering within the breadcrumb bar.

Source & demos

Try the quickstart →

API

ClassMethodDescription
NavStacknew()Create navigation stack
NavStackpush(item)Push navigation item
NavStackpop()Pop navigation item
NavStackview()Render breadcrumbs
NavStackfilter(query)Filter breadcrumbs
NavigationItemnew(label, path)Create navigation item
BreadcrumbwithZoneManager(?Manager)Attach Manager for mouse-click zone tracking (candy-zone integration)
BreadcrumbsetSeparator(string)Set separator between crumbs
BreadcrumbsetMaxWidth(int)Truncate if total width exceeds limit
Breadcrumbrender(NavStack)Render NavStack as breadcrumb string

Demos.

VHS-recorded GIFs of every example shipped with the library. Regenerated automatically on every push that touches the source.

Push / pop / back

Push / pop / back

NavStack push / pop / back through nested screens.
Basic crumb trail

Basic crumb trail

Render a `/Home > Settings > Account` crumb trail.