ionic-team / ionic-team/ionic-framework

bug(input, select): changing font size with label-placement="floating" causes incorrect label position

Open
#27,194 12 comments 2 reactions 0 assignees View on GitHub
package: core type: bug
Dominant language
TypeScript
Stars
52.7k
Forks
13.3k
Avg merge
1d 15h
Merged PRs (30d)
51

Description

### Prerequisites

- [X] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#creating-an-issue).
- [X] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [X] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v7.x

### Current Behavior

The floating label placement of an outlined `` seems buggy in my applications so i debugged in and mentioned that the current implementation is not very consistent and for example breaks if you set for example a different font size.

Atm the label is placed by (select example):
```css
:host(.select-label-placement-floating) .label-text-wrapper {
transform: translateY(100%) scale(1);
}
```

what only works if the label (the `label-text-wrapper` element) has1/3 of the height of the select itself as far as i understand. This stops working if you set a different font size on a input/select.

### Expected Behavior

The implementation should force the label to be always centered in the middle. For example:

```css
:host(.select-label-placement-floating) .label-text-wrapper {
top: 50%;
transform: translateY(-50%) scale(1);
}
```
and then of course reset the top property on other states

### Steps to Reproduce

Change the font size on a md outlined floating label select or input element

### Code Reproduction URL

_No response_

### Ionic Info

Let me know if required

### Additional Information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by locating the CSS for outlined floating-label states in the ion-select and ion-input components. Reproduce the issue by changing the font size on a Material Design outlined floating-label control, then compare label placement across the affected states. Done means the label remains centered at different font sizes without breaking other label placements.

Written by the indexing model from the issue text.

Assessment

Tech stack
css, typescript
Domain
design, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.