Skip to content

Commit d6c73a6

Browse files
committed
fix(popup): reduce width-adjustment flash in settings view
Two-pass scrollbar layout: .settings-content had overflow-y:auto which triggered a scrollbar evaluation on every body width change, causing a transient layout shift. Changed to overflow-y:hidden since the settings panel never needs to scroll. Compositor timing gap: even without the scrollbar evaluation, the browser's 1-2 frame lag between renderer and browser process popup window resize remained visible. Added width:60ms transition to body.transitions-enabled so each 10px step animates gradually (~2px/frame), making the timing gap imperceptible.
1 parent 874712b commit d6c73a6

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/popup/popup.css

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ body.popup-ready {
3838
body.transitions-enabled {
3939
transition:
4040
background-color 0.2s ease-out,
41-
color 0.2s ease-out;
41+
color 0.2s ease-out,
42+
/* Smooth popup-window resize to eliminate the 1-2 frame compositor timing
43+
gap that produces a visible flash when body width changes. */
44+
width 60ms ease-out;
4245
}
4346

4447
body.transitions-enabled * {
@@ -1028,7 +1031,10 @@ body.dark-theme .settings-view {
10281031
.settings-content {
10291032
flex: 1;
10301033
padding: 16px 20px;
1031-
overflow-y: auto;
1034+
/* Use hidden instead of auto: the settings panel never needs to scroll,
1035+
and overflow-y: auto triggers a two-pass scrollbar layout on every width
1036+
change, causing a ~17px horizontal flash on the right side of the popup. */
1037+
overflow-y: hidden;
10321038
}
10331039

10341040
.setting-row {

0 commit comments

Comments
 (0)