From 331c08aad542de158e53ed351705d4c396bb4e90 Mon Sep 17 00:00:00 2001 From: Amanda Johnston <90629384+amandaejohnston@users.noreply.github.com> Date: Fri, 20 Oct 2023 10:15:20 -0500 Subject: [PATCH] fix(fab): apply safe area in positioning to proper side regardless of direction (#28377) Issue number: Internal --------- ## What is the current behavior? When calculating the fab's horizontal position, the safe area is taken into account. However, which safe area side is applied changes depending on whether the document's direction is LTR or RTL. This is incorrect as the left safe area padding will always be on the left side regardless of direction, and vice versa. ## What is the new behavior? The left safe area is always applied to the fab's `left` position, and vice versa. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information --------- Co-authored-by: ionitron --- core/src/components/fab/fab.scss | 26 +++++-- .../components/fab/test/safe-area/fab.e2e.ts | 72 ++++++++++++++++++ ...izontal-end-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 3818 bytes ...zontal-end-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5866 bytes ...izontal-end-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 3460 bytes ...izontal-end-md-rtl-Mobile-Chrome-linux.png | Bin 0 -> 3837 bytes ...zontal-end-md-rtl-Mobile-Firefox-linux.png | Bin 0 -> 5735 bytes ...izontal-end-md-rtl-Mobile-Safari-linux.png | Bin 0 -> 3463 bytes ...ontal-start-md-ltr-Mobile-Chrome-linux.png | Bin 0 -> 3837 bytes ...ntal-start-md-ltr-Mobile-Firefox-linux.png | Bin 0 -> 5735 bytes ...ontal-start-md-ltr-Mobile-Safari-linux.png | Bin 0 -> 3463 bytes ...ontal-start-md-rtl-Mobile-Chrome-linux.png | Bin 0 -> 3818 bytes ...ntal-start-md-rtl-Mobile-Firefox-linux.png | Bin 0 -> 5866 bytes ...ontal-start-md-rtl-Mobile-Safari-linux.png | Bin 0 -> 3460 bytes 14 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-rtl-Mobile-Chrome-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-rtl-Mobile-Firefox-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-rtl-Mobile-Safari-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Chrome-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Firefox-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Safari-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Chrome-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Firefox-linux.png create mode 100644 core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/fab/fab.scss b/core/src/components/fab/fab.scss index 73fc4b375d..227c4b0f37 100644 --- a/core/src/components/fab/fab.scss +++ b/core/src/components/fab/fab.scss @@ -23,15 +23,29 @@ } :host(.fab-horizontal-start) { - @include position-horizontal( - calc(#{$fab-content-margin} + var(--ion-safe-area-left, 0px)), null - ); + /* stylelint-disable */ + @include ltr() { + left: calc(#{$fab-content-margin} + var(--ion-safe-area-left, 0px)); + } + + @include rtl() { + right: calc(#{$fab-content-margin} + var(--ion-safe-area-right, 0px)); + left: unset; + } + /* stylelint-enable */ } :host(.fab-horizontal-end) { - @include position-horizontal( - null, calc(#{$fab-content-margin} + var(--ion-safe-area-right, 0px)) - ); + /* stylelint-disable */ + @include ltr() { + right: calc(#{$fab-content-margin} + var(--ion-safe-area-right, 0px)); + } + + @include rtl() { + left: calc(#{$fab-content-margin} + var(--ion-safe-area-left, 0px)); + right: unset; + } + /* stylelint-enable */ } diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts b/core/src/components/fab/test/safe-area/fab.e2e.ts new file mode 100644 index 0000000000..cde83ec4cc --- /dev/null +++ b/core/src/components/fab/test/safe-area/fab.e2e.ts @@ -0,0 +1,72 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['md'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('fab: safe area'), () => { + test('should ignore document direction in safe area positioning for start-positioned fab', async ({ page }) => { + await page.setContent( + ` + + + + + + + + + + `, + config + ); + + /** + * We need to capture the entire page to check the fab's position, + * but we don't need much extra white space. + */ + await page.setViewportSize({ + width: 200, + height: 200, + }); + + await expect(page).toHaveScreenshot(screenshot('fab-safe-area-horizontal-start')); + }); + + test('should ignore document direction in safe area positioning for end-positioned fab', async ({ page }) => { + await page.setContent( + ` + + + + + + + + + + `, + config + ); + + /** + * We need to capture the entire page to check the fab's position, + * but we don't need much extra white space. + */ + await page.setViewportSize({ + width: 200, + height: 200, + }); + + await expect(page).toHaveScreenshot(screenshot('fab-safe-area-horizontal-end')); + }); + }); +}); diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..531c61bf4228b1b58a2c27926392847eb55a6f65 GIT binary patch literal 3818 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 P@ycgs<6up(^hx+1P|p;w literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d46960e64ed53bfd4348d461d3ce2616556e70b5 GIT binary patch literal 5866 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 literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..06502d85e1400ca4462d141bed2aa59c533af1c2 GIT binary patch literal 3460 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 han9NQYpHe2F$nKe8a<*%o#X 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 literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-end-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f049c7f63b1744f5023880d0723a2fdbaf8aa8c6 GIT binary patch literal 3463 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 L#-z%~^YQ-xKTB>d literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb0dce57fd4874800890c9682536e4234795fae GIT binary patch literal 3837 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 han9NQYpHe2F$nKe8a<*%o#X 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 literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..f049c7f63b1744f5023880d0723a2fdbaf8aa8c6 GIT binary patch literal 3463 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 L#-z%~^YQ-xKTB>d literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..531c61bf4228b1b58a2c27926392847eb55a6f65 GIT binary patch literal 3818 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 P@ycgs<6up(^hx+1P|p;w literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d46960e64ed53bfd4348d461d3ce2616556e70b5 GIT binary patch literal 5866 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 literal 0 HcmV?d00001 diff --git a/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/safe-area/fab.e2e.ts-snapshots/fab-safe-area-horizontal-start-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..06502d85e1400ca4462d141bed2aa59c533af1c2 GIT binary patch literal 3460 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