diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Chrome-linux.png
index c9f7034c527..8a0f2bd41aa 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Chrome-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Firefox-linux.png
index edb97fa14ab..00d80cf6a15 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Firefox-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Safari-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Safari-linux.png
index 7a0b3c04ca3..b427231d988 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Chrome-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Chrome-linux.png
index 4fdf0ad75a1..91d2a9aaa57 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Firefox-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Firefox-linux.png
index 9473f2c20c3..498c2881bfb 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Safari-linux.png b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Safari-linux.png
index 59ca54af360..e2e0ea77c10 100644
Binary files a/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Safari-linux.png and b/core/src/components/item-sliding/test/basic/item-sliding.e2e.ts-snapshots/item-sliding-safe-area-left-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/item/item.scss b/core/src/components/item/item.scss
index 9973b195ff2..905b3bc2cd6 100644
--- a/core/src/components/item/item.scss
+++ b/core/src/components/item/item.scss
@@ -203,14 +203,21 @@
.item-native {
@include border-radius(var(--border-radius));
@include margin(0);
- @include padding(
- var(--padding-top),
- var(--padding-end),
- var(--padding-bottom),
- calc(var(--padding-start) + var(--ion-safe-area-left, 0px))
- );
+ @include padding(var(--padding-top), null, var(--padding-bottom));
@include text-inherit();
+ /* stylelint-disable */
+ @include ltr() {
+ padding-right: var(--padding-end);
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
+ }
+
+ @include rtl() {
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
+ padding-left: var(--padding-end);
+ }
+ /* stylelint-enable */
+
display: flex;
position: relative;
@@ -261,12 +268,19 @@ button, a {
.item-inner {
@include margin(0);
- @include padding(
- var(--inner-padding-top),
- calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end)),
- var(--inner-padding-bottom),
- var(--inner-padding-start)
- );
+ @include padding(var(--inner-padding-top), null, var(--inner-padding-bottom));
+
+ /* stylelint-disable */
+ @include ltr() {
+ padding-right: calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));
+ padding-left: var(--inner-padding-start);
+ }
+
+ @include rtl() {
+ padding-right: var(--inner-padding-start);
+ padding-left: calc(var(--ion-safe-area-left, 0px) + var(--inner-padding-end));
+ }
+ /* stylelint-enable */
display: flex;
@@ -295,12 +309,19 @@ button, a {
.item-bottom {
@include margin(0);
- @include padding(
- 0,
- var(--inner-padding-end),
- 0,
- calc(var(--padding-start) + var(--ion-safe-area-left, 0px))
- );
+ @include padding(0, null);
+
+ /* stylelint-disable */
+ @include ltr() {
+ padding-left: calc(var(--padding-start) + var(--ion-safe-area-left, 0px));
+ padding-right: calc(var(--inner-padding-end) + var(--ion-safe-area-right, 0px));
+ }
+
+ @include rtl() {
+ padding-left: calc(var(--inner-padding-end) + var(--ion-safe-area-left, 0px));
+ padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
+ }
+ /* stylelint-enable */
display: flex;
diff --git a/core/src/components/item/test/basic/item.e2e.ts b/core/src/components/item/test/basic/item.e2e.ts
index 0ea568a52de..791f647c3bd 100644
--- a/core/src/components/item/test/basic/item.e2e.ts
+++ b/core/src/components/item/test/basic/item.e2e.ts
@@ -10,5 +10,37 @@ configs().forEach(({ title, screenshot, config }) => {
await expect(page).toHaveScreenshot(screenshot(`item-diff`));
});
+
+ /**
+ * This behavior needs to be tested for all modes & directions
+ * Safe padding should stay on the same side when the direction changes
+ */
+ test('should have safe area padding', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+
+ Item with helper
+ Helper
+
+
+
+ Single line text that should have ellipses when it doesn't all fit in the item
+
+
+ `,
+ config
+ );
+
+ const list = page.locator('ion-list');
+
+ await expect(list).toHaveScreenshot(screenshot('item-safe-area'));
+ });
});
});
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..3c7598f13fe
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..f52966a3fc7
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..41438a1401b
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..31769bd8b41
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..7283620e0e4
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..3fb79af9614
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Chrome-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..2534024ce32
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Firefox-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..d64ca28f58e
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Safari-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..40f103f5f84
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Chrome-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..89ea0b441b7
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Firefox-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..84881d8dd1d
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Safari-linux.png b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..b4932e5a2eb
Binary files /dev/null and b/core/src/components/item/test/basic/item.e2e.ts-snapshots/item-safe-area-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png
index 95aa60b0470..384b05bcba8 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png
index 7e633d12f9d..708de2b8933 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png
index 51f854892cf..4463fd82253 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png
index bfa13d85bd9..eb8158c3e9b 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png
index 04d3c8fd8fd..d6f319de1cb 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png
index f6c9b871723..9922c6136ea 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-end-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png
index 8914e73395b..bd608ec9bf9 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png
index d4b21b5d5ad..3c6e1e71746 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png
index 8ed3eb8bda7..c1bb419e171 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-left-notch-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png
index eb5cf5118f9..21a211ce86d 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png
index d3d6f09c7cd..32b8307b903 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png
index 215f6c4a3aa..065601388a1 100644
Binary files a/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png and b/core/src/components/menu/test/safe-area/menu.e2e.ts-snapshots/menu-start-safe-area-right-notch-md-rtl-Mobile-Safari-linux.png differ