marshmallow/breadcrumb

A package for Laravel Breadcrum usage with the ability to add some default and use your custom templating

Maintainers

Package info

github.com/marshmallow-packages/breadcrumb

Homepage

pkg:composer/marshmallow/breadcrumb

Statistics

Installs: 11 054

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.1 2021-04-07 10:58 UTC

This package is auto-updated.

Last update: 2026-06-11 15:49:52 UTC


README

alt text

Laravel Breadcrumb

Latest Version on Packagist Total Downloads

Laravel Breadcrumb makes it easy to generate breadcrumbs in your Laravel application. You can configure a default crumb, add crumbs on the fly, and render them through fully publishable Blade templates. If you also use our Seoable package, it will generate the breadcrumb structured-data JSON for you automatically.

Installation

Install the package via Composer:

composer require marshmallow/breadcrumb

The service provider and the Breadcrumb facade alias are registered automatically through Laravel package discovery.

Publish the config file:

php artisan vendor:publish --tag="config" --provider="Marshmallow\Breadcrumb\BreadcrumbServiceProvider"

Publish the Blade views so you can change the markup to your liking:

php artisan vendor:publish --provider="Marshmallow\Breadcrumb\BreadcrumbServiceProvider"

The views are published to resources/views/vendor/marshmallow/breadcrumb.

Usage

Add a crumb

Use the Breadcrumb facade to add a crumb. The icon class is optional.

use Marshmallow\Breadcrumb\Facades\Breadcrumb;

Breadcrumb::add('Blog', '/blog');
Breadcrumb::add('My article', '/blog/my-article', 'fas fa-newspaper');

A default crumb (configured under breadcrumb.default) is added for you when the breadcrumb is resolved, so you usually only add the crumbs that come after it.

Add multiple crumbs

You can build Crumb instances yourself and add them in bulk:

use Marshmallow\Breadcrumb\Crumb;
use Marshmallow\Breadcrumb\Facades\Breadcrumb;

Breadcrumb::addCrumbs([
    Crumb::make('Blog', '/blog'),
    Crumb::make('My article', '/blog/my-article'),
]);

The Crumb class also lets you resolve the URL from a named route and set an icon:

use Marshmallow\Breadcrumb\Crumb;

$crumb = Crumb::make('My article', '/blog/my-article')
    ->setRoute('blog.show', ['article' => $article])
    ->setIconClass('fas fa-newspaper');

When a crumb's URL matches the current request, it is automatically flagged as the current (active) crumb.

Render the breadcrumbs

Render the breadcrumbs in your Blade view:

{!! Breadcrumb::generate() !!}

Configuration

After publishing, the configuration lives in config/breadcrumb.php.

Key Default Description
default.name 'Home' Name of the default crumb prepended to every breadcrumb.
default.url env('APP_URL') URL of the default crumb.
default.icon 'fas fa-home' Icon class of the default crumb.
view 'marshmallow::breadcrumb.container' The view used to render the breadcrumb.
classes.container 'breadcrumb-container' CSS class for the container element.
classes.list 'breadcrumb-list' CSS class for the list element.
classes.item 'breadcrumb-item' CSS class for each item.
classes.link 'breadcrumb-link' CSS class for each link.
classes.icon 'breadcrumb-icon' CSS class for each icon.
classes.active_item 'active-item' CSS class for the active item.
classes.active_link 'active-link' CSS class for the active link.

Security Vulnerabilities

Please report security vulnerabilities by email to stef@marshmallow.dev rather than via the public issue tracker.

Credits

License

The MIT License. Please see the License File for more information.