Skip to content

[EuiBasicTable/EuiInMemoryTable] Add sticky column support to actions column type#9430

Merged
tkajtoch merged 21 commits intoelastic:mainfrom
tkajtoch:feat/9393-sticky-actions-column
Mar 9, 2026
Merged

[EuiBasicTable/EuiInMemoryTable] Add sticky column support to actions column type#9430
tkajtoch merged 21 commits intoelastic:mainfrom
tkajtoch:feat/9393-sticky-actions-column

Conversation

@tkajtoch
Copy link
Copy Markdown
Member

@tkajtoch tkajtoch commented Mar 6, 2026

Summary

Resolves #9393

This PR adds sticky column support to the actions column type as a beta feature. It is currently limited to actions columns being the last column in a table.

I recommend reviewing commit by commit.

  • The implementation uses scroll-state container added to <EuiTable /> wrapping div, which allows us to check whether the table is overflowing and adjust styles accordingly
  • The hover style for the sticky column doesn't use a darker shade of gray as it does for the remaining cells. It's due to the sticky column needing an opaque background, and the hover background is actually a dark color with 0.04 transparency applied. During my testing, I found that no hover looks better than artificial hover. This is something we might adjust in the future.
  • The sticky prop added to EuiTableRowCell, EuiTableHeaderCell, and EuiTableFooterCell is marked as internal and beta. It's not intended to be used outside of the EuiBasicTable/EuiInMemoryTable implementation at this moment.
  • The documentation and detailed guidelines describing the new props and behaviors will be added separately

Why are we making this change?

Part of the tables sweep fast-track efforts.

Screenshots #

When there's enough space to fit all columns:

Screenshot 2026-03-06 at 12 38 01

When there isn't enough space to fit all columns - smaller viewports:

Screenshot 2026-03-06 at 12 37 54

Impact to users

This is an opt-in feature. All existing functionality remains unchanged.

QA

  • Go to and verify the sticky column works as expected:
    • it renders as without the sticky behavior in desktop viewports
    • it sticks to the right side of the table when the table starts overflowing in smaller viewports
    • it shows a border on the left side of the sticky actions column when overflowing and not scrolled to the end of the table
  • Confirm other EuiTable, EuiBasicTable and EuiInMemoryTable look and behave as previously

General checklist

@tkajtoch tkajtoch self-assigned this Mar 6, 2026
@tkajtoch tkajtoch requested a review from a team as a code owner March 6, 2026 11:43
@mgadewoll mgadewoll self-requested a review March 6, 2026 12:53
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

As you can see, this appears broken. It's because our VRT tool uses Chrome 118 headless, which had issues rendering sticky elements.

I confirmed it's also broken like this in Chromium 118, but it got fixed since then. We're good in terms of our support table.

@tkajtoch
Copy link
Copy Markdown
Member Author

tkajtoch commented Mar 9, 2026

The CI is failing because of a snapshot with an invalid timezone. This is due to an incorrect configuration or test logic that doesn't handle daylight saving time transitions. Please ignore it in the context of this PR.

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.

ℹ️ Note that we're adding unrelated VRT updates here.
These are leftovers from other PRs that missed some updates.

@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

History

cc @tkajtoch

@tkajtoch
Copy link
Copy Markdown
Member Author

tkajtoch commented Mar 9, 2026

/ci

@elasticmachine
Copy link
Copy Markdown
Collaborator

💔 Build Failed

Failed CI Steps

History

cc @tkajtoch

Copy link
Copy Markdown
Contributor

@mgadewoll mgadewoll left a comment

Choose a reason for hiding this comment

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

🟢 Thanks for the additional updates! The code changes are looking great and the scrolling behavior works as expected 🎉

@tkajtoch tkajtoch merged commit 84f356d into elastic:main Mar 9, 2026
5 checks passed
JoseLuisGJ pushed a commit to JoseLuisGJ/eui that referenced this pull request Mar 12, 2026
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.

[EuiBasicTable] Make the actions column always stick to the right side of the table

3 participants