.wc-block-text-input { position: relative; margin-bottom: $gap-large; white-space: nowrap; label { @include font-size(16px); position: absolute; transform: translateY(0.75em); left: 0; top: 0; transform-origin: top left; line-height: 1.375; color: $gray-50; transition: transform 200ms ease; margin: 0 $gap; overflow: hidden; text-overflow: ellipsis; max-width: calc(100% - #{ 2 * $gap }); @media screen and (prefers-reduced-motion: reduce) { transition: none; } } input:-webkit-autofill + label { transform: translateY(#{$gap-smallest}) scale(0.75); } &.is-active label { transform: translateY(#{$gap-smallest}) scale(0.75); } input[type="tel"], input[type="url"], input[type="text"], input[type="email"] { @include font-size(16px); background-color: #fff; padding: $gap-small $gap; border-radius: 4px; border: 1px solid $input-border-gray; width: 100%; line-height: 1.375; font-family: inherit; margin: 0; box-sizing: border-box; height: 3em; color: $input-text-active; &:focus { background-color: #fff; } } &.is-active input[type="tel"], &.is-active input[type="url"], &.is-active input[type="text"], &.is-active input[type="email"] { padding: rem($gap-large) $gap rem($gap-smallest); } &.has-error input { border-color: $error-red; &:focus { outline-color: $error-red; } } &.has-error label { color: $error-red; } &:only-child { margin-bottom: 0; } }