Skip to content

[EuiHeaderLogo] Add hover style#9240

Merged
mgadewoll merged 3 commits intoelastic:mainfrom
mgadewoll:header/add-hover-on-logo
Nov 26, 2025
Merged

[EuiHeaderLogo] Add hover style#9240
mgadewoll merged 3 commits intoelastic:mainfrom
mgadewoll:header/add-hover-on-logo

Conversation

@mgadewoll
Copy link
Copy Markdown
Contributor

@mgadewoll mgadewoll commented Nov 26, 2025

Summary

This PR updates EuiHeaderLogo to have a visible hover style to ensure it's aligned with other interactive elements (like EuiHeaderLink) used inside EuiHeader.

ℹ️ This implementation reuses the base button styles directly instead of reusing e.g. EuiHeaderLink. The reason is that reusing EuiHeaderLink or EuiButtonEmpty would add more complexity (e.g. more DOM nesting) that's not needed for this use case. Instead we can keep it simple and just apply the underlying styles directly.

Why are we making this change?

💅 UI update and consistency: The update is part of the UI update initiative. It ensures that the header logo behaves and looks like other EuiHeaderLink components on hover.

Screenshots #

before after
Screenshot 2025-11-26 at 09 21 27 Screenshot 2025-11-26 at 09 21 16
Screenshot 2025-11-26 at 09 21 52 Screenshot 2025-11-26 at 09 21 42
Screen.Recording.2025-11-26.at.09.21.58.mov
Screen.Recording.2025-11-26.at.09.22.08.mov

Impact to users

🟢 There are no code changes required on consumer side.

⚠️ Due to the updated Emotion style classes, snapshot tests might require updating.

QA

  • verify EuiHeaderLogo has a hover style that matches the hover style of text EuiButtonEmpty as well as of EuiHeaderLink with isActive={false}

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)

- reuses button styles directly instead of using EuiHEaderLink or EuiButtonEmpty to reduce added DOM structure and variant complexity as it's not required for this component
- the updates are kind of random, as there are minute pixel changes on the strokes of the different logo parts
@mgadewoll mgadewoll self-assigned this Nov 26, 2025
@mgadewoll mgadewoll requested a review from JoseLuisGJ November 26, 2025 08:51
@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

cc @mgadewoll

@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

cc @mgadewoll

@mgadewoll mgadewoll marked this pull request as ready for review November 26, 2025 09:19
@mgadewoll mgadewoll requested a review from a team as a code owner November 26, 2025 09:19
@tkajtoch tkajtoch self-requested a review November 26, 2025 09:44
Copy link
Copy Markdown
Member

@tkajtoch tkajtoch left a comment

Choose a reason for hiding this comment

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

Code changes look great and work as expected. I confirm that the hover color used matches EuiButtonEmpty's text and EuiHeaderLink's hover colors.

Copy link
Copy Markdown
Contributor

@JoseLuisGJ JoseLuisGJ left a comment

Choose a reason for hiding this comment

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

LGTM thanks @mgadewoll for addressing this.

@mgadewoll mgadewoll merged commit 531a048 into elastic:main Nov 26, 2025
11 checks passed
mgadewoll added a commit to elastic/kibana that referenced this pull request Dec 8, 2025
## Dependency updates

- `@elastic/eui`: `v109.2.0` ⏩ `v110.0.0`

---

## Changes

- Updates usages of the `message` prop on `EuiInMemoryTable` to
`noItemsMessage`
- Updates usages of `EuiSearchBar`'s `onChange` prop to check for the
`query` argument, as it may be `null` now
- Removes obsolete `color` props on implementations of `EuiPageTemplate`
and `EuiPageTemplate.Header` (`color` prop wasn't applied before either)

## Package updates

### `@elastic/eui` v110.0.0

- Updated `EuiSuperDatePicker` to expose plain text `utcOffset` and
`timeZoneName` in `timeZoneDisplayProps.customRender` render function
([#9245](elastic/eui#9245))
- Updated `EuiHeaderLogo` to add a hover style
([#9240](elastic/eui#9240))
- Made `EuiQuickSelectPanel` available for importing from the
`@elastic/eui` package
([#9239](elastic/eui#9239))
- Updated `EuiAvatar` to support Emoji Sequence ("advanced") in the
`initials` prop ([#9227](elastic/eui#9227))
- Added `color` prop on `EuiPageHeader` to support `transparent`
(default) and `plain` backgrounds.
([#9220](elastic/eui#9220))
- Added `color` prop on `EuiPage` to support `transparent` (default) and
`plain` backgrounds. ([#9220](elastic/eui#9220))
- Updated `EuiPageTemplate` to ensure `panelled=true` renders a
`EuiPageHeader` with a plain background by default
([#9220](elastic/eui#9220))
- Removed the default background style on `EuiPageTemplate`'s outer
wrapper ([#9220](elastic/eui#9220))

**Bug fixes**

- Fixed icon size in `EuiSuperDatePicker`'s time window buttons when
`compressed={true}` ([#9245](elastic/eui#9245))
- Fixed `EuiIcon` visibility issue with `logoElastic` when `color` is
set to `text` or `ghost` in light mode
([#9247](elastic/eui#9247))
- Fixed `EuiInMemoryTable` support for controlled search for plain text
(when `searchFormat="text"`) by properly handling `search.query` and
`search.defaulQuery` ([#9142](elastic/eui#9142))

**Breaking changes**

- Removed deprecated `message` prop from `EuiInMemoryTable`, use
`noItemsMessage` instead
([#9234](elastic/eui#9234))

**Accessibility**

- Improved the accessibility of input fields in the popover of
`EuiSuperDatePicker` by properly labeling them
([#9239](elastic/eui#9239))
- Improved the accessibility of `EuiSelectable` by removing empty
`aria-activedescendant` attribute when no option is active to ensure the
search input is perceivable by screen readers
([#9223](elastic/eui#9223))

---------

Co-authored-by: Weronika Olejniczak <weronika.olejniczak@elastic.co>
Co-authored-by: Jorge Oliveira <jorge.oliveira@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
JordanSh pushed a commit to JordanSh/kibana that referenced this pull request Dec 9, 2025
## Dependency updates

- `@elastic/eui`: `v109.2.0` ⏩ `v110.0.0`

---

## Changes

- Updates usages of the `message` prop on `EuiInMemoryTable` to
`noItemsMessage`
- Updates usages of `EuiSearchBar`'s `onChange` prop to check for the
`query` argument, as it may be `null` now
- Removes obsolete `color` props on implementations of `EuiPageTemplate`
and `EuiPageTemplate.Header` (`color` prop wasn't applied before either)

## Package updates

### `@elastic/eui` v110.0.0

- Updated `EuiSuperDatePicker` to expose plain text `utcOffset` and
`timeZoneName` in `timeZoneDisplayProps.customRender` render function
([elastic#9245](elastic/eui#9245))
- Updated `EuiHeaderLogo` to add a hover style
([elastic#9240](elastic/eui#9240))
- Made `EuiQuickSelectPanel` available for importing from the
`@elastic/eui` package
([elastic#9239](elastic/eui#9239))
- Updated `EuiAvatar` to support Emoji Sequence ("advanced") in the
`initials` prop ([elastic#9227](elastic/eui#9227))
- Added `color` prop on `EuiPageHeader` to support `transparent`
(default) and `plain` backgrounds.
([elastic#9220](elastic/eui#9220))
- Added `color` prop on `EuiPage` to support `transparent` (default) and
`plain` backgrounds. ([elastic#9220](elastic/eui#9220))
- Updated `EuiPageTemplate` to ensure `panelled=true` renders a
`EuiPageHeader` with a plain background by default
([elastic#9220](elastic/eui#9220))
- Removed the default background style on `EuiPageTemplate`'s outer
wrapper ([elastic#9220](elastic/eui#9220))

**Bug fixes**

- Fixed icon size in `EuiSuperDatePicker`'s time window buttons when
`compressed={true}` ([elastic#9245](elastic/eui#9245))
- Fixed `EuiIcon` visibility issue with `logoElastic` when `color` is
set to `text` or `ghost` in light mode
([elastic#9247](elastic/eui#9247))
- Fixed `EuiInMemoryTable` support for controlled search for plain text
(when `searchFormat="text"`) by properly handling `search.query` and
`search.defaulQuery` ([elastic#9142](elastic/eui#9142))

**Breaking changes**

- Removed deprecated `message` prop from `EuiInMemoryTable`, use
`noItemsMessage` instead
([elastic#9234](elastic/eui#9234))

**Accessibility**

- Improved the accessibility of input fields in the popover of
`EuiSuperDatePicker` by properly labeling them
([elastic#9239](elastic/eui#9239))
- Improved the accessibility of `EuiSelectable` by removing empty
`aria-activedescendant` attribute when no option is active to ensure the
search input is perceivable by screen readers
([elastic#9223](elastic/eui#9223))

---------

Co-authored-by: Weronika Olejniczak <weronika.olejniczak@elastic.co>
Co-authored-by: Jorge Oliveira <jorge.oliveira@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
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.

4 participants