xng-breadcrumb
Version:
A declarative and reactive breadcrumb approach for Angular 6 and beyond https://www.npmjs.com/package/xng-breadcrumb
121 lines (82 loc) β’ 9.52 kB
Markdown
<h1 align="center" style="color: teal">xng-breadcrumb</h1>
<div align="center">
> A lightweight, declarative, and dynamic breadcrumb solution for Angular. [π View on npm](https://www.npmjs.com/package/xng-breadcrumb)
[](https://github.com/udayvunnam/xng-breadcrumb/actions/workflows/ci-e2e.yml)
[](https://www.npmjs.com/package/xng-breadcrumb)
[](https://github.com/udayvunnam/xng-breadcrumb/blob/main/LICENSE)


[](https://x.com/udayvunnam_)
</div>
## What is xng-breadcrumb
**xng-breadcrumb** is a plug-and-play breadcrumb component built specifically for Angular applications. It automatically generates navigation breadcrumbs from your route configurationsβso you can stop manually stitching them together.
Whether you're building a dashboard, a blog, or an enterprise-grade app, this library helps keep your navigation intuitive and dynamic.
## π Why Breadcrumbs?
Breadcrumbs provide users with:
β
Context β See where they are in your app's hierarchy
β
Navigation β Quickly move to parent or sibling routes
β
Clarity β Reduced cognitive load in deep nested UIs
## π Documentation
Get started in minutes with our full [Documentation](https://udayvunnam.github.io/xng-breadcrumb), including usage, configuration, and examples.
## π§ͺ Live Demo
Experience it firsthand in the [Demo App](https://xng-breadcrumb.vercel.app/)
<a href="https://xng-breadcrumb.vercel.app//dashboard" rel="noopener" target="_blank" ><img width="945" alt="xng-breadcrumb usage" src="https://github.com/udayvunnam/xng-breadcrumb/assets/20707504/02aa26d1-a41f-4a47-a1fe-009d6dfcd0b7"></a></p>
## β¨ Features
- β
**Zero Config Setup**: Just drop `<xng-breadcrumb>` anywhere in the app.
- β
**Auto Labels** β Automatically generates labels from Angular route configs.
- β
**Custom Labels** β Easily override route labels.
- β
**Dynamic Updates**: Change breadcrumb labels dynamically using `BreadcrumbService.set()`, utilizing either _route path_ or _route alias_.
- β
**Skip breadcrumb**: Conditionally exclude specific routes from breadcrumb display
- β
**Disable breadcrumb**: Can disable specific routes in breadcrumbs to prevent navigation to intermediate states .
- β
**Customization**: Customize breadcrumb template to display **icons with label**, **apply text formatting using pipes**, **integrate i18n with ngx-translate**, and more.
- β
**Styling and Separators**: Easily customize breadcrumb separators and styles to match your application's design
- β
**QueryParams and Fragment**: Preserves params/fragments across navigation.
- β
**SSR Ready**: Fully compatible with Angular Universal.
## [π Support the Project](http://paypal.me/udayvunnam)
If xng-breadcrumb saves you hours or adds polish to your app, consider [becoming a sponsor](http://paypal.me/udayvunnam). Every contribution helps!
## π Contributors
Thanks to all the amazing folks who make this project better! ([πͺ](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/udayvunnam/"><img src="https://avatars.githubusercontent.com/u/20707504?v=4?s=100" width="100px;" alt="Uday Vunnam"/><br /><sub><b>Uday Vunnam</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=udayvunnam" title="Code">π»</a> <a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=udayvunnam" title="Documentation">π</a> <a href="#maintenance-udayvunnam" title="Maintenance">π§</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anthonythiry"><img src="https://avatars.githubusercontent.com/u/28025542?v=4?s=100" width="100px;" alt="anthonythiry"/><br /><sub><b>anthonythiry</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=anthonythiry" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dedrazer"><img src="https://avatars.githubusercontent.com/u/23525418?v=4?s=100" width="100px;" alt="dedrazer"/><br /><sub><b>dedrazer</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=dedrazer" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dannyfeliz.com/"><img src="https://avatars.githubusercontent.com/u/5460365?v=4?s=100" width="100px;" alt="Danny Feliz"/><br /><sub><b>Danny Feliz</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=DannyFeliz" title="Documentation">π</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kapenzo"><img src="https://avatars.githubusercontent.com/u/16196222?v=4?s=100" width="100px;" alt="Kapsky"/><br /><sub><b>Kapsky</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=kapenzo" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/andreicojea"><img src="https://avatars.githubusercontent.com/u/4705022?v=4?s=100" width="100px;" alt="Andrei Cojea"/><br /><sub><b>Andrei Cojea</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=andreicojea" title="Documentation">π</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jontze"><img src="https://avatars.githubusercontent.com/u/42588836?v=4?s=100" width="100px;" alt="Jonathan"/><br /><sub><b>Jonathan</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=jontze" title="Code">π»</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://pavankjadda.dev/"><img src="https://avatars.githubusercontent.com/u/17564080?v=4?s=100" width="100px;" alt="Pavan Kumar Jadda"/><br /><sub><b>Pavan Kumar Jadda</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=pavankjadda" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LeonFretter"><img src="https://avatars.githubusercontent.com/u/40633983?v=4?s=100" width="100px;" alt="Leon Fretter"/><br /><sub><b>Leon Fretter</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=LeonFretter" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lukasmatta"><img src="https://avatars.githubusercontent.com/u/4323927?v=4?s=100" width="100px;" alt="LukΓ‘Ε‘ Matta"/><br /><sub><b>LukΓ‘Ε‘ Matta</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=lukasmatta" title="Documentation">π</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cskiwi"><img src="https://avatars.githubusercontent.com/u/847540?v=4?s=100" width="100px;" alt="Glenn Latomme"/><br /><sub><b>Glenn Latomme</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=cskiwi" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ovidiu-cssrl"><img src="https://avatars.githubusercontent.com/u/48490266?v=4?s=100" width="100px;" alt="Ovidiu HaureΘ"/><br /><sub><b>Ovidiu HaureΘ</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=ovidiu-cssrl" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KristofGilis"><img src="https://avatars.githubusercontent.com/u/2454275?v=4?s=100" width="100px;" alt="Kristof Gilis"/><br /><sub><b>Kristof Gilis</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=KristofGilis" title="Code">π»</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aliaksanderkazlou"><img src="https://avatars.githubusercontent.com/u/11739292?v=4?s=100" width="100px;" alt="Aleksander"/><br /><sub><b>Aleksander</b></sub></a><br /><a href="https://github.com/udayvunnam/xng-breadcrumb/commits?author=aliaksanderkazlou" title="Code">π»</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td align="center" size="13px" colspan="7">
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
</img>
</td>
</tr>
</tfoot>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Want to see your name here? We welcome [all-contributions](https://github.com/all-contributors/all-contributors)!
Adding a contributor is easy:
```bash
pnpm all-contributors add <username> <contribution>
# Example:
pnpm all-contributors add jfmengels code,doc
```