JSFiddle - React, Tailwind, and code Playground
HTML
<div class="input-wrapper">
<input id="i1" type="text" placeholder="Иван">
<label for="i1">Ваше имя любой длины текст Lorem ipsum dolor sit amet, consectetur adipisicing elit.</label>
</div>
CSS
@import url('https://fonts.googleapis.com/css2?family=Neucha&display=swap');
* {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}
body {
font-family: 'Neucha', cursive;
}
.input-wrapper {
display: grid;
width: 30%;
padding: 10px;
background: #eee;
border: 2px solid #ddd;
border-radius: 10px;
overflow: hidden;
}
.input-wrapper:focus-within {
border-color: deepskyblue;
}
input {
grid-column: 1/2;
grid-row: 1/2;
width: 100%;
border: none;
background: transparent;
}
input::placeholder {
color: transparent;
}
label {
grid-column: 1/2;
grid-row: 1/2;
}
input:focus {
outline: none;
}
input:focus+label,
input:not(:placeholder-shown)+label {
visibility: hidden;
}