Focus
-
+
Apple
Valid, Focus
-
+
Apple
@@ -330,7 +324,7 @@
Focus
fill="outline"
label-placement="start"
value="hi@ionic.io"
- class="custom ion-focused"
+ class="custom has-focus"
label="Fruit"
>
Apple
@@ -339,7 +333,7 @@
Focus
Valid, Focus
-
+
Apple
diff --git a/core/src/components/select/test/highlight/select.e2e.ts b/core/src/components/select/test/highlight/select.e2e.ts
index 23fd444c56d..257d4332bd0 100644
--- a/core/src/components/select/test/highlight/select.e2e.ts
+++ b/core/src/components/select/test/highlight/select.e2e.ts
@@ -7,41 +7,114 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
test('should render valid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-no-fill-valid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-no-fill-valid`));
});
test('should render invalid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
+ `,
+ config
+ );
+
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-no-fill-invalid`));
+ });
+ test('should render invalid with focus state correctly', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-no-fill-invalid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-no-fill-invalid-focus`));
});
test('should render focused state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-no-fill-focus`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-no-fill-focus`));
});
test('should render custom highlight correctly', async ({ page }) => {
await page.setContent(
@@ -56,15 +129,15 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
-
+
Apple
-
+
Apple
-
+
Apple
@@ -80,41 +153,86 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
test('should render valid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-solid-valid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-solid-valid`));
});
test('should render invalid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-solid-invalid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-solid-invalid`));
});
test('should render focused state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-solid-focus`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-solid-focus`));
});
test('should render custom highlight correctly', async ({ page }) => {
await page.setContent(
@@ -129,15 +247,15 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
-
+
Apple
-
+
Apple
-
+
Apple
@@ -153,41 +271,86 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
test('should render valid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-outline-valid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-outline-valid`));
});
test('should render invalid state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-outline-invalid`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-outline-invalid`));
});
test('should render focused state correctly', async ({ page }) => {
await page.setContent(
`
-
- Apple
-
+
+
+
+ Apple
+
+
+
+
+ Apple
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-outline-focus`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-outline-focus`));
});
test('should render custom highlight correctly', async ({ page }) => {
await page.setContent(
@@ -202,15 +365,15 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
-
+
Apple
-
+
Apple
-
+
Apple
@@ -229,39 +392,78 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
test('should render bottom highlight', async ({ page }) => {
await page.setContent(
`
-
+
+
+
+
+
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-no-fill-highlight`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-no-fill-highlight`));
});
});
test.describe('select: solid', () => {
test('should render bottom highlight', async ({ page }) => {
await page.setContent(
`
-
+
+
+
+
+
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-solid-highlight`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-solid-highlight`));
});
});
test.describe('select: outline', () => {
test('should render bottom highlight', async ({ page }) => {
await page.setContent(
`
-
+
+
+
+
+
+
+
+
+
`,
config
);
- const select = page.locator('ion-select');
- await expect(select).toHaveScreenshot(screenshot(`select-outline-highlight`));
+ const container = page.locator('#container');
+ await expect(container).toHaveScreenshot(screenshot(`select-outline-highlight`));
});
});
});
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Chrome-linux.png
index c51b4aaf3a2..0d66b484995 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Firefox-linux.png
index 2b893c508ce..fe35e86ace5 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Safari-linux.png
index 0b21560a844..2fda5ff067a 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-focus-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Chrome-linux.png
index a1943b028d7..01f2607f107 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Firefox-linux.png
index d4e7f7c98b4..7efaf029f11 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Safari-linux.png
index 0d4c6c5157d..21569fcb9f8 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-highlight-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..4f64caaa2d9
Binary files /dev/null and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..17374b1cdec
Binary files /dev/null and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..6a66fadd792
Binary files /dev/null and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-focus-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Chrome-linux.png
index a252b187777..5e2173d3507 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Firefox-linux.png
index 108e8a37df9..d5e00ca8d3a 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Safari-linux.png
index 0fedf66b3a8..39f2939c4ea 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-invalid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Chrome-linux.png
index 2c15c40fb48..a563e022187 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Firefox-linux.png
index 5b6d1f853d1..0daf67b642f 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Safari-linux.png
index 90ce749e758..054c0601624 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-no-fill-valid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Chrome-linux.png
index c93c593b790..4ddc2e8060a 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Firefox-linux.png
index b64a1f8e9c4..2ecf480b77c 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Safari-linux.png
index dd466202f3a..ff862429c78 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-focus-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Chrome-linux.png
index 1fc1d7cfab8..8a6937307f2 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Firefox-linux.png
index ec0dd16c8cb..6c0cd64de3a 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Safari-linux.png
index d55c4863315..2c987d69ca8 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-highlight-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Chrome-linux.png
index fae85803bf3..9af9159021b 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Firefox-linux.png
index e7ecdda8fd0..a78ab821854 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Safari-linux.png
index 726ae826509..429f23da3bb 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-invalid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Chrome-linux.png
index 8d8a3997375..a50344ed3b6 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Firefox-linux.png
index ae183193c93..65ff8259d98 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Safari-linux.png
index db0ab31a25d..21c81b27e86 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-outline-valid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Chrome-linux.png
index a4ce2866094..1f4dab6c1fa 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Firefox-linux.png
index 4108e541e2c..ecf4734a1f2 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Safari-linux.png
index f4cdcc0aebd..cb41984f265 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-focus-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Chrome-linux.png
index 800907d3020..737236497c9 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Firefox-linux.png
index 5d0ea24f6c3..1a7559701de 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Safari-linux.png
index bfb8867a3d8..6eec7736287 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-highlight-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Chrome-linux.png
index a3c7e094204..a340d869936 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Firefox-linux.png
index b9061f96f87..004b13c3422 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Safari-linux.png
index 2387a9243b5..e2446623ce8 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-invalid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Chrome-linux.png
index b1c7f080a75..61021ba07db 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Chrome-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Firefox-linux.png
index 334f48308e9..c33caea5d84 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Firefox-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Safari-linux.png b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Safari-linux.png
index 2b56a8d6091..0597a1ef085 100644
Binary files a/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Safari-linux.png and b/core/src/components/select/test/highlight/select.e2e.ts-snapshots/select-solid-valid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/textarea/textarea.tsx b/core/src/components/textarea/textarea.tsx
index 7764dfba8b5..afb9e3bf6b6 100644
--- a/core/src/components/textarea/textarea.tsx
+++ b/core/src/components/textarea/textarea.tsx
@@ -70,6 +70,14 @@ export class Textarea implements ComponentInterface {
@Element() el!: HTMLIonTextareaElement;
+ /**
+ * The `hasFocus` state ensures the focus class is
+ * added regardless of how the element is focused.
+ * The `ion-focused` class only applies when focused
+ * via tabbing, not by clicking.
+ * The `has-focus` logic was added to ensure the class
+ * is applied in both cases.
+ */
@State() hasFocus = false;
/**