Skip to content

Commit

Permalink
fix(tabs): default scroll-behavior: smooth not working
Browse files Browse the repository at this point in the history
Fixes #5497

PiperOrigin-RevId: 610802319
  • Loading branch information
asyncLiz authored and copybara-github committed Feb 27, 2024
1 parent c6ffd70 commit 5cc8de2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
3 changes: 3 additions & 0 deletions tabs/internal/_tabs.scss
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
display: flex;
height: 100%;
overflow: inherit;
scroll-behavior: inherit;
scrollbar-gutter: inherit;
scrollbar-width: inherit;
justify-content: space-between;
width: 100%;
}
Expand Down
7 changes: 5 additions & 2 deletions tabs/internal/tabs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,11 @@ export class Tabs extends LitElement {
const min = offset - scrollMargin;
const max = offset + extent - hostExtent + scrollMargin;
const to = Math.min(min, Math.max(max, scroll));
// TODO(b/299934312): improve focus smoothness
const behavior: ScrollBehavior = !this.focusedTab ? 'smooth' : 'instant';
// When a tab is focused, use 'auto' to use the CSS `scroll-behavior`. The
// default behavior is smooth scrolling. However, when there is not a tab
// focused on initialization, use 'instant' to immediately bring the focused
// tab into view.
const behavior: ScrollBehavior = !this.focusedTab ? 'instant' : 'auto';
this.tabsScrollerElement.scrollTo({behavior, top: 0, left: to});
}

Expand Down

0 comments on commit 5cc8de2

Please sign in to comment.