Make breadcrumb usage more consistent
Summary
Our breadcrumb usage is currently rather inconsistent, it seems like we have too many special rules. Sometimes it's the top level item in the left sidebar, sometimes it's the sub-level item in the left sidebar, and sometimes the last item even changes the name completely.
| First level of left sidebar | Second level of left sidebar | Special breadcrumb in Settings | Normal breadcrumb in Settings |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
This also creates inconsistencies based on where a certain page lives. For example, Settings -> CI/CD is both available in a project, but also in the Admin Area. In a project, the breadcrumb becomes CI/CD settings while it stays CI/CD in the Admin Area.
| CI/CD settings | CI/CD |
|---|---|
![]() |
![]() |
This makes it tough for users to understand what system the breadcrumbs follow and where they can find the page. It also creates extra overhead for us to keep the special cases written down in Pajamas and up to date.
It looks to me like most of the special breadcrumbs are only created because we don't include the top level item from the left sidebar. For example, when you click on Issues -> Boards in the left sidebar, the breadcrumb has to become Project -> Issue boards, as it would normally only be Project -> Boards and that would not be helpful for the user.
Proposal
Instead of creating all these special cases, another alternative would be to include the top level item from the left sidebar in the breadcrumb. That means Project -> Issue boards would become Project -> Issues -> Boards. This would be more representative of where this is actually located in the UI and thus make it easier for the user to understand and find it again.





