All Projects → Windvis → ember-breadcrumb-trail

Windvis / ember-breadcrumb-trail

Licence: MIT license
Minimalistic but very flexible breadcrumb management solution for Ember applications.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Handlebars
879 projects

Projects that are alternatives of or similar to ember-breadcrumb-trail

Docfy
Build fully personalized documentation sites; write content and demos in Markdown.
Stars: ✭ 48 (+269.23%)
Mutual labels:  emberjs, ember-addon
Ember Model Validator
ember-cli addon adds validation support to your Ember-Data models.
Stars: ✭ 141 (+984.62%)
Mutual labels:  emberjs, ember-addon
Ember Cli Foundation 6 Sass
Stars: ✭ 65 (+400%)
Mutual labels:  emberjs, ember-addon
ember-addon-viewer
View information about addons used in your Ember app.
Stars: ✭ 14 (+7.69%)
Mutual labels:  emberjs, ember-addon
ember-google-maps
A friendly Ember addon for working with Google Maps.
Stars: ✭ 93 (+615.38%)
Mutual labels:  emberjs, ember-addon
Ember Data Table
Data tables for Ember following Google Design specs
Stars: ✭ 19 (+46.15%)
Mutual labels:  emberjs, ember-addon
Ember Cli Bundle Analyzer
Analyze the size and contents of your Ember app's bundles
Stars: ✭ 78 (+500%)
Mutual labels:  emberjs, ember-addon
ember-render-helpers
Complimentary render template helpers to the render modifiers
Stars: ✭ 19 (+46.15%)
Mutual labels:  emberjs, ember-addon
Ember Parachute
Improved Query Params for Ember
Stars: ✭ 200 (+1438.46%)
Mutual labels:  emberjs, ember-addon
Ember One Way Controls
Native one way input
Stars: ✭ 184 (+1315.38%)
Mutual labels:  emberjs, ember-addon
Ember Flexberry Data
OData v4 for EmberJS, JS Query Language, Offline, Data projections
Stars: ✭ 6 (-53.85%)
Mutual labels:  emberjs, ember-addon
ember-await
Await component for Ember Applications. Resolve your data on demand, just when needed.
Stars: ✭ 54 (+315.38%)
Mutual labels:  emberjs, ember-addon
Ember Apollo Client
🚀 An ember-cli addon for Apollo Client and GraphQL
Stars: ✭ 257 (+1876.92%)
Mutual labels:  emberjs, ember-addon
Ember Accessibility
An EmberJS addon to help identify accessibility violations during development
Stars: ✭ 29 (+123.08%)
Mutual labels:  emberjs, ember-addon
ember-introjs
An Ember Component for intro.js
Stars: ✭ 77 (+492.31%)
Mutual labels:  emberjs, ember-addon
Ember Styleguide
This is a UI addon that intends to help standardize the Ember family of websites and make it easier to make the Ember website an Ember app.
Stars: ✭ 69 (+430.77%)
Mutual labels:  emberjs, ember-addon
ember-deep-tracked
Deep auto-tracking for when you just don't care, and want things to work (at the cost of performance in some situtations)
Stars: ✭ 20 (+53.85%)
Mutual labels:  emberjs, ember-addon
ember-gridstack
Ember components to build drag-and-drop multi-column grids powered by gridstack.js
Stars: ✭ 31 (+138.46%)
Mutual labels:  emberjs, ember-addon
Ember Cli Addon Docs
Easy, beautiful docs for your OSS Ember addons
Stars: ✭ 162 (+1146.15%)
Mutual labels:  emberjs, ember-addon
Ember Ajax
Service for making AJAX requests in Ember applications
Stars: ✭ 218 (+1576.92%)
Mutual labels:  emberjs, ember-addon

ember-breadcrumb-trail

CI Code Style: Prettier

ember-breadcrumb-trail is a minimalistic but very flexible breadcrumb management solution. It provides only 2 helpers but they give you complete control over the HTML structure, the components you use to render that structure and the needed data to make it all work. Bring your own everything!

This addon is heavily inspired by ember-page-title and the already existing breadcrumb addons.

Compatibility

  • Ember.js v3.16 or above (lower versions might work, but aren't tested)
  • Ember CLI v3.16 or above
  • Node.js v12 or above
  • Works with Embroider (safe and optimized) and FastBoot

Installation

ember install ember-breadcrumb-trail

Usage

{{breadcrumb}} helper

This helper allows you to add breadcrumbs and is the equivalent of the page-title helper but for breadcrumbs.

Positional argument(s)

Positional arguments are used as the title for the breadcrumb. Multiple positional arguments will be combined into a single title.

{{breadcrumb "Home"}}
{{! "Home" }}

{{breadcrumb "Hottest JS framework 🔥: " this.hottestFramework}}
{{! "Hottest JS framework 🔥: Ember" }}

The title can be accessed with the title property of the breadcrumb object.

Named arguments

Any data that you need to render your breadcrumbs can be passed in as named arguments. This can be used to pass route information so that the breadcrumb can be linked to it.

The named arguments will be available under the data property of the breadcrumb object.

{{breadcrumbs}} helper

This helper simply returns the registered breadcrumbs and can be used wherever you want to display them. The breadcrumb data can easily be looped over with {{#each}} and combined with other helpers if extra data manipulation is needed.

Returns

Array of registered breadcrumbs (objects)

Examples

a11y

This simple example implements an a11y friendly breadcrumb structure using Ember's <LinkTo> component and the {{has-next}} helper from ember-composable-helpers to determine if a breadcrumb is the last breadcrumb in the list.

<nav aria-label="Breadcrumb">
  <ol>
    {{#each (breadcrumbs) as |breadcrumb|}}
      <li>
        <LinkTo
          @route={{breadcrumb.data.route}}
          aria-current={{if (not (has-next breadcrumb (breadcrumbs))) "page"}}
        >
          {{breadcrumb.title}}
        </LinkTo>
      </li>
    {{/each}}
  </ol>
</nav>

{{! index.hbs }}
{{breadcrumb "Home" route="index"}}

{{! about.hbs }}
{{breadcrumb "About" route="about"}}

ember-link

A similar example where ember-link is used instead of <LinkTo>.

<nav aria-label="Breadcrumb">
  <ol>
    {{#each (breadcrumbs) as |breadcrumb|}}
      <li>
        <a
          href={{breadcrumb.data.link.href}}
          aria-current={{if (not (has-next breadcrumb (breadcrumbs))) "page"}}
          {{on "click" breadcrumb.data.link.transitionTo}}
        >
          {{breadcrumb.title}}
        </a>
      </li>
    {{/each}}
  </ol>
</nav>

{{! blog.hbs }}
{{breadcrumb "Blog" link=(link "blog")}}

{{! blog/post.hbs }}
{{breadcrumb this.post.title link=(link "blog.post" this.post.id)}}

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].