Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Popover] [Dialog] Body's padding gets removed when open in modal mode #1548

Closed
xavier-kairn opened this issue Jul 21, 2022 · 4 comments · Fixed by #2765
Closed

[Popover] [Dialog] Body's padding gets removed when open in modal mode #1548

xavier-kairn opened this issue Jul 21, 2022 · 4 comments · Fixed by #2765

Comments

@xavier-kairn
Copy link

Bug report

Current Behavior

When the body has some top padding, opening a Popover or a Dialog makes the body jump up.

This is also the case with left-padding.

Popover closed:
image

Popover opened:
image

Expected behavior

That the body stays in place 😊

Reproducible example

https://codesandbox.io/s/vigilant-bird-1fj6og?file=/src/App.tsx

Suggested solution

From my exploration, the problem comes from react-remove-scroll-bar, that is used by react-remove-scroll to remove the scrollbars in modal mode. I was not sure exactly where/how to post this issue so I came here. In my case, being able to pass removeScrollBar={false} to RemoveScroll here solves my issue. (equivalent line adding RemoveScroll in 0.1.6 actually)

Therefore I guess allowing to pass parameters to RemoveScroll would solve my issue.

Additional context

Your environment

Software Name(s) Version
Radix Package(s) Popover, Dialog 0.1.6, 0.1.7
React n/a 17.0.2
Browser Brave, Safari Chrome
Assistive tech
Node n/a v16.12.0
npm/yarn yarn v1.22.17
Operating System

I think the problem is also there in 1.0.0 looking at the code but I haven't checked.

Cheers 🎉

@andy-hook
Copy link
Collaborator

andy-hook commented Jul 21, 2022

Hey @xavier-kairn , the easiest way to handle this is to provide layout level padding to a wrapper element rather than using body

https://codesandbox.io/s/elegant-fast-i52wp6?file=/src/styles.css

alternatively you could simply provide values with a higher specificity if you really need to.

As to the whys of this behaviour, it would be better to ask in that project specifically. We don't get many reports of this being a problem because in practical terms folks rarely apply layout styles to the body, it's generally preferred to zero them at that level.

Hope this helps, let me know if you have other questions!

@andy-hook andy-hook added the Resolution: Solution Provided An existing solution to the issue was provided label Jul 21, 2022
@xavier-kairn
Copy link
Author

Thanks for the swift reply @andy-hook! Indeed, in our own app we do avoid the body padding 😊

However, I am working on a Chrome extension right now, and hence I do not have control over how other websites handle this. For example, Stackoverflow uses a padding-top on their body for their top nav bar. Which means the whole body jumps up when the popover I inject gets opened. My apologies, I should have mentioned that from the start.

Would you still recommend me going and asking on react-remove-scroll-bar as to why this behaviour? I can absolutely do that. I came here because the removeScrollbar={false} option is a perfect solution for me 😊

@andy-hook
Copy link
Collaborator

Oh I see, yes that makes the use case much clearer. Ideally the library would maintain the original styles while adding the missing scrollbar width but I’m sure there is complexity in measurement and other considerations, I’d recommend opening an issue there as the author will be able to provide more context on the implementation.



Feel free to link back to this issue as well.

I guess non-modal isn't an option because the locked scroll is a requirement for you?

@xavier-kairn
Copy link
Author

Thanks! I'll go open an issue over there then 😊

Yes, non-modal is for now not an option, but I'll also go negotiate that with our designer, maybe I can convince him that we don't really need to lock the scroll for a Chrome extension, excellent point! 👍 Thanks for the quick replies again, very much appreciated!

@andy-hook andy-hook reopened this Jul 22, 2022
@andy-hook andy-hook added Dependency: react-remove-scroll and removed Resolution: Solution Provided An existing solution to the issue was provided labels Jul 22, 2022
benoitgrelard added a commit that referenced this issue Mar 7, 2024
benoitgrelard added a commit that referenced this issue Mar 7, 2024
jgoz added a commit to implydata/radix-primitives that referenced this issue Mar 20, 2024
commit b32a933
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Thu Mar 14 12:23:48 2024 +0000

    Publish release candidate

commit d312472
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Thu Mar 14 12:20:17 2024 +0000

    Testing updated transitive dep of react-remove-scroll (radix-ui#2776)

commit b64b9f1
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Tue Mar 12 11:17:33 2024 +0000

    Publish release candidate

commit 8b38903
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Tue Mar 12 11:13:46 2024 +0000

    [Slider] Add ability to name each thumb for more flexibility (radix-ui#2766)

    Fixes radix-ui#2454

commit be80c2a
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Thu Mar 7 10:28:17 2024 +0000

    Publish release candidate

commit 4736d55
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Thu Mar 7 10:24:44 2024 +0000

    Upgrade react-remove-scroll version (radix-ui#2765)

    Fixes radix-ui#1548
    Fixes radix-ui#2367

commit 82eebe9
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Wed Mar 6 15:04:36 2024 +0000

    Publish release candidate

commit 38f7f14
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Wed Mar 6 15:00:54 2024 +0000

    [DropdownMenu] Prevent scroll on initial menu focus (radix-ui#2762)

    Fixes radix-ui#2331

commit 834330f
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Wed Mar 6 14:59:19 2024 +0000

    Publish release candidate

commit d7f5ed5
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Wed Mar 6 14:55:08 2024 +0000

    Use capture phase in `useEscapeKeydown` (radix-ui#2761)

    * Use capture phase

    * Create 75dcd823.yml

commit 2790136
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Tue Mar 5 14:13:07 2024 +0000

    Publish release candidate

commit ad69155
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Tue Mar 5 14:09:51 2024 +0000

    [Label] Don't eagerly prevent double-click (radix-ui#2753)

    * [Label] Don't eagerly prevent double-click

    Fixes radix-ui#2656

    * Update Label.stories.tsx

    * Update Label.tsx

    * PR feedback

commit b5b3162
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Tue Mar 5 14:09:13 2024 +0000

    Update CODEOWNERS

commit 7d884d2
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Fri Mar 1 22:14:10 2024 +0000

    Publish release candidate

commit f58a28c
Author: Nicholas Chiang <nicholas.h.chiang@gmail.com>
Date:   Fri Mar 1 15:10:32 2024 -0700

    fix(Popper): disable pointer events when hidden (radix-ui#2745)

    * fix(Popper): disable pointer events when hidden

    This patch sets `pointer-events: none` when the `<PopperContent>` is
    hidden so that the UI behaves as if it is not there at all. This ensures
    that users can interact with elements beneath the `<PopperContent>`
    uninterrupted.

    Ref: radix-ui#2743 (comment)

    Fixes: e5ba0d9 ("fix(Popper): use `visibility` to hide instead of `opacity` (radix-ui#2744)")

    * Move to wrapper

    ---------

    Co-authored-by: Benoît Grélard <benoit.grelard@gmail.com>

commit 8b1162c
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Thu Feb 29 19:43:17 2024 +0000

    Publish release candidate

commit e5ba0d9
Author: Nicholas Chiang <nicholas.h.chiang@gmail.com>
Date:   Thu Feb 29 12:39:51 2024 -0700

    fix(Popper): use `visibility` to hide instead of `opacity` (radix-ui#2744)

    * fix(Popper): use `visibility` to hide instead of `opacity`

    When using `hideWhenDetached`, the opacity is changed to 0 instead of the
    visibility. This lets users click items that they cannot see. This is
    generally a bad user experience.

    This patch updates the `Popper` to set the `visibility` to `hidden` when
    `hideWhenDetached` is used. This ensures the user cannot interact with
    the hidden element.

    This aligns with what is in the `@floating-ui/react-dom` documentation.

    Ref: https://floating-ui.com/docs/hide#usage

    Closes: radix-ui#2743

    * Update packages/react/popper/src/Popper.tsx

    * Create 5793010b.yml

    ---------

    Co-authored-by: Benoît Grélard <benoit.grelard@gmail.com>

commit ef4cc7d
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Thu Feb 29 13:44:52 2024 +0000

    Publish release candidate

commit fdc34ad
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Thu Feb 29 13:38:47 2024 +0000

    [NavigationMenu] Remove unsuported `disableOutsidePointerEvents` prop (radix-ui#2741)

    * [NavigationMenu] Remove unsuported `disableOutsidePointerEvents` prop

    Fixes radix-ui#2731

    * Trigger status?

    * Revert "Trigger status?"

    This reverts commit 3c827c0.

commit 8e4dfde
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Wed Feb 28 17:26:11 2024 +0000

    Publish release candidate

commit 1fbb93c
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Wed Feb 28 17:22:06 2024 +0000

    [RovingFocusGroup] Move only with single arrow keys (radix-ui#2739)

    Fixes radix-ui#2732

commit f243570
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Wed Feb 28 16:40:05 2024 +0000

    Publish release candidate

commit 57c1450
Author: Daniel Kremniov <114945181+dkremniov-bc@users.noreply.github.com>
Date:   Wed Feb 28 18:36:08 2024 +0200

    feat: added CSP nonce prop (radix-ui#2728)

commit ddb0a12
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Wed Feb 28 14:39:00 2024 +0000

    yarn workspaces foreach default (radix-ui#2737)

commit a8fa795
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Wed Feb 28 14:08:13 2024 +0000

    Upgrade node/yarn/storybook (radix-ui#2736)

commit c31c972
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Mon Sep 25 15:10:49 2023 +0100

    New release

commit c578e3f
Author: benoitgrelard <benoitgrelard@users.noreply.github.com>
Date:   Mon Sep 25 13:44:53 2023 +0000

    Publish release candidate

commit fadebe7
Author: Benoît Grélard <benoit.grelard@gmail.com>
Date:   Mon Sep 25 14:37:30 2023 +0100

    [ScrollArea] Fix types (radix-ui#2408)

commit 28bebf2
Author: andy-hook <andy-hook@users.noreply.github.com>
Date:   Wed Sep 6 11:03:49 2023 +0000

    Publish release candidate

commit 1ccd02f
Author: Dott <88314186+godhyeongman@users.noreply.github.com>
Date:   Wed Sep 6 19:55:24 2023 +0900

    Fix issue link in contribution guide (radix-ui#2381)

    * document: fix duplicated contribution guide open issues page link

    * run yarn version check as declined

commit ea63769
Author: andy-hook <andy-hook@users.noreply.github.com>
Date:   Wed Aug 16 13:26:17 2023 +0000

    Publish release candidate

commit baf9862
Author: Alexey Ryabov <lesha_12_01@mail.ru>
Date:   Wed Aug 16 16:18:41 2023 +0300

    [Avatar] Fix flashing of broken image (radix-ui#2340)

    * [Avatar] Fix flashing of broken image

    * Use isomorphic `useLayoutEffect`

    * [Avatar] Bump patch version

commit 3e0642e
Author: andy-hook <andy-hook@users.noreply.github.com>
Date:   Tue Aug 8 10:17:02 2023 +0000

    Publish release candidate

commit 2bc8f49
Author: Andy Hook <hello@andyhook.dev>
Date:   Tue Aug 8 11:10:35 2023 +0100

    Update readme image (radix-ui#2328)

    * Update readme image

    * Versions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants