diff --git a/core/api.txt b/core/api.txt
index eaec193c24..4ca483d69d 100644
--- a/core/api.txt
+++ b/core/api.txt
@@ -1915,6 +1915,8 @@ ion-searchbar,css-prop,--clear-button-color,md
ion-searchbar,css-prop,--color,ionic
ion-searchbar,css-prop,--color,ios
ion-searchbar,css-prop,--color,md
+ion-searchbar,css-prop,--focus-ring-color,ionic
+ion-searchbar,css-prop,--focus-ring-width,ionic
ion-searchbar,css-prop,--icon-color,ionic
ion-searchbar,css-prop,--icon-color,ios
ion-searchbar,css-prop,--icon-color,md
diff --git a/core/src/components/searchbar/searchbar.ionic.scss b/core/src/components/searchbar/searchbar.ionic.scss
index cb256c85ce..d9dceecae9 100644
--- a/core/src/components/searchbar/searchbar.ionic.scss
+++ b/core/src/components/searchbar/searchbar.ionic.scss
@@ -1,46 +1,63 @@
-@use "searchbar.common";
@use "../../themes/ionic/ionic.globals.scss" as globals;
+@use "searchbar.common";
// Ionic Searchbar
// --------------------------------------------------
:host {
+ /**
+ * @prop --focus-ring-color: The color of the ring around the focused element.
+ * @prop --focus-ring-width: The width of the ring around the focused element.
+ */
--background: #{globals.$ionic-color-neutral-100};
- --border-radius: #{globals.$ionic-border-radius-800};
+ --border-radius: #{globals.$ionic-border-radius-400};
--box-shadow: none;
--cancel-button-color: #{globals.$ionic-color-neutral-800};
- --clear-button-color: #{globals.$ionic-color-neutral-800};
- --color: #{globals.$ionic-color-neutral-800};
+ --clear-button-color: #{globals.$ionic-color-neutral-1000};
+ --color: #{globals.$ionic-color-neutral-1200};
--icon-color: #{globals.$ionic-color-neutral-800};
+ --placeholder-color: #{globals.$ionic-color-neutral-800};
+ --focus-ring-color: #{globals.$ionic-state-focus-1};
+ --focus-ring-width: #{globals.$ionic-border-size-050};
+ @include globals.typography(globals.$ionic-body-md-regular);
@include globals.padding(0);
-
- min-height: globals.$ionic-scale-1000;
-
- contain: content;
-}
-
-.searchbar-input-container {
- min-height: globals.$ionic-scale-1000;
}
// Searchbar Search Icon
// -----------------------------------------
.searchbar-search-icon {
- display: none;
+ // Position is based on the size of the search icon.
+ @include globals.position(globals.$ionic-scale-400, null, null, globals.$ionic-scale-400);
+
+ width: globals.$ionic-scale-400;
+ height: globals.$ionic-scale-400;
}
// Searchbar Input Field
// -----------------------------------------
.searchbar-input {
- @include globals.padding(globals.$ionic-space-300);
+ /**
+ * Padding start is based on
+ * desired padding from design,
+ * the size of the search icon,
+ * and the gap between the icon and the input.
+ *
+ * Padding end is based on
+ * desired padding from design,
+ * the size of the clear icon,
+ * and the gap between the icon and the input.
+ */
+ @include globals.padding(
+ globals.$ionic-space-300,
+ calc(globals.$ionic-space-400 + globals.$ionic-scale-400 + globals.$ionic-space-200),
+ globals.$ionic-space-300,
+ calc(globals.$ionic-space-400 + globals.$ionic-scale-400 + globals.$ionic-space-200)
+ );
- height: 100%;
-
- font-size: globals.$ionic-font-size-350;
- font-weight: globals.$ionic-font-weight-regular;
+ min-height: globals.$ionic-scale-1200;
contain: strict;
}
@@ -49,25 +66,94 @@
// -----------------------------------------
.searchbar-clear-button {
- @include globals.position(50%, globals.$ionic-space-200, null, null);
+ // Position is based on the size of the clear icon.
+ @include globals.position(globals.$ionic-scale-400, globals.$ionic-scale-400, null, null);
- position: absolute;
+ width: globals.$ionic-scale-400;
+ height: globals.$ionic-scale-400;
- width: globals.$ionic-scale-600;
- height: globals.$ionic-scale-600;
+ background-color: transparent;
- transform: translateY(-50%);
+ font-size: globals.$ionic-scale-400;
+
+ contain: strict;
+}
+
+// Searchbar Cancel Icon
+// -----------------------------------------
+
+.searchbar-cancel-button {
+ /**
+ * The left edge of the cancel button
+ * should align with the left edge
+ * of the back button if the searchbar
+ * is used in a toolbar.
+ */
+ @include globals.position(0, null, null, 9px);
background-color: transparent;
font-size: globals.$ionic-font-size-400;
+}
- contain: strict;
+// Searchbar Search & Clear Icon & Cancel Icon
+// -----------------------------------------
+
+.searchbar-search-icon,
+.searchbar-clear-button,
+.searchbar-cancel-button {
+ position: absolute;
+}
+
+// Clear Icon & Cancel Icon
+// -----------------------------------------
+
+.searchbar-clear-button:focus-visible,
+.searchbar-cancel-button:focus-visible ion-icon {
+ @include globals.border-radius(globals.$ionic-border-radius-100);
+
+ outline: globals.$ionic-border-size-050 globals.$ionic-border-style-solid globals.$ionic-state-focus-1;
+
+ opacity: 1;
}
// Searchbar in Toolbar
// -----------------------------------------
:host-context(ion-toolbar) {
- min-height: globals.$ionic-scale-1000;
+ min-height: globals.$ionic-scale-1200;
+}
+
+// Searchbar States
+// --------------------------------------------------
+
+/* Hover */
+:host(:hover) {
+ --background: #{globals.$ionic-color-neutral-200};
+}
+
+/* Focus */
+:host(.searchbar-has-focus) .searchbar-input {
+ outline: var(--focus-ring-width) globals.$ionic-border-style-solid var(--focus-ring-color);
+}
+
+:host(.searchbar-has-focus) .searchbar-search-icon,
+:host(.searchbar-has-focus) .searchbar-cancel-button,
+:host(.searchbar-should-show-cancel) .searchbar-cancel-button {
+ display: block;
+}
+
+:host(.searchbar-has-focus) .searchbar-cancel-button + .searchbar-search-icon,
+:host(.searchbar-should-show-cancel) .searchbar-cancel-button + .searchbar-search-icon {
+ display: none;
+}
+
+/* Disabled */
+:host(.searchbar-disabled) {
+ --color: #{globals.$ionic-color-neutral-500};
+ --icon-color: #{globals.$ionic-color-neutral-500};
+ --placeholder-color: #{globals.$ionic-color-neutral-500};
+
+ cursor: default;
+ pointer-events: none;
}
diff --git a/core/src/components/searchbar/test/basic/index.html b/core/src/components/searchbar/test/basic/index.html
index 8eeae9b27c..b18e626484 100644
--- a/core/src/components/searchbar/test/basic/index.html
+++ b/core/src/components/searchbar/test/basic/index.html
@@ -12,16 +12,18 @@
+
+
-
-
- Searchbar - Basic
-
-
-
Search - Default
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts b/core/src/components/searchbar/test/basic/searchbar.e2e.ts
index bde8167637..24cfa3d38d 100644
--- a/core/src/components/searchbar/test/basic/searchbar.e2e.ts
+++ b/core/src/components/searchbar/test/basic/searchbar.e2e.ts
@@ -95,7 +95,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
});
});
-configs().forEach(({ title, screenshot, config }) => {
+configs({ modes: ['md', 'ios', 'ionic-md'] }).forEach(({ title, screenshot, config }) => {
test.describe(title('searchbar: rendering'), () => {
test('should render searchbar', async ({ page }) => {
await page.setContent(
@@ -143,19 +143,6 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-color`));
});
- test('should render disabled searchbar', async ({ page }) => {
- await page.setContent(
- `
-
- `,
- config
- );
-
- const searchbar = page.locator('ion-searchbar');
-
- await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-disabled`));
- });
-
test('should render custom search icon', async ({ page }) => {
await page.setContent(
`
@@ -199,7 +186,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
});
});
-configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+configs({ modes: ['md', 'ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
test.describe(title('searchbar: cancel button alignment'), () => {
test('should align with the back button when used in a toolbar', async ({ page }, testInfo) => {
testInfo.annotations.push({
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..d649b0017b
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..03b06806a6
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..a3a3a38f86
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-back-button-align-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..be661f5630
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..b4ca82c380
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..91b080d860
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..20e1450122
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..89212dfe87
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..f23fd21af9
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ionic-md-rtl-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png
deleted file mode 100644
index c2073e9936..0000000000
Binary files a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png and /dev/null differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png
deleted file mode 100644
index 9ca92263dc..0000000000
Binary files a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png and /dev/null differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png
deleted file mode 100644
index 6ad92d9e0e..0000000000
Binary files a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png and /dev/null differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png
deleted file mode 100644
index bbaaafe2cd..0000000000
Binary files a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png and /dev/null differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png
deleted file mode 100644
index d5b1e52c4e..0000000000
Binary files a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png and /dev/null differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..4c851c9e3f
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..caadb513a3
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..6ed0454061
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..e03b98112f
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..1e59eb29e9
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..e22f477674
Binary files /dev/null and b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ionic-md-rtl-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts b/core/src/components/searchbar/test/states/searchbar.e2e.ts
new file mode 100644
index 0000000000..af82fe0778
--- /dev/null
+++ b/core/src/components/searchbar/test/states/searchbar.e2e.ts
@@ -0,0 +1,86 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * This behavior does not vary across directions.
+ */
+configs({ modes: ['md', 'ios', 'ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('searchbar: disabled'), () => {
+ test('should render disabled searchbar', async ({ page }) => {
+ await page.setContent(
+ `
+
+ `,
+ config
+ );
+
+ const searchbar = page.locator('ion-searchbar');
+
+ await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-state-disabled`));
+ });
+ });
+});
+
+/**
+ * This behavior is only applicable to the `ionic-md` mode.
+ * This behavior does not vary across directions.
+ */
+configs({ modes: ['ionic-md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('searchbar: focused'), () => {
+ test('should render focus ring on the component', async ({ page, pageUtils }) => {
+ await page.setContent(
+ `
+
+
+
+
+
+ `,
+ config
+ );
+
+ await pageUtils.pressKeys('Tab'); // Focused on the input
+
+ const container = page.locator('#container');
+
+ await expect(container).toHaveScreenshot(screenshot(`searchbar-state-focused`));
+ });
+
+ test('should render focus ring on the cancel button', async ({ page, pageUtils }) => {
+ await page.setContent(
+ `
+
+ `,
+ config
+ );
+
+ await pageUtils.pressKeys('Tab'); // Focused on the input
+ await pageUtils.pressKeys('Tab'); // Focused on the cancel button
+
+ const searchbar = page.locator('ion-searchbar');
+
+ await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-state-focused-cancel-button`));
+ });
+
+ test('should render focus ring on the clear button', async ({ page, pageUtils }) => {
+ await page.setContent(
+ `
+
+ `,
+ config
+ );
+
+ await pageUtils.pressKeys('Tab'); // Focused on the input
+ await pageUtils.pressKeys('Tab'); // Focused on the clear button
+
+ const searchbar = page.locator('ion-searchbar');
+
+ await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-state-focused-clear-button`));
+ });
+ });
+});
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..ee5a69e844
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..a8ac752876
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..c61103332f
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..b74d71f49f
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..81e338a43d
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Safari-linux.png
similarity index 100%
rename from core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png
rename to core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-ios-ltr-Mobile-Safari-linux.png
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..6e06322dd7
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..543d6cfa44
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..f330fd0189
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-disabled-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..9c922c532e
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..59edc177f0
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..d0fec80521
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-cancel-button-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..0dabe4b8ca
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..06f1c2ffe7
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..00b4eaf3a5
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-clear-button-ionic-md-ltr-light-Mobile-Safari-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Chrome-linux.png
new file mode 100644
index 0000000000..64d470ff9a
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Firefox-linux.png
new file mode 100644
index 0000000000..53337bbd3a
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Safari-linux.png b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Safari-linux.png
new file mode 100644
index 0000000000..5ce98b0509
Binary files /dev/null and b/core/src/components/searchbar/test/states/searchbar.e2e.ts-snapshots/searchbar-state-focused-ionic-md-ltr-light-Mobile-Safari-linux.png differ