Skip to content

Commit 5f394f2

Browse files
thomkrupaclaude
andcommitted
refactor(core): use scrollbar-gutter instead of padding-right for scroll lock
Replace scrollbar width calculation and padding-right compensation with scrollbar-gutter: stable on <html>, eliminating layout shift without manual measurement. Styles now target documentElement instead of body. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 8e40c43 commit 5f394f2

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

packages/dropdown-menu/src/index.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ describe("DropdownMenu", () => {
845845
const { controller } = setup();
846846

847847
controller.open();
848-
expect(document.body.style.overflow).toBe("hidden");
848+
expect(document.documentElement.style.overflow).toBe("hidden");
849849

850850
controller.destroy();
851851
});
@@ -854,10 +854,10 @@ describe("DropdownMenu", () => {
854854
const { controller } = setup();
855855

856856
controller.open();
857-
expect(document.body.style.overflow).toBe("hidden");
857+
expect(document.documentElement.style.overflow).toBe("hidden");
858858

859859
controller.close();
860-
expect(document.body.style.overflow).toBe("");
860+
expect(document.documentElement.style.overflow).toBe("");
861861

862862
controller.destroy();
863863
});
@@ -866,17 +866,17 @@ describe("DropdownMenu", () => {
866866
const { controller } = setup();
867867

868868
controller.open();
869-
expect(document.body.style.overflow).toBe("hidden");
869+
expect(document.documentElement.style.overflow).toBe("hidden");
870870

871871
controller.destroy();
872-
expect(document.body.style.overflow).toBe("");
872+
expect(document.documentElement.style.overflow).toBe("");
873873
});
874874

875875
it("respects lockScroll: false option", () => {
876876
const { controller } = setup({ lockScroll: false });
877877

878878
controller.open();
879-
expect(document.body.style.overflow).toBe("");
879+
expect(document.documentElement.style.overflow).toBe("");
880880

881881
controller.destroy();
882882
});
@@ -894,7 +894,7 @@ describe("DropdownMenu", () => {
894894
const controller = createDropdownMenu(root);
895895

896896
controller.open();
897-
expect(document.body.style.overflow).toBe("");
897+
expect(document.documentElement.style.overflow).toBe("");
898898

899899
controller.destroy();
900900
});

0 commit comments

Comments
 (0)