diff --git a/core/src/components/input/input.md.outline.scss b/core/src/components/input/input.md.outline.scss
index 1345fb3ca39..f6465c846bc 100644
--- a/core/src/components/input/input.md.outline.scss
+++ b/core/src/components/input/input.md.outline.scss
@@ -1,3 +1,5 @@
+@import "./input.vars";
+
// Input Fill: Outline
// ----------------------------------------------------------------
@@ -9,7 +11,7 @@
}
:host(.input-fill-outline.input-shape-round) {
- --border-radius: 9999px;
+ --border-radius: 28px;
--padding-start: 32px;
--padding-end: 32px;
}
@@ -62,7 +64,15 @@
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper,
:host(.input-fill-outline.input-label-placement-floating) .label-text-wrapper {
- @include transform-origin(center, top);
+ @include transform-origin(start, top);
+
+ position: absolute;
+
+ /**
+ * Label text should not extend
+ * beyond the bounds of the input.
+ */
+ max-width: calc(100% - var(--padding-start) - var(--padding-end));
}
/**
@@ -81,10 +91,15 @@
*/
:host(.has-focus.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
:host(.has-value.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
-:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper,
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper {
- @include transform(translateY(-32%), scale(.75));
+ @include transform(translateY(-32%), scale(#{$input-floating-label-scale}));
@include margin(0);
+
+ /**
+ * Label text should not extend
+ * beyond the bounds of the input.
+ */
+ max-width: calc((100% - var(--padding-start) - var(--padding-end) - #{$input-md-floating-label-padding * 2}) / #{$input-floating-label-scale});
}
/**
@@ -128,20 +143,50 @@
border-bottom: var(--border-width) var(--border-style) var(--border-color);
}
-:host(.input-fill-outline) .input-outline-start {
- @include border-radius(var(--border-radius), 0px, 0px, var(--border-radius));
- @include border(null, null, null, var(--border-width) var(--border-style) var(--border-color));
-
- width: 12px;
+/**
+ * Ensures long labels do not cause the notch to flow
+ * out of bounds.
+ */
+:host(.input-fill-outline) .input-outline-notch {
+ max-width: calc(100% - var(--padding-start) - var(--padding-end));
}
/**
- * When shape="round", the starting outline fragment
- * should appear with a pill shape.
+ * This element ensures that the notch used
+ * the size of the scaled text so that the
+ * border cut out is the correct width.
+ * The text in this element should not
+ * be interactive.
*/
-:host(.input-fill-outline.input-shape-round) .input-outline-start {
- @include border-radius(28px, 0px, 0px, 28px);
- width: 28px;
+:host(.input-fill-outline) .notch-spacer {
+ /**
+ * We need $input-md-floating-label-padding of padding on the right.
+ * However, we also subtracted $input-md-floating-label-padding from
+ * the width of .input-outline-start
+ * to create space, so we need to take
+ * that into consideration here.
+ */
+ @include padding(null, #{$input-md-floating-label-padding * 2}, null, null);
+
+ font-size: calc(1em * #{$input-floating-label-scale});
+
+ opacity: 0;
+ pointer-events: none;
+}
+
+:host(.input-fill-outline) .input-outline-start {
+ @include border-radius(var(--border-radius), 0px, 0px, var(--border-radius));
+ @include border(null, null, null, var(--border-width) var(--border-style) var(--border-color));
+
+ /**
+ * There should be spacing between the translated text
+ * and .input-outline-start. However, we can't add this
+ * spacing onto the notch because it would cause the
+ * label to look like it is not aligned with the
+ * text input. Instead, we subtract a few pixels from
+ * this element.
+ */
+ width: calc(var(--padding-start) - #{$input-md-floating-label-padding});
}
:host(.input-fill-outline) .input-outline-end {
@@ -163,7 +208,6 @@
*/
:host(.has-focus.input-fill-outline.input-label-placement-floating) .input-outline-notch,
:host(.has-value.input-fill-outline.input-label-placement-floating) .input-outline-notch,
-:host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch,
:host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch {
border-top: none;
}
diff --git a/core/src/components/input/input.md.solid.scss b/core/src/components/input/input.md.solid.scss
index 9aba43a7d2e..d7ee9c7da43 100644
--- a/core/src/components/input/input.md.solid.scss
+++ b/core/src/components/input/input.md.solid.scss
@@ -1,3 +1,5 @@
+@import "./input.vars";
+
// Input Fill: Solid
// ----------------------------------------------------------------
@@ -59,3 +61,16 @@
*/
@include border-radius(var(--border-radius), var(--border-radius), 0px, 0px);
}
+
+// Input Label
+// ----------------------------------------------------------------
+
+:host(.input-fill-solid.input-label-placement-stacked) .label-text-wrapper,
+:host(.has-focus.input-fill-solid.input-label-placement-floating) .label-text-wrapper,
+:host(.has-value.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
+ /**
+ * Label text should not extend
+ * beyond the bounds of the input.
+ */
+ max-width: calc(100% / #{$input-floating-label-scale});
+}
diff --git a/core/src/components/input/input.md.vars.scss b/core/src/components/input/input.md.vars.scss
index b04a35040ff..42bbb195626 100644
--- a/core/src/components/input/input.md.vars.scss
+++ b/core/src/components/input/input.md.vars.scss
@@ -75,3 +75,6 @@ $input-md-inset-margin-bottom: ($item-md-padding-bottom * 0.5) !defau
/// @prop - Margin start of the inset input
$input-md-inset-margin-start: $item-md-padding-start !default;
+
+/// @prop - The amount of whitespace to display on either side of the floating label
+$input-md-floating-label-padding: 4px !default;
diff --git a/core/src/components/input/input.scss b/core/src/components/input/input.scss
index 81cd317dda8..d8338c0fb5f 100644
--- a/core/src/components/input/input.scss
+++ b/core/src/components/input/input.scss
@@ -393,13 +393,6 @@
// ----------------------------------------------------------------
.label-text-wrapper {
- /**
- * The margin between the label and
- * the input should be on the end
- * when the label sits at the start.
- */
- @include margin(0, 8px, 0, 0);
-
/**
* This causes the label to take up
* the entire height of its container
@@ -409,6 +402,16 @@
align-items: center;
+ /**
+ * Label text should not extend
+ * beyond the bounds of the input.
+ * However, we do not set the max
+ * width to 100% because then
+ * only the label would show and users
+ * would not be able to see what they are typing.
+ */
+ max-width: 200px;
+
transition: color 150ms cubic-bezier(.4, 0, .2, 1), transform 150ms cubic-bezier(.4, 0, .2, 1);
/**
@@ -460,6 +463,15 @@
flex-direction: row;
}
+:host(.input-label-placement-start) .label-text-wrapper {
+ /**
+ * The margin between the label and
+ * the input should be on the end
+ * when the label sits at the start.
+ */
+ @include margin(0, 8px, 0, 0);
+}
+
// Input Label Placement - End
// ----------------------------------------------------------------
@@ -483,6 +495,15 @@
// Input Label Placement - Fixed
// ----------------------------------------------------------------
+:host(.input-label-placement-fixed) .label-text-wrapper {
+ /**
+ * The margin between the label and
+ * the input should be on the end
+ * when the label sits at the start.
+ */
+ @include margin(0, 8px, 0, 0);
+}
+
/**
* Label is on the left of the input in LTR and
* on the right in RTL. Label also has a fixed width.
@@ -519,6 +540,8 @@
:host(.input-label-placement-stacked) .label-text-wrapper,
:host(.input-label-placement-floating) .label-text-wrapper {
@include transform-origin(start, top);
+
+ max-width: 100%;
}
/**
@@ -559,4 +582,10 @@
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
@include transform(translateY(50%), scale(.75));
+
+ /**
+ * Label text should not extend
+ * beyond the bounds of the input.
+ */
+ max-width: calc(100% / #{$input-floating-label-scale});
}
diff --git a/core/src/components/input/input.tsx b/core/src/components/input/input.tsx
index 07c4f0cfe09..0e42a2a31af 100644
--- a/core/src/components/input/input.tsx
+++ b/core/src/components/input/input.tsx
@@ -572,28 +572,28 @@ export class Input implements ComponentInterface {
* when fill="outline".
*/
private renderLabelContainer() {
- const { labelPlacement } = this;
- const hasOutlineFill = this.fill === 'outline';
- const needsNotch = labelPlacement === 'floating' || labelPlacement === 'stacked';
+ const mode = getIonMode(this);
+ const hasOutlineFill = mode === 'md' && this.fill === 'outline';
if (hasOutlineFill) {
/**
* The outline fill has a special outline
* that appears around the input and the label.
- * Certain label placements cause the
+ * Certain stacked and floating label placements cause the
* label to translate up and create a "cut out"
- * inside of that border. When this happens, we need
- * to render the label inside of the input-outline-notch
- * element. Otherwise, we can render it as a sibling
- * of the outline container.
+ * inside of that border by using the notch-spacer element.
*/
return [
,
- !needsNotch && this.renderLabel(),
+ this.renderLabel(),
];
}
diff --git a/core/src/components/input/input.vars.scss b/core/src/components/input/input.vars.scss
index e21c162d176..abf0e2ca89d 100644
--- a/core/src/components/input/input.vars.scss
+++ b/core/src/components/input/input.vars.scss
@@ -1 +1,4 @@
@import "../../themes/ionic.globals";
+
+/// @prop - How much to scale the floating label by
+$input-floating-label-scale: 0.75 !default;
diff --git a/core/src/components/input/test/fill/input.e2e.ts b/core/src/components/input/test/fill/input.e2e.ts
index bb9c3e15f90..c9d7c83f96a 100644
--- a/core/src/components/input/test/fill/input.e2e.ts
+++ b/core/src/components/input/test/fill/input.e2e.ts
@@ -22,6 +22,24 @@ test.describe('input: fill', () => {
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-fill-solid-${page.getSnapshotSettings()}.png`);
});
+ test('should render correctly with floating label', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-fill-solid-label-floating-${page.getSnapshotSettings()}.png`
+ );
+ });
test('should not have visual regressions with shaped solid', async ({ page }) => {
await page.setContent(`
{
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-fill-shaped-solid-${page.getSnapshotSettings()}.png`);
});
+ test('padding and border radius should be customizable', async ({ page }) => {
+ await page.setContent(`
+
+
+
+ `);
+
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-fill-shaped-solid-custom-${page.getSnapshotSettings()}.png`
+ );
+ });
});
test.describe('input: fill outline', () => {
test('should not have visual regressions', async ({ page }) => {
@@ -55,6 +100,24 @@ test.describe('input: fill', () => {
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-fill-outline-${page.getSnapshotSettings()}.png`);
});
+ test('should render correctly with floating label', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-fill-outline-label-floating-${page.getSnapshotSettings()}.png`
+ );
+ });
test('should not have visual regressions with shaped outline', async ({ page }) => {
await page.setContent(`
{
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-fill-shaped-outline-${page.getSnapshotSettings()}.png`);
});
+ test('padding and border radius should be customizable', async ({ page }) => {
+ await page.setContent(`
+
+
+
+ `);
+
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-fill-shaped-outline-custom-${page.getSnapshotSettings()}.png`
+ );
+ });
});
});
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..e10a59ef99d
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..929079cf052
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..29685999486
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..b281509e647
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..97b3ea3e3cb
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..92cb9cac923
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-outline-label-floating-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..90a70034e5f
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..57c01969362
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..83d6bf22cf9
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..7de78c89311
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..facf7dbbc1f
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..fbe285d9da4
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-outline-custom-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..505958e9178
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..f58380f933f
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..9f883bd8018
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..f8a2900e8a8
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..4e52c2d1964
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..2710af92cb5
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-shaped-solid-custom-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..b265b322d5b
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..604952444c7
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..e0bfe1b0f77
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..9445441ef4b
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..dc6cbc1c721
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..c2bf07d1ee7
Binary files /dev/null and b/core/src/components/input/test/fill/input.e2e.ts-snapshots/input-fill-solid-label-floating-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts b/core/src/components/input/test/label-placement/input.e2e.ts
index 65c03c94122..cc9431df758 100644
--- a/core/src/components/input/test/label-placement/input.e2e.ts
+++ b/core/src/components/input/test/label-placement/input.e2e.ts
@@ -10,6 +10,16 @@ test.describe('input: label placement start', () => {
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-placement-start-${page.getSnapshotSettings()}.png`);
});
+
+ test('long label should truncate', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-start-long-label-${page.getSnapshotSettings()}.png`
+ );
+ });
});
test.describe('input: label placement end', () => {
@@ -21,6 +31,15 @@ test.describe('input: label placement end', () => {
const input = page.locator('ion-input');
expect(await input.screenshot()).toMatchSnapshot(`input-placement-end-${page.getSnapshotSettings()}.png`);
});
+ test('long label should truncate', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-end-long-label-${page.getSnapshotSettings()}.png`
+ );
+ });
});
test.describe('input: label placement fixed', () => {
@@ -55,6 +74,15 @@ test.describe('input: label placement stacked', () => {
`input-placement-stacked-no-value-${page.getSnapshotSettings()}.png`
);
});
+ test('long label should truncate', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-stacked-long-label-${page.getSnapshotSettings()}.png`
+ );
+ });
});
test.describe('input: label placement floating', () => {
@@ -93,4 +121,34 @@ test.describe('input: label placement floating', () => {
`input-focused-placement-floating-no-value-${page.getSnapshotSettings()}.png`
);
});
+ test('long label should truncate', async ({ page }) => {
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-floating-long-label-${page.getSnapshotSettings()}.png`
+ );
+ });
+
+ test('long label should truncate with outline', async ({ page, skip }) => {
+ skip.mode('ios', 'This style only appears on MD');
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-floating-long-label-outline-${page.getSnapshotSettings()}.png`
+ );
+ });
+ test('long label should truncate with solid', async ({ page, skip }) => {
+ skip.mode('ios', 'This style only appears on MD');
+ await page.setContent(`
+
+ `);
+ const input = page.locator('ion-input');
+ expect(await input.screenshot()).toMatchSnapshot(
+ `input-placement-floating-long-label-solid-${page.getSnapshotSettings()}.png`
+ );
+ });
});
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..a7064b4b67e
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..cfcd07def9b
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..c3f0abd6d2a
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..2206d9a29de
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..bf6ddfda913
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..8271968604e
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..dcc1b0b2774
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..207166e210a
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..20a296d3843
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..66dfa2779e5
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..9f7abb1af0c
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..a4db99f94ef
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-end-long-label-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..ed7fea78372
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..fc58277d876
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..fcdbb4e7878
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..728729f9d5c
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..41f3ab8efd5
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..d0f0381361e
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..75e675dbcf3
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..d5fdfd5bbe2
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..216cfd37ecf
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..902ac496bb0
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..f845477a535
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..72f130494ed
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..1dee55a5fc6
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..fbec1a8fe23
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..839f7e65822
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..c88958035b1
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..187961bbac7
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..a17057970cd
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-outline-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..153b0c111a4
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..8b237a7a74d
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..d7ae7ebb6ae
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..5de06af7282
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..cdf9c1c93de
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..1eabb698146
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-floating-long-label-solid-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..ed7fea78372
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..fc58277d876
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..fcdbb4e7878
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..728729f9d5c
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..41f3ab8efd5
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..d0f0381361e
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..75e675dbcf3
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..d5fdfd5bbe2
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..216cfd37ecf
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..902ac496bb0
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..f845477a535
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..72f130494ed
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-stacked-long-label-md-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..1b7b11f7cd5
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..37821f629b7
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..646749fde11
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..65a3f5871f0
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..d42dd70cc8b
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..4bc8a926de6
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-ios-rtl-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..8adca3fd71b
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..57ce5d2eb53
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..fcd1dd648f5
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-ltr-Mobile-Safari-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Chrome-linux.png
new file mode 100644
index 00000000000..faf7026a620
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Chrome-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Firefox-linux.png
new file mode 100644
index 00000000000..5f63dfb6c28
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Firefox-linux.png differ
diff --git a/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Safari-linux.png
new file mode 100644
index 00000000000..4ab11ed4857
Binary files /dev/null and b/core/src/components/input/test/label-placement/input.e2e.ts-snapshots/input-placement-start-long-label-md-rtl-Mobile-Safari-linux.png differ