Skip to content

IBX-11964: Add native app switcher (login rail and back office side panel) - #1997

Open
tischsoic wants to merge 7 commits into
new-menufrom
IBX-11964-app-switcher
Open

IBX-11964: Add native app switcher (login rail and back office side panel)#1997
tischsoic wants to merge 7 commits into
new-menufrom
IBX-11964-app-switcher

Conversation

@tischsoic

@tischsoic tischsoic commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Warning

Before merge: drop the two TEMPORARY: commits (dependencies.json) and delete the admin-ui-assets#IBX-11964-app-switcher branch — both exist only so browser tests see the unmerged sibling branches.

🎫 Issue IBX-11964

Related PRs:

Description:

App switcher redesign. One shared Twig partial renders the app list in two places:

  • Login pages — replaces the hardcoded brand sidebar with the new dark rail (bigger logos, Cohesivo highlighted as the current app). No JS.
  • Back office — new grid-dots button at the top-left of the header opens a white rail that pushes the content aside (never covers the main menu). Closes on the button, Esc or outside click; not remembered between page loads.

Also adds gap to .ibexa-main-header, whose columns previously had no minimum spacing.

The vendored Qntm widget from ibexa/app-switcher (top-right) is untouched — that package is being discontinued separately.

For QA:

  • /admin/login: dark rail with the 6 brands, Cohesivo highlighted, links open in new tabs.
  • Any back-office page: click the dots button (top-left) — the rail slides in and shifts the menu and content right; the menu stays fully visible. Cohesivo goes to the dashboard, other apps open in new tabs. Close with the button, Esc, or a click outside.
  • Known and unrelated: the console error Cannot find module '.../design.system.provider' comes from the new-menu base combined with product-catalog 6.0.

Documentation:

Comment thread src/bundle/Resources/public/scss/_app-switcher.scss Outdated
Comment thread src/bundle/Resources/public/scss/_app-switcher.scss Outdated
{% set modifier = modifier|default('') %}
{% set active_app_name = active_app_name|default(null) %}
{% set active_app_href = active_app_href|default(null) %}
{% set apps = apps|default([

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't it be better solution to get these from backend? instead of hardcoding them in twig

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that for now, we want to hardcode it - I think there should be later different switcher for all companies.

tischsoic and others added 6 commits August 11, 2026 14:11
…anel)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…witcher

The branch carries the ids vendors built against
design-system#IBX-11964-app-switcher (new-menu DS content + the
app-switcher icon). To be dropped before merge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The dark design defines no hover state for the auth-pages app switcher;
the label color change was carried over from the old sidebar.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The reference defines no hover state for app-switcher links: neutralize the
Bootstrap a:hover underline ($link-hover-decoration is overridden to
underline in ibexa-bootstrap.scss) and drop the panel tile hover background.
The toggler keeps its hover background, as in the design.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tischsoic
tischsoic force-pushed the IBX-11964-app-switcher branch from 733d8e6 to 18d9278 Compare August 11, 2026 12:13
Review follow-up: the panel label's letter-spacing duplicates the value
inherited from the ids root html rule, and prefers-reduced-motion guards
are not used anywhere else in the codebase.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants