+ Outside the cards
+
+ Default card
+ In the card
+
+
+ Custom card color
+
+ Uses the card color
+ Explicit item color
+
+
+
+ Explicit list color
+ Keeps the item token
+
+
+
+
+
+
+ In the modal
+
+ Card in the modal
+ Uses the card color
+
+ Explicit item color
+
+
+
+
+
+
+
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts
new file mode 100644
index 00000000000..d3074be064c
--- /dev/null
+++ b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts
@@ -0,0 +1,29 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+configs({ directions: ['ltr'], palettes: ['light', 'dark'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('list surfaces'), () => {
+ test('should preserve card, outside-list, and custom backgrounds', async ({ page }) => {
+ await page.goto('/src/css/test/list-surfaces', config);
+ await expect(page.locator('#surfaces')).toHaveScreenshot(screenshot('list-surfaces-cards'));
+ });
+
+ for (const customBackground of [false, true]) {
+ test(`should preserve ${customBackground ? 'custom' : 'default'} modal and nested-card backgrounds`, async ({
+ page,
+ }) => {
+ await page.goto('/src/css/test/list-surfaces', config);
+ const modal = page.locator('ion-modal');
+ if (customBackground) {
+ await modal.evaluate((el: HTMLIonModalElement) => el.style.setProperty('--ion-background-color', '#243b53'));
+ }
+ const didPresent = await page.spyOnEvent('ionModalDidPresent');
+ await page.locator('#open-modal').click();
+ await didPresent.next();
+ await expect(modal).toHaveScreenshot(
+ screenshot(`list-surfaces-modal-${customBackground ? 'custom' : 'default'}`)
+ );
+ });
+ }
+ });
+});
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..213b63daed1
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..e063625a138
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..3a645b1f30c
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..dfb87cacb19
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..13b4776bd35
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..7cafcfc2e12
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-ios-ltr-dark-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..5ad0dcad97b
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..378b15dd36f
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..e86df3593ea
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..282c6254acb
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..362c00d3d5e
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..40e2735b4de
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-cards-md-ltr-dark-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..5847adb78a2
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..ca9546c8a29
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..5b28022b907
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..a91c4bd2bd6
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..eb7d4ba3602
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..7bed4364414
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-ios-ltr-dark-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..429f22cb4ea
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..e011adb405b
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..086be089d8f
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..b050a71580a
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..4559d807c6f
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..649e6e2527a
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-custom-md-ltr-dark-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..8b5109e89e1
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..f3741af3fe7
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..593a5ace2a6
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..85e6610c876
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..a2b9e50c34b
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..0f343a6527c
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-ios-ltr-dark-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..43fe60107cc
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..8bcad4bece8
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..86ecccb1568
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Chrome-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..acc21a836be
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Chrome-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Firefox-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..dc3b82dc513
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Firefox-linux.png differ
diff --git a/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Safari-linux.png b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..246072abc30
Binary files /dev/null and b/core/src/css/test/list-surfaces/list-surfaces.e2e.ts-snapshots/list-surfaces-modal-default-md-ltr-dark-Mobile-Safari-linux.png differ