From 7b2ae084e19c75cfc5b459329f0d0fc5e30e63ef Mon Sep 17 00:00:00 2001 From: droc101 <37421449+droc101@users.noreply.github.com> Date: Mon, 20 Jul 2026 11:16:14 -0500 Subject: [PATCH 1/2] fix(select): prevent floating label and placeholder from overlapping when focused modify placeholder visibility (opacity) css condition to show the placeholder if the select is focused *and* has no value, as opposed to only being focused closes #30401 --- core/src/components/select/select.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/components/select/select.scss b/core/src/components/select/select.scss index 157b2f5e358..94475ed21cd 100644 --- a/core/src/components/select/select.scss +++ b/core/src/components/select/select.scss @@ -599,7 +599,7 @@ button { * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder */ :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder, -:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder, +:host(.has-focus.select-label-placement-floating):not(.has-value) .native-wrapper .select-placeholder, :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder { opacity: 1; } From 07474e50c3f8e84ffbe15ce59febddb7c124a5e6 Mon Sep 17 00:00:00 2001 From: droc101 <37421449+droc101@users.noreply.github.com> Date: Tue, 21 Jul 2026 14:20:52 -0500 Subject: [PATCH 2/2] fix(select): change labelShouldFloat to match ion-input behavior --- core/src/components/select/select.scss | 2 +- core/src/components/select/select.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/components/select/select.scss b/core/src/components/select/select.scss index 94475ed21cd..157b2f5e358 100644 --- a/core/src/components/select/select.scss +++ b/core/src/components/select/select.scss @@ -599,7 +599,7 @@ button { * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder */ :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder, -:host(.has-focus.select-label-placement-floating):not(.has-value) .native-wrapper .select-placeholder, +:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder, :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder { opacity: 1; } diff --git a/core/src/components/select/select.tsx b/core/src/components/select/select.tsx index e39856c2482..da56086d205 100644 --- a/core/src/components/select/select.tsx +++ b/core/src/components/select/select.tsx @@ -1228,7 +1228,7 @@ export class Select implements ComponentInterface { * TODO(FW-5592): Remove hasStartEndSlots condition */ const labelShouldFloat = - labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots)); + labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded || hasStartEndSlots)); return (