Skip to content

Commit 20c9e9e

Browse files
Fixed settings scroll bounce reveal (#27824)
closes https://linear.app/ghost/issue/DES-1371/prevent-overscroll-behavior-in-design-interface Chrome could expose the admin UI behind settings during fast edge scrolling. The settings overlay now provides the revealed backdrop and keeps scroll momentum contained on the settings panes.
1 parent 291ab4c commit 20c9e9e

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

apps/admin-x-settings/src/main-content.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const Page: React.FC<{children: ReactNode}> = ({children}) => {
1717
<div className='fixed top-2 right-0 z-50 m-8 flex justify-end bg-transparent tablet:fixed tablet:top-0' id="done-button-container">
1818
<ExitSettingsButton />
1919
</div>
20-
<div className="fixed top-0 left-0 flex size-full dark:bg-grey-950" id="admin-x-settings-content">
20+
<div className="fixed top-0 left-0 flex size-full bg-grey-50 dark:bg-grey-950 dark:tablet:bg-[#101114]" id="admin-x-settings-content">
2121
{children}
2222
</div>
2323
</>;
@@ -76,10 +76,12 @@ const MainContent: React.FC = () => {
7676
if (isEditorUser(currentUser)) {
7777
return (
7878
<Page>
79-
<div className='flex-1 overflow-y-auto bg-white dark:bg-grey-950' id="admin-x-settings-scroller">
80-
<div className='mx-auto max-w-5xl px-[5vmin] tablet:mt-16 xl:mt-10'>
81-
<Heading className='mb-[5vmin]'>Settings</Heading>
82-
<Users highlight={false} keywords={EMPTY_KEYWORDS} />
79+
<div className='flex-1 bg-white dark:bg-grey-950'>
80+
<div className='h-full overflow-y-auto overscroll-y-contain' id="admin-x-settings-scroller">
81+
<div className='mx-auto max-w-5xl px-[5vmin] tablet:mt-16 xl:mt-10'>
82+
<Heading className='mb-[5vmin]'>Settings</Heading>
83+
<Users highlight={false} keywords={EMPTY_KEYWORDS} />
84+
</div>
8385
</div>
8486
</div>
8587
</Page>
@@ -89,13 +91,15 @@ const MainContent: React.FC = () => {
8991
return (
9092
<Page>
9193
{loadingModal && <div className={`fixed inset-0 z-40 h-[calc(100vh-55px)] w-[100vw] tablet:h-[100vh] ${topLevelBackdropClasses}`} />}
92-
<div className="fixed inset-x-0 top-0 z-[35] max-w-[calc(100%-16px)] flex-1 basis-[320px] bg-white p-8 tablet:relative tablet:inset-x-auto tablet:top-auto tablet:h-full tablet:overflow-y-scroll tablet:bg-grey-50 tablet:py-0 dark:bg-grey-950 dark:tablet:bg-[#101114]" id="admin-x-settings-sidebar-scroller">
94+
<div className="fixed inset-x-0 top-0 z-[35] max-w-[calc(100%-16px)] flex-1 basis-[320px] overscroll-y-contain bg-white p-8 tablet:relative tablet:inset-x-auto tablet:top-auto tablet:h-full tablet:overflow-y-scroll tablet:bg-grey-50 tablet:py-0 dark:bg-grey-950 dark:tablet:bg-[#101114]" id="admin-x-settings-sidebar-scroller">
9395
<div className="relative w-full">
9496
<Sidebar />
9597
</div>
9698
</div>
97-
<div className="relative h-full flex-1 overflow-y-scroll bg-white pt-13 tablet:basis-[800px] dark:bg-grey-950 dark:tablet:bg-black" id="admin-x-settings-scroller">
98-
<Settings />
99+
<div className="h-full flex-1 bg-white tablet:basis-[800px] dark:bg-grey-950 dark:tablet:bg-black">
100+
<div className="relative h-full overflow-y-scroll overscroll-y-contain pt-13" id="admin-x-settings-scroller">
101+
<Settings />
102+
</div>
99103
</div>
100104
</Page>
101105
);

0 commit comments

Comments
 (0)