%base-input { width: 100%; outline-offset: 0; border: 2px solid $border-color; border-radius: 0; background-color: $background-color; padding: $tiny-spacing; &.valid { outline: 2px solid $success-color; } &:focus { outline: 2px solid $input-focus-color; } &:not([value=""]) { &:invalid, &.invalid { outline: 2px solid $error-color; } } &:disabled, &[disabled] { cursor: not-allowed; background: $lighter-grey; border: 2px solid $light-grey; } } fieldset { margin: 0 0 $medium-spacing 0; padding: 0; border: none; } legend { margin-bottom: $small-spacing; } label { display: block; margin-top: ($small-spacing + $tiny-spacing); margin-bottom: ($small-spacing + $tiny-spacing); @include media($tablet) { margin-top: $small-spacing; margin-bottom: $small-spacing; } } .hint { display: block; margin-bottom: $tiny-spacing; font-size: 0.875rem; color: $body-text-color; } input[type='text'], input[type='number'], input[type='tel'], input[type='email'], input[type='password'] { @extend %base-input; } textarea { @extend %base-input; resize: vertical; }