Skip to content

Conversation

@mgadewoll
Copy link
Contributor

@mgadewoll mgadewoll commented Nov 17, 2025

Summary

Closes #9184

This PR updates EuiPopover by changing the default values of these props to change the visual output of the component:

  • hasArrow
  • position
  • offset
prop type new default old default
hasArrow boolean false true
position union downLeft downCenter
offset number hasArrow ? 0 : 4 4

Additionally, EuiInputPopover is updated by changing its offset.

prop type new default old default
offset number 2 0

EuiTourStep is updated to only set hasArrow on its underlying EuiPopover by default when decoration="beacon" and not decoration="none" (unless manually overridden).

Why are we making this change?

🎨 UI refresh: The changes are part of the effort to refresh and modernize the UI (#9183)

Screenshots #

EuiPopover

before after
Screenshot 2025-11-17 at 09 12 31 Screenshot 2025-11-17 at 09 12 28
Screenshot 2025-11-17 at 09 12 10 Screenshot 2025-11-17 at 09 11 39

EuiInputPopover

before after
Screenshot 2025-11-17 at 09 15 22 Screenshot 2025-11-17 at 09 15 25
Screenshot 2025-11-17 at 09 15 30 Screenshot 2025-11-17 at 09 15 35

EuiTourStep with decoration="none"

before after
Screenshot 2025-11-17 at 09 21 43 Screenshot 2025-11-17 at 09 21 50
Screenshot 2025-11-17 at 09 21 40 Screenshot 2025-11-17 at 09 21 47

Impact to users

QA

🧪 Storybook:

Checks:

  • verify EuiPopover updates are correct and that manually set props apply as expected
    • it's rendered without arrow by default
    • its default position is downLeft
    • its default offset is 4 with hasArrow=false and 0 with hasArrow=0 (same as production)
  • verify EuiInputPopover has a default offset of 2
  • verify EuiTourStep with decoration="none" does not render an arrow by default (applying hasArrow will still override this)
  • verify there is otherwise no unexpected regression between production and staging states

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)

@mgadewoll mgadewoll self-assigned this Nov 17, 2025
@mgadewoll mgadewoll force-pushed the popover/9184-updated-arrow-default branch 2 times, most recently from 5557349 to 6d513e7 Compare November 17, 2025 10:46
@mgadewoll mgadewoll force-pushed the popover/9184-updated-arrow-default branch from 6d513e7 to e72009c Compare November 17, 2025 11:59
@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

cc @mgadewoll

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

cc @mgadewoll

@mgadewoll mgadewoll marked this pull request as ready for review November 17, 2025 12:32
@mgadewoll mgadewoll requested a review from a team as a code owner November 17, 2025 12:32
@mgadewoll mgadewoll requested review from JoseLuisGJ and removed request for ryankeairns November 17, 2025 12:38
@JoseLuisGJ
Copy link
Contributor

LGTM @mgadewoll BTW the related Figma component was added to the new Borealis library and is using the same new defaults here

@mgadewoll
Copy link
Contributor Author

LGTM @mgadewoll BTW the related Figma component was added to the new Borealis library and is using the same new defaults here

@JoseLuisGJ Awesome, thanks a lot for the update! 🎉

@JoseLuisGJ
Copy link
Contributor

Not sure which version of EUI are we using in Storybook but I see this border in the union of the arrow and the Popover content in dark mode.

CleanShot 2025-11-18 at 09 49 21@2x

@mgadewoll
Copy link
Contributor Author

mgadewoll commented Nov 18, 2025

Not sure which version of EUI are we using in Storybook but I see this border in the union of the arrow and the Popover content in dark mode.

@JoseLuisGJ I can see it on a Retina display in Chrome and only for the left aligned positions (leftUp, leftCenter, leftDown). That means it's most likely related to different sub-pixel calculations which browsers handle differently.

browser retina non-retina
Chrome Screenshot 2025-11-18 at 09 55 48 Screenshot 2025-11-18 at 09 53 40
Safari Screenshot 2025-11-18 at 10 35 43 Screenshot 2025-11-18 at 10 36 01
Firefox Screenshot 2025-11-18 at 10 15 19 Screenshot 2025-11-18 at 10 15 33

If we try to change the position further inwards, then other displays look not aligned.

Screenshot 2025-11-18 at 10 23 18

I think it's somewhat of an edge case.
It's only happening for left-aligned popovers because the position depends on the content width. If the width has sub-pixels, it'll be calculated differently (some round up, some down).
Depending on the content it looks fine or not. So the specific content "This is a popover" results in a width that results in exactly that arrow position that results in a visible line due to sub pixels. (also, if you zoom it's fine again)

Examples

looks fine

Screenshot 2025-11-18 at 10 17 54 Screenshot 2025-11-18 at 10 29 17 Screenshot 2025-11-18 at 10 29 46 Screenshot 2025-11-18 at 10 32 20 Screenshot 2025-11-18 at 10 32 52

popover min width

Screenshot 2025-11-18 at 10 46 19

same issue

Screenshot 2025-11-18 at 10 29 31

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.

[EuiPopover] Remove arrow and change default position to downLeft

3 participants