diff --git a/core/src/components/fab-button/test/a11y/fab-button.e2e-legacy.ts b/core/src/components/fab-button/test/a11y/fab-button.e2e-legacy.ts
deleted file mode 100644
index 3e1ed79514..0000000000
--- a/core/src/components/fab-button/test/a11y/fab-button.e2e-legacy.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('fab-button: aria attributes', () => {
- test('should inherit aria attributes to inner button', async ({ page, skip }) => {
- skip.rtl();
- skip.mode('ios');
-
- await page.setContent(`
- My Button
- `);
-
- const nativeButton = page.locator('ion-fab-button button');
- await expect(nativeButton).toHaveAttribute('aria-label', 'Hello World');
- });
-});
diff --git a/core/src/components/fab-button/test/a11y/fab-button.e2e.ts b/core/src/components/fab-button/test/a11y/fab-button.e2e.ts
new file mode 100644
index 0000000000..0227cba4a7
--- /dev/null
+++ b/core/src/components/fab-button/test/a11y/fab-button.e2e.ts
@@ -0,0 +1,18 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
+ test.describe(title('fab-button: aria attributes'), () => {
+ test('should inherit aria attributes to inner button', async ({ page }) => {
+ await page.setContent(
+ `
+ My Button
+ `,
+ config
+ );
+
+ const nativeButton = page.locator('ion-fab-button button');
+ await expect(nativeButton).toHaveAttribute('aria-label', 'Hello World');
+ });
+ });
+});
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts b/core/src/components/fab/test/basic/fab.e2e-legacy.ts
deleted file mode 100644
index fd12c51d79..0000000000
--- a/core/src/components/fab/test/basic/fab.e2e-legacy.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test.describe('fab: basic (visual checks)', () => {
- test.beforeEach(async ({ page }) => {
- await page.goto(`/src/components/fab/test/basic`);
- });
-
- test('should not have visual regressions', async ({ page }) => {
- await page.setIonViewport();
-
- await expect(page).toHaveScreenshot(`fab-basic-${page.getSnapshotSettings()}.png`);
- });
-
- test('should not have visual regressions when open', async ({ page }) => {
- // this fab has multiple buttons on each side, so it covers all the bases
- const fab = page.locator('#fab5');
-
- await fab.click();
- await page.waitForChanges();
-
- /**
- * fab.screenshot doesn't work since ion-fab's bounding box only covers the
- * central button. This viewport size crops extra white space while also
- * containing all the buttons in the open fab.
- */
- await page.setViewportSize({
- width: 320,
- height: 415,
- });
-
- await expect(page).toHaveScreenshot(`fab-open-${page.getSnapshotSettings()}.png`, { animations: 'disabled' });
- });
-});
-
-test.describe('fab: basic (functionality checks)', () => {
- test.beforeEach(async ({ page, skip }) => {
- skip.rtl();
- skip.mode('ios');
-
- await page.goto(`/src/components/fab/test/basic`);
- });
-
- test('should toggle active state when clicked', async ({ page }) => {
- const fab = page.locator('#fab1');
- const fabList = fab.locator('ion-fab-list');
-
- await expect(fabList).not.toHaveClass(/fab-list-active/);
-
- // open fab
- await fab.click();
- await page.waitForChanges();
- await expect(fabList).toHaveClass(/fab-list-active/);
-
- // close fab
- await fab.click();
- await page.waitForChanges();
- await expect(fabList).not.toHaveClass(/fab-list-active/);
- });
-
- test('should not open when disabled', async ({ page }) => {
- const fab = page.locator('#fab2');
- const fabList = fab.locator('ion-fab-list');
-
- await expect(fabList).not.toHaveClass(/fab-list-active/);
-
- // attempt to open fab
- await fab.click();
- await page.waitForChanges();
- await expect(fabList).not.toHaveClass(/fab-list-active/);
- });
-});
diff --git a/core/src/components/fab/test/basic/fab.e2e.ts b/core/src/components/fab/test/basic/fab.e2e.ts
new file mode 100644
index 0000000000..363d6e5f53
--- /dev/null
+++ b/core/src/components/fab/test/basic/fab.e2e.ts
@@ -0,0 +1,77 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+configs().forEach(({ title, screenshot, config }) => {
+ test.describe(title('fab: basic (visual checks)'), () => {
+ test.beforeEach(async ({ page }) => {
+ await page.goto(`/src/components/fab/test/basic`, config);
+ });
+
+ test('should not have visual regressions', async ({ page }) => {
+ await page.setIonViewport();
+
+ await expect(page).toHaveScreenshot(screenshot(`fab-basic`));
+ });
+
+ test('should not have visual regressions when open', async ({ page }) => {
+ // this fab has multiple buttons on each side, so it covers all the bases
+ const fab = page.locator('#fab5');
+
+ await fab.click();
+ await page.waitForChanges();
+
+ /**
+ * fab.screenshot doesn't work since ion-fab's bounding box only covers the
+ * central button. This viewport size crops extra white space while also
+ * containing all the buttons in the open fab.
+ */
+ await page.setViewportSize({
+ width: 320,
+ height: 415,
+ });
+
+ await expect(page).toHaveScreenshot(screenshot(`fab-open`));
+ });
+ });
+});
+
+/**
+ * This behavior does not vary
+ * across modes/directions.
+ */
+configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
+ test.describe(title('fab: basic (functionality checks)'), () => {
+ test.beforeEach(async ({ page }) => {
+ await page.goto(`/src/components/fab/test/basic`, config);
+ });
+
+ test('should toggle active state when clicked', async ({ page }) => {
+ const fab = page.locator('#fab1');
+ const fabList = fab.locator('ion-fab-list');
+
+ await expect(fabList).not.toHaveClass(/fab-list-active/);
+
+ // open fab
+ await fab.click();
+ await page.waitForChanges();
+ await expect(fabList).toHaveClass(/fab-list-active/);
+
+ // close fab
+ await fab.click();
+ await page.waitForChanges();
+ await expect(fabList).not.toHaveClass(/fab-list-active/);
+ });
+
+ test('should not open when disabled', async ({ page }) => {
+ const fab = page.locator('#fab2');
+ const fabList = fab.locator('ion-fab-list');
+
+ await expect(fabList).not.toHaveClass(/fab-list-active/);
+
+ // attempt to open fab
+ await fab.click();
+ await page.waitForChanges();
+ await expect(fabList).not.toHaveClass(/fab-list-active/);
+ });
+ });
+});
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-ios-rtl-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-ios-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-basic-md-rtl-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-basic-md-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-ios-rtl-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-ios-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Chrome-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Firefox-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Safari-linux.png b/core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/basic/fab.e2e-legacy.ts-snapshots/fab-open-md-rtl-Mobile-Safari-linux.png
rename to core/src/components/fab/test/basic/fab.e2e.ts-snapshots/fab-open-md-rtl-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts b/core/src/components/fab/test/states/fab.e2e-legacy.ts
deleted file mode 100644
index 5a0c9c3e19..0000000000
--- a/core/src/components/fab/test/states/fab.e2e-legacy.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test('should not have visual regressions', async ({ page, skip }) => {
- skip.rtl();
- await page.goto(`/src/components/fab/test/states`);
-
- await page.setIonViewport();
-
- await expect(page).toHaveScreenshot(`fab-states-${page.getSnapshotSettings()}.png`);
-});
diff --git a/core/src/components/fab/test/states/fab.e2e.ts b/core/src/components/fab/test/states/fab.e2e.ts
new file mode 100644
index 0000000000..41bc62b445
--- /dev/null
+++ b/core/src/components/fab/test/states/fab.e2e.ts
@@ -0,0 +1,14 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('fab: states'), () => {
+ test('should not have visual regressions', async ({ page }) => {
+ await page.goto(`/src/components/fab/test/states`, config);
+
+ await page.setIonViewport();
+
+ await expect(page).toHaveScreenshot(screenshot(`fab-states`));
+ });
+ });
+});
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/states/fab.e2e-legacy.ts-snapshots/fab-states-md-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/states/fab.e2e.ts-snapshots/fab-states-md-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/fab/test/translucent/fab.e2e-legacy.ts b/core/src/components/fab/test/translucent/fab.e2e-legacy.ts
deleted file mode 100644
index 208ae8c3a6..0000000000
--- a/core/src/components/fab/test/translucent/fab.e2e-legacy.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { expect } from '@playwright/test';
-import { test } from '@utils/test/playwright';
-
-test('should not have visual regressions', async ({ page, skip }) => {
- skip.rtl();
- skip.mode('md', 'Translucency is only available on ios mode');
- await page.goto(`/src/components/fab/test/translucent`);
-
- const fab = page.locator('#fab5');
- await fab.click();
- await page.waitForChanges();
-
- /**
- * fab.screenshot doesn't work since ion-fab's bounding box only covers the
- * central button. This viewport size crops extra white space while also
- * containing all the buttons in the open fab.
- */
- await page.setViewportSize({
- width: 235,
- height: 310,
- });
-
- await expect(page).toHaveScreenshot(`fab-translucent-${page.getSnapshotSettings()}.png`, { animations: 'disabled' });
-});
diff --git a/core/src/components/fab/test/translucent/fab.e2e.ts b/core/src/components/fab/test/translucent/fab.e2e.ts
new file mode 100644
index 0000000000..1d0bf32118
--- /dev/null
+++ b/core/src/components/fab/test/translucent/fab.e2e.ts
@@ -0,0 +1,29 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * Translucency is only available on ios mode
+ */
+configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('fab: translucent'), () => {
+ test('should not have visual regressions', async ({ page }) => {
+ await page.goto(`/src/components/fab/test/translucent`, config);
+
+ const fab = page.locator('#fab5');
+ await fab.click();
+ await page.waitForChanges();
+
+ /**
+ * fab.screenshot doesn't work since ion-fab's bounding box only covers the
+ * central button. This viewport size crops extra white space while also
+ * containing all the buttons in the open fab.
+ */
+ await page.setViewportSize({
+ width: 235,
+ height: 310,
+ });
+
+ await expect(page).toHaveScreenshot(screenshot(`fab-translucent`));
+ });
+ });
+});
diff --git a/core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Chrome-linux.png
similarity index 100%
rename from core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Chrome-linux.png
rename to core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Chrome-linux.png
diff --git a/core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Firefox-linux.png
similarity index 100%
rename from core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Firefox-linux.png
rename to core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Firefox-linux.png
diff --git a/core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Safari-linux.png b/core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/fab/test/translucent/fab.e2e-legacy.ts-snapshots/fab-translucent-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/fab/test/translucent/fab.e2e.ts-snapshots/fab-translucent-ios-ltr-Mobile-Safari-linux.png