Skip to content

Conversation

@kowalczyk-krzysztof
Copy link
Member

@kowalczyk-krzysztof kowalczyk-krzysztof commented Nov 19, 2025

Summary

This PR adds TopNavMenuBeta component to navigation plugin, which provides new design of app menu.

Preview screenshot from Storybook of how it would look in dashboard application (edit mode):

Screenshot 2025-12-05 at 16 12 08

Preview screenshot from Storybook of how it would look in discover application:

Screenshot 2025-12-05 at 16 11 02

TopNavMenuBeta offers a more restricted API than TopNavMenu

  1. Decoupling from UnifiedSearch - top nav menu will no longer be bundled with unified search. You will need to directly import unified search and render it.

  2. Removal of badges - badges will no longer be available in top nav menu. According to UX guidelines, current badges should be moved to use breadcrumbs extension API.

  3. items can only be EuiHeaderLink (a button with type text). For more advanced use cases, use action buttons.

  4. Action buttons - TopNavMenuBeta introduces action buttons:

    • primaryActionButton - this is meant to be used for primary actions (e.g saving), can be either an EuiButton or a split button, always placed as the rightmost item

    • secondaryActionButton - this is meant for secondary actions (e.g adding a new panel), can only be an EuiButton, placed to the left from primaryActionButton

  5. Removal of TopNavMenuExtensionsRegistry - registering global items is no longer possible, add items locally to your application.

Closes: https://github.com/elastic/kibana-team/issues/2270
Closes: https://github.com/elastic/kibana-team/issues/2273
Closes: https://github.com/elastic/kibana-team/issues/2272
Closes: https://github.com/elastic/kibana-team/issues/2352

@kowalczyk-krzysztof kowalczyk-krzysztof self-assigned this Nov 19, 2025
@kowalczyk-krzysztof kowalczyk-krzysztof added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// labels Nov 19, 2025
@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/app-menu-init branch 9 times, most recently from 1fbf98a to a201a2a Compare November 20, 2025 08:26
Copy link
Contributor

@Dosant Dosant left a comment

Choose a reason for hiding this comment

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

no actions items for now, just some thoughts for later:

@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/app-menu-init branch 7 times, most recently from 54d6af9 to 2b944fd Compare November 26, 2025 19:32
@kowalczyk-krzysztof kowalczyk-krzysztof force-pushed the feat/app-menu-init branch 2 times, most recently from 73e9d7a to d7afe89 Compare November 26, 2025 23:27
@kowalczyk-krzysztof kowalczyk-krzysztof marked this pull request as ready for review December 8, 2025 09:45
@kowalczyk-krzysztof kowalczyk-krzysztof requested review from a team as code owners December 8, 2025 09:45
@elasticmachine
Copy link
Contributor

Pinging @elastic/appex-sharedux (Team:SharedUX)

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
navigation 22 30 +8

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
navigation 0.0B 8.9KB +8.9KB

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
navigation 5 6 +1

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
navigation 13.1KB 16.6KB +3.5KB
Unknown metric groups

async chunk count

id before after diff
navigation 0 1 +1

References to deprecated APIs

id before after diff
discover 18 23 +5

Unreferenced deprecated APIs

id before after diff
navigation 0 2 +2

History

cc @kowalczyk-krzysztof

Copy link
Contributor

@Dosant Dosant left a comment

Choose a reason for hiding this comment

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

The approach looks good, but I haven't tested the actual UI.
Approving to unblock the general direction because I'll be out for the rest of the week

@kowalczyk-krzysztof kowalczyk-krzysztof enabled auto-merge (squash) December 8, 2025 15:11
@kowalczyk-krzysztof kowalczyk-krzysztof merged commit ca390cf into elastic:main Dec 8, 2025
17 checks passed
@kowalczyk-krzysztof kowalczyk-krzysztof deleted the feat/app-menu-init branch December 8, 2025 20:50
mbondyra added a commit to mbondyra/kibana that referenced this pull request Dec 8, 2025
* commit '6647f813c9fa03ac0378e3d4756246e8dc4b4c76': (33 commits)
  [Detection Engine] Extracts Rules/Alerts/Exceptions permission to new Rules feature privileges (elastic#239634)
  [Agent Builder] Add Intro Tour (elastic#245551)
  Add datastream lifecycle support to indices metadata (elastic#245548)
  [Serverless] Update preconfigured connectors (elastic#245445)
  [Metrics][Discover] Discover to prefer line chars for time series data (elastic#244595)
  Update dependency @elastic/ebt to ^1.4.1 (main) (elastic#241629)
  [One Workflow] fix: request bodies with oneof schemas (`kibana.SetAlertsStatus`, etc) (elastic#245344)
  Update dependency ai to v5 (elastic#244675)
  Fix Discover trace waterfall behavior with duplicate spans (elastic#244984)
  [FSH] Migrated fs usage to kbn/fs for sample ingest (elastic#244163)
  Streamlang: Unskip type coercion test (elastic#245519)
  [Response Ops][Reporting] Fixing error in calculating delay value between retries (elastic#245431)
  Add TopNavMenuBeta to navigation plugin (elastic#243578)
  [scout] support custom servers configuration (elastic#244306)
  [Fleet] Run agentless background sync without dry run (elastic#245286)
  Fix Change Password Flaky Test (elastic#245443)
  Add new gap fill status for rules (elastic#242595)
  [Kibana Search] Move SLOs higher up in search results (elastic#245518)
  feat(slo): introduce find SLO instances internal route (elastic#245333)
  [FSH] Dropped unnecessary `fs` persistence for synthetics project code (elastic#244338)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting ci:build-storybooks release_note:skip Skip the PR/issue when compiling release notes Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// v9.3.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants