Skip to content

Conversation

@tsullivan
Copy link
Member

@tsullivan tsullivan commented Oct 25, 2025

Summary

Closes #9148

Module Change
EuiFlyoutMenuProps New: hideTitle prop.
The default is true for "main" system flyouts, false for everything else

Why are we making this change?

This fixes an issue with the initial Flyout System implementation, where "main" flyouts have a title in the menu bar, which is wrong: EuiFlyoutHeader is not deprecated and the "main" flyout UI should use it for a heading.

On the other hand, "child" flyouts are a new concept and these types of flyouts are designed to have their title text shown in the top menu bar. This makes sense because "main" and "child" flyouts serve different purposes, and their menu bars should also serve different purposes - the main menu bar shows the history controls and not a title; the child menu bar shows the title and not the history controls.

Screenshots #

  • Screenshot of the fix: no title in the "main" flyout menu, just the "child" flyout's menu:
    image

Impact to users

Before this fix, it was assumed that flyout designs would change from using an EuiFlyoutHeader into a design where the title is in the menu bar - even for "main" system flyouts. Since that assumption was wrong, this fix means there will be an easier migration path from non-managed flyouts into managed flyouts.

QA

Remove or strikethrough items that do not apply to your PR.

General checklist

  • Browser QA
    • [ ] Checked in both light and dark modes
    • Checked in both MacOS and Windows high contrast modes
    • [ ] Checked in mobile
    • Checked in Chrome, Safari, Edge, and Firefox
    • Checked for accessibility including keyboard-only and screenreader modes
  • Docs site QA
  • Code quality checklist
  • Release checklist
    • A changelog entry exists and is marked appropriately
    • [ ] If applicable, added the breaking change issue label (and filled out the breaking change checklist)
    • [ ] If the changes unblock an issue in a different repo, smoke tested carefully (see Testing EUI features in Kibana ahead of time)
  • Designer checklist
    • [ ] If applicable, file an issue to update EUI's Figma library with any corresponding UI changes. (This is an internal repo, if you are external to Elastic, ask a maintainer to submit this request)

tsullivan and others added 27 commits September 17, 2025 18:19
Co-authored-by: Tim Sullivan <[email protected]>
Co-authored-by: Timothy Sullivan <[email protected]>
Co-authored-by: Weronika Olejniczak <[email protected]>
…ransition animations of managed flyouts (elastic#9015)

Co-authored-by: Arturo Castillo Delgado <[email protected]>
Co-authored-by: Tim Sullivan <[email protected]>
Co-authored-by: Clint Andrew Hall <[email protected]>
Co-authored-by: Weronika Olejniczak <[email protected]>
Co-authored-by: Tomasz Kajtoch <[email protected]>
Co-authored-by: Timothy Sullivan <[email protected]>
Co-authored-by: Tim Sullivan <[email protected]>
…rom interacting with the Flyout System (elastic#9124)

Co-authored-by: Timothy Sullivan <[email protected]>
@tkajtoch tkajtoch self-requested a review October 27, 2025 09:04
@tkajtoch tkajtoch self-assigned this Oct 27, 2025
@tsullivan tsullivan force-pushed the flyout-system/fix-main-header-design branch 2 times, most recently from 68c5edd to 1a14cd0 Compare October 27, 2025 23:54
@tsullivan tsullivan force-pushed the flyout-system/fix-main-header-design branch from 1a14cd0 to 867d6ba Compare October 28, 2025 21:40
// TODO: allow aria-labelledby references to be used
let title = _flyoutMenuProps?.title || props['aria-label'];
if (level === LEVEL_MAIN && !title) {
console.warn(
Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe we want this message shown only in development environments, if that is an option.

);

// Set title from flyoutMenuProps or aria-label
// TODO: allow aria-labelledby references to be used
Copy link
Member Author

@tsullivan tsullivan Oct 28, 2025

Choose a reason for hiding this comment

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

Working this TODO is not part of this PR. There's a possibility the element with the id will not be rendered initially, which means we need to have a DOM mutation observer on the flyout content and a new action in the flyout manager reducer to update the title at arbitrary times.

@tsullivan tsullivan marked this pull request as ready for review October 28, 2025 21:53
@tsullivan tsullivan requested a review from a team as a code owner October 28, 2025 21:53
The "main" flyout in a session should use `EuiFlyoutHeader` for the actual
flyout heading. For this reason, the `title` given from `flyoutMenuProps` will
not be visible to end users. However, a title is still needed for the history
navigation feature of the flyout session management system.
Copy link
Member Author

Choose a reason for hiding this comment

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

Should this mention that the menu of a child flyout does show the title given from flyoutMenuProps? Or is that already implied well enough?

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe this:

:::info Note
The `title` from `flyoutMenuProps` is hidden from the menu on main flyouts (which should use
`EuiFlyoutHeader` for the visible heading) but is displayed in the menu of child flyouts.
For main flyouts, the title is primarily used for history navigation.

@ryankeairns ryankeairns mentioned this pull request Oct 28, 2025
18 tasks
@tkajtoch tkajtoch deleted the branch elastic:main October 30, 2025 16:10
@tkajtoch tkajtoch closed this Oct 30, 2025
@tsullivan tsullivan reopened this Oct 30, 2025
@tsullivan tsullivan changed the base branch from feat/flyout-system to main October 30, 2025 16:14
@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

cc @tkajtoch

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

cc @tkajtoch

@tsullivan
Copy link
Member Author

Blocked on #9178

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.

[Flyout System] Having title in the menu bar is just for child flyouts, not main

5 participants