Breadcrumb
A navigation element that shows the current page's location in the site hierarchy with clickable links.
Loading...
<twig:Breadcrumb>
<twig:Breadcrumb:List>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href="#">Home</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator />
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Ellipsis />
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator />
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href="#">Components</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator />
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Page>Breadcrumb</twig:Breadcrumb:Page>
</twig:Breadcrumb:Item>
</twig:Breadcrumb:List>
</twig:Breadcrumb>
Installation
bin/console ux:install breadcrumb --kit shadcn
That's it!
Install the following Composer dependencies:
composer require symfony/ux-icons tales-from-a-dev/twig-tailwind-extra:^1.0.0
Copy the following file(s) into your Symfony app:
{# @block content The breadcrumb structure, typically a `Breadcrumb:List` #}
<nav{{ attributes }} aria-label="Breadcrumb">
{%- block content %}{% endblock -%}
</nav>
<span
class="{{ '[&>svg]:w-3.5 [&>svg]:h-3.5 ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
role="presentation"
aria-hidden="true"
>
<twig:ux:icon name="lucide:ellipsis" />
</span>
{# @block content The breadcrumb item content, typically a `Breadcrumb:Link` or `Breadcrumb:Page` #}
<li
class="{{ 'inline-flex items-center gap-1.5 ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
>
{%- block content %}{% endblock -%}
</li>
{# @block content The clickable link text #}
<a
class="{{ 'transition-colors hover:text-foreground ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
>
{%- block content %}{% endblock -%}
</a>
{# @block content The list of breadcrumb items, typically multiple `Breadcrumb:Item` components #}
<ol
class="{{ 'flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5 ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
>
{%- block content %}{% endblock -%}
</ol>
{# @block content The current page text (non-clickable) #}
<span
class="{{ 'font-normal text-foreground ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
role="link"
aria-disabled="true"
aria-current="page"
>
{%- block content %}{% endblock -%}
</span>
{# @block content The separator icon between breadcrumb items, defaults to a chevron #}
<li
class="{{ '[&>svg]:w-3.5 [&>svg]:h-3.5 ' ~ attributes.render('class')|tailwind_merge }}"
{{ attributes }}
role="presentation"
aria-hidden="true"
>
{%- block content -%}
<twig:ux:icon name="mdi:chevron-right" />
{%- endblock %}
</li>
Happy coding!
Usage
<twig:Breadcrumb>
<twig:Breadcrumb:List>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href="1">Home</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator />
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href="1">Components</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator />
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Page>Breadcrumb</twig:Breadcrumb:Page>
</twig:Breadcrumb:Item>
</twig:Breadcrumb:List>
</twig:Breadcrumb>
Examples
Custom Separator
Loading...
<twig:Breadcrumb>
<twig:Breadcrumb:List>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href=".">Home</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator>
<twig:ux:icon name="lucide:slash" />
</twig:Breadcrumb:Separator>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href=".">Docs</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator>
<twig:ux:icon name="lucide:slash" />
</twig:Breadcrumb:Separator>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Link href=".">Components</twig:Breadcrumb:Link>
</twig:Breadcrumb:Item>
<twig:Breadcrumb:Separator>
<twig:ux:icon name="lucide:slash" />
</twig:Breadcrumb:Separator>
<twig:Breadcrumb:Item>
<twig:Breadcrumb:Page>Breadcrumb</twig:Breadcrumb:Page>
</twig:Breadcrumb:Item>
</twig:Breadcrumb:List>
</twig:Breadcrumb>
API Reference
Breadcrumb
| Block | Description |
|---|---|
content |
The breadcrumb structure, typically a Breadcrumb:List |
Breadcrumb:Item
| Block | Description |
|---|---|
content |
The breadcrumb item content, typically a Breadcrumb:Link or Breadcrumb:Page |
Breadcrumb:Link
| Block | Description |
|---|---|
content |
The clickable link text |
Breadcrumb:List
| Block | Description |
|---|---|
content |
The list of breadcrumb items, typically multiple Breadcrumb:Item components |
Breadcrumb:Page
| Block | Description |
|---|---|
content |
The current page text (non-clickable) |
Breadcrumb:Separator
| Block | Description |
|---|---|
content |
The separator icon between breadcrumb items, defaults to a chevron |