diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts b/core/src/components/footer/test/basic/footer.e2e-legacy.ts
deleted file mode 100644
index 6bf045399e..0000000000
--- a/core/src/components/footer/test/basic/footer.e2e-legacy.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('footer: basic', () => {
- test.describe('footer: rendering', () => {
- test('should not have visual regressions with basic footer', async ({ page }) => {
- await page.setContent(`
-
-
- Footer - Default
-
-
- `);
-
- const footer = page.locator('ion-footer');
- await expect(footer).toHaveScreenshot(`footer-diff-${page.getSnapshotSettings()}.png`);
- });
- });
-
- test.describe('footer: feature rendering', () => {
- test.beforeEach(({ skip }) => {
- skip.rtl();
- });
-
- test('should not have visual regressions with no border', async ({ page }) => {
- await page.setContent(`
-
-
- Footer - No Border
-
-
- `);
-
- const footer = page.locator('ion-footer');
- await expect(footer).toHaveScreenshot(`footer-no-border-diff-${page.getSnapshotSettings()}.png`);
- });
-
- test('should not have visual regressions with translucent footer', async ({ page, skip }) => {
- skip.mode('md', 'Translucent effect is only available in iOS mode.');
-
- await page.setContent(`
-
-
-

-
-
- Footer - Translucent
-
-
- `);
-
- const footer = page.locator('ion-footer');
- await expect(footer).toHaveScreenshot(`footer-translucent-diff-${page.getSnapshotSettings()}.png`);
- });
- });
-});
diff --git a/core/src/components/footer/test/basic/footer.e2e.ts b/core/src/components/footer/test/basic/footer.e2e.ts
new file mode 100644
index 0000000000..9f68212627
--- /dev/null
+++ b/core/src/components/footer/test/basic/footer.e2e.ts
@@ -0,0 +1,73 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+configs().forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: rendering'), () => {
+ test('should not have visual regressions with basic footer', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+ Footer - Default
+
+
+ `,
+ config
+ );
+
+ const footer = page.locator('ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-diff`));
+ });
+ });
+});
+
+/**
+ * This behavior does not vary
+ * across directions.
+ */
+configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: feature rendering'), () => {
+ test('should not have visual regressions with no border', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+ Footer - No Border
+
+
+ `,
+ config
+ );
+
+ const footer = page.locator('ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-no-border-diff`));
+ });
+ });
+});
+
+/**
+ * This behavior only exists on
+ * iOS mode and does not vary across directions.
+ */
+configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: translucent'), () => {
+ test('should not have visual regressions with translucent footer', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+

+
+
+ Footer - Translucent
+
+
+ `,
+ config
+ );
+
+ const footer = page.locator('ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-translucent-diff`));
+ });
+ });
+});
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-ios-rtl-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-ios-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-diff-md-rtl-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-diff-md-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-no-border-diff-md-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/basic/footer.e2e-legacy.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/basic/footer.e2e.ts-snapshots/footer-translucent-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts b/core/src/components/footer/test/fade/footer.e2e-legacy.ts
deleted file mode 100644
index 762f8c9585..0000000000
--- a/core/src/components/footer/test/fade/footer.e2e-legacy.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('footer: fade', () => {
- test.beforeEach(({ skip }) => {
- skip.rtl();
- });
-
- test('should not have visual regressions with fade footer', async ({ page, skip }) => {
- skip.mode('md', 'Translucent effect is only available in iOS mode.');
-
- await page.goto('/src/components/footer/test/fade');
-
- const footer = page.locator('ion-footer');
- await expect(footer).toHaveScreenshot(`footer-fade-blurred-diff-${page.getSnapshotSettings()}.png`);
-
- const content = page.locator('ion-content');
- await content.evaluate((el: HTMLIonContentElement) => el.scrollToBottom(0));
- await page.waitForChanges();
-
- await expect(footer).toHaveScreenshot(`footer-fade-not-blurred-diff-${page.getSnapshotSettings()}.png`);
- });
-});
diff --git a/core/src/components/footer/test/fade/footer.e2e.ts b/core/src/components/footer/test/fade/footer.e2e.ts
new file mode 100644
index 0000000000..460a40bf8e
--- /dev/null
+++ b/core/src/components/footer/test/fade/footer.e2e.ts
@@ -0,0 +1,22 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * Fade effect is only available in iOS mode.
+ */
+configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: fade'), () => {
+ test('should not have visual regressions with fade footer', async ({ page }) => {
+ await page.goto('/src/components/footer/test/fade', config);
+
+ const footer = page.locator('ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-fade-blurred-diff`));
+
+ const content = page.locator('ion-content');
+ await content.evaluate((el: HTMLIonContentElement) => el.scrollToBottom(0));
+ await page.waitForChanges();
+
+ await expect(footer).toHaveScreenshot(screenshot(`footer-fade-not-blurred-diff`));
+ });
+ });
+});
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-blurred-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/fade/footer.e2e-legacy.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/fade/footer.e2e.ts-snapshots/footer-fade-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts b/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts
deleted file mode 100644
index d6d6e18fa2..0000000000
--- a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('footer: scroll-target', () => {
- test.beforeEach(({ skip }) => {
- skip.rtl();
- });
-
- /**
- * This test suite verifies that the fade effect for iOS is working correctly
- * when the `ion-footer` is using a custom scroll target with the `.ion-content-scroll-host`
- * selector.
- */
- test('should not have visual regressions with custom scroll target footer', async ({ page, skip }) => {
- skip.mode('md', 'Translucent effect is only available in iOS mode.');
-
- await page.goto('/src/components/footer/test/scroll-target');
-
- const footer = page.locator('ion-footer');
- await expect(footer).toHaveScreenshot(`footer-fade-scroll-target-blurred-diff-${page.getSnapshotSettings()}.png`);
-
- const scrollTarget = page.locator('#scroll-target');
- await scrollTarget.evaluate((el: HTMLDivElement) => (el.scrollTop = el.scrollHeight));
- await page.waitForChanges();
-
- await expect(footer).toHaveScreenshot(
- `footer-fade-scroll-target-not-blurred-diff-${page.getSnapshotSettings()}.png`
- );
- });
-});
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e.ts b/core/src/components/footer/test/scroll-target/footer.e2e.ts
new file mode 100644
index 0000000000..560f900538
--- /dev/null
+++ b/core/src/components/footer/test/scroll-target/footer.e2e.ts
@@ -0,0 +1,27 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * Translucent effect is only available in iOS mode.
+ */
+configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: scroll-target'), () => {
+ /**
+ * This test suite verifies that the fade effect for iOS is working correctly
+ * when the `ion-footer` is using a custom scroll target with the `.ion-content-scroll-host`
+ * selector.
+ */
+ test('should not have visual regressions with custom scroll target footer', async ({ page }) => {
+ await page.goto('/src/components/footer/test/scroll-target', config);
+
+ const footer = page.locator('ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-fade-scroll-target-blurred-diff`));
+
+ const scrollTarget = page.locator('#scroll-target');
+ await scrollTarget.evaluate((el: HTMLDivElement) => (el.scrollTop = el.scrollHeight));
+ await page.waitForChanges();
+
+ await expect(footer).toHaveScreenshot(screenshot(`footer-fade-scroll-target-not-blurred-diff`));
+ });
+ });
+});
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-blurred-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/scroll-target/footer.e2e-legacy.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/scroll-target/footer.e2e.ts-snapshots/footer-fade-scroll-target-not-blurred-diff-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts b/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts
deleted file mode 100644
index 9054515b89..0000000000
--- a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('footer: with tabs', () => {
- test('should not have extra padding when near a tab bar', async ({ page }, testInfo) => {
- test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.');
-
- await page.goto('/src/components/footer/test/with-tabs');
-
- const footer = page.locator('[tab="tab-one"] ion-footer');
- await expect(footer).toHaveScreenshot(`footer-with-tabs-${page.getSnapshotSettings()}.png`);
- });
-});
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e.ts b/core/src/components/footer/test/with-tabs/footer.e2e.ts
new file mode 100644
index 0000000000..6b3b73b33c
--- /dev/null
+++ b/core/src/components/footer/test/with-tabs/footer.e2e.ts
@@ -0,0 +1,16 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * This does not test LTR vs. RTL layout.
+ */
+configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('footer: with tabs'), () => {
+ test('should not have extra padding when near a tab bar', async ({ page }) => {
+ await page.goto('/src/components/footer/test/with-tabs', config);
+
+ const footer = page.locator('[tab="tab-one"] ion-footer');
+ await expect(footer).toHaveScreenshot(screenshot(`footer-with-tabs`));
+ });
+ });
+});
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Chrome-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Firefox-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Safari-linux.png b/core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/footer/test/with-tabs/footer.e2e-legacy.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/footer/test/with-tabs/footer.e2e.ts-snapshots/footer-with-tabs-md-ltr-Mobile-Safari-linux.png