-
Notifications
You must be signed in to change notification settings - Fork 6.8k
fix(overlay): incorrect position when using flexible positioning and rtl on the body #11393
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
Conversation
…rtl on the body Fixes the flexible positioning not working correctly when the consumer's `dir` is set on the `body` or `html` tags. The issue comes from the fact that we set the overlay's `dir` on the overlay pane which leaves the bounding box with the default of `ltr`. When the consumer sets the `dir` on the `body`, it'll propagate down to the bounding box, causing its flexbox alignment properties to be inverted. These changes move the `dir` to the bounding box and stop inverting the `align-items` and `justify-content` in rtl. Fixes angular#11387.
… when RTL is set on body We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to angular#11393.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…rtl on the body (#11393) Fixes the flexible positioning not working correctly when the consumer's `dir` is set on the `body` or `html` tags. The issue comes from the fact that we set the overlay's `dir` on the overlay pane which leaves the bounding box with the default of `ltr`. When the consumer sets the `dir` on the `body`, it'll propagate down to the bounding box, causing its flexbox alignment properties to be inverted. These changes move the `dir` to the bounding box and stop inverting the `align-items` and `justify-content` in rtl. Fixes #11387.
… when RTL is set on body We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to angular#11393.
… when RTL is set on body We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to #11393.
… when RTL is set on body We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to angular#11393.
… when RTL is set on body (#11412) We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to #11393.
… when RTL is set on body (#11412) We use `justify-content` to position global overlay to the left or right, however `justify-content` gets inverted when the element is in RTL. Since our methods are called explicitly `left` and `right`, the expectation is that the element would stay to the left or right, no matter what the direction is. This is an issue if the `dir` is set on the `body` or `html` tags, because it'll end up propagating down to the overlay wrapper, causing its directions to be inverted. These changes invert `justify-content` in RTL, in order to ensure that the overlay behaves as expected. Relates to #11393.
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Fixes the flexible positioning not working correctly when the consumer's
dir
is set on thebody
orhtml
tags. The issue comes from the fact that we set the overlay'sdir
on the overlay pane which leaves the bounding box with the default ofltr
. When the consumer sets thedir
on thebody
, it'll propagate down to the bounding box, causing its flexbox alignment properties to be inverted. These changes move thedir
to the bounding box and stop inverting thealign-items
andjustify-content
in rtl.Fixes #11387.