/* Text Inputs + Textarea ========================================================================== */ /* Style Placeholders */ ::placeholder { color: $placeholder-text-color; } /* Text inputs */ input:not([type]):not(.browser-default), input[type=text]:not(.browser-default), input[type=password]:not(.browser-default), input[type=email]:not(.browser-default), input[type=url]:not(.browser-default), input[type=time]:not(.browser-default), input[type=date]:not(.browser-default), input[type=datetime]:not(.browser-default), input[type=datetime-local]:not(.browser-default), input[type=month]:not(.browser-default), input[type=tel]:not(.browser-default), input[type=number]:not(.browser-default), input[type=search]:not(.browser-default), textarea.materialize-textarea { outline: none; color: $input-color; width: 100%; font-size: $md_sys_typescale_body-large_size; //$input-font-size; // => 16 dp height: 56px; // 56dp $input-height; } /* Validation Sass Placeholders */ %valid-input-style { border-bottom: 1px solid $input-success-color; box-shadow: 0 1px 0 0 $input-success-color; } %invalid-input-style { border-bottom: $input-invalid-border; box-shadow: 0 1px 0 0 $input-error-color; } %hidden-text { color: transparent; user-select: none; pointer-events: none; } /* %custom-success-message { content: attr(data-success); color: $input-success-color; } %custom-error-message { content: attr(data-error); color: $input-error-color; } */ .input-field { position: relative; clear: both; // Default input, textarea { box-sizing: border-box; /* https://stackoverflow.com/questions/1377719/padding-within-inputs-breaks-width-100*/ padding: 0 16px; padding-top: 20px; background-color: $surface-color; border: none; // reset border-radius: 4px; // md.sys.shape.corner.extra-small.top border-bottom: 1px solid $input-border-color; border-bottom-left-radius: 0; border-bottom-right-radius: 0; &:focus:not([readonly]) { border-bottom: 2px solid $input-focus-color; padding-top: 20px + 1px; // add border-width } &:disabled, &[readonly="readonly"] { color: $textfield_disabled_color; border-color: $textfield_disabled_outlinecolor; background-color: $textfield_disabled_containercolor; } // Label &:focus:not([readonly]) + label { color: $input-focus-color; } &:focus:not([readonly]) + label, &:not([placeholder=' ']) + label, &:not(:placeholder-shown) + label { //font-size: 12px; // md.sys.typescale.body-small.size // https://stackoverflow.com/questions/34717492/css-transition-font-size-avoid-jittering-wiggling transform: scale(calc(12 / 16)); top: 8px; } &:disabled + label, &[readonly="readonly"] + label { color: $textfield_disabled_color; } } input::placeholder { user-select: none; } & > label { color: $input-border-color; user-select: none; font-size: 16px; position: absolute; left: 16px; top: 16px; cursor: text; transform-origin: top left; transition: left 0.2s ease-out, top 0.2s ease-out, transform 0.2s ease-out ; } // Sub-Infos .supporting-text { color: $input-border-color; font-size: 12px; padding: 0 16px; margin-top: 4px; } .character-counter { color: $input-border-color; font-size: 12px; float: right; padding: 0 16px; margin-top: 4px; } .prefix { position: absolute; left: 12px; top: 16px; user-select: none; display: flex; align-self: center; } .suffix { position: absolute; right: 12px; top: 16px; user-select: none; } .prefix ~ input, .prefix ~ textarea { padding-left: calc(12px + 24px + 16px); } .suffix ~ input, .suffix ~ textarea { padding-right: calc(12px + 24px + 16px); } .prefix ~ label { left: calc(12px + 24px + 16px); } // Outlined &.outlined { input, textarea { padding-top: 0; background-color: var(--background-color); border: 1px solid $input-border-color; border-radius: 4px; // md.sys.shape.corner.extra-small &:focus:not([readonly]) { border: 2px solid $input-focus-color; padding-top: 0; margin-left: -1px; // subtract border-width } // Label &:focus:not([readonly]) + label { color: $input-focus-color; } &:focus:not([readonly]) + label, &:not([placeholder=' ']) + label, &:not(:placeholder-shown) + label { top: -8px; left: 16px; margin-left: -4px; padding: 0 4px; background-color: var(--background-color); } &:disabled, &[readonly="readonly"] { color: $textfield_disabled_color; border-color: $textfield_disabled_outlinecolor; } } } // Error &.error { input, textarea { border-color: var(--error-color); } input:focus:not([readonly]), textarea:focus:not([readonly]) { border-color: var(--error-color); } input:focus:not([readonly]) + label, textarea:focus:not([readonly]) + label { color: var(--error-color); } label { color: var(--error-color); } .supporting-text { color: var(--error-color); } .suffix { color: var(--error-color); } } } /* Search Field */ .searchbar { .prefix { position: absolute; //left: 12px; padding-left: 1rem; top: 0; user-select: none; display: flex; align-self: center; } & > input { border-width: 0; background-color: transparent; padding-left: 3rem; } } .searchbar.has-sidebar { margin-left: 0; @media #{$large-and-up} { margin-left: $sidenav-width; } } /* .input-field input[type=search] { display: block; line-height: inherit; .nav-wrapper & { height: inherit; padding-left: 4rem; width: calc(100% - 4rem); border: 0; box-shadow: none; } &:focus:not(.browser-default) { border: 0; box-shadow: none; } & + .label-icon { transform: none; left: 1rem; } } */ /* Textarea */ // Default textarea textarea { width: 100%; height: $input-height; background-color: transparent; &.materialize-textarea { padding-top: 26px !important; padding-bottom: 4px !important; line-height: normal; overflow-y: hidden; /* prevents scroll bar flash */ resize: none; min-height: $input-height; box-sizing: border-box; } } // For textarea autoresize .hiddendiv { visibility: hidden; white-space: pre-wrap; word-wrap: break-word; overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */ padding-top: 1.2rem; /* prevents text jump on Enter keypress */ // Reduces repaints position: absolute; top: 0; z-index: -1; } /* Autocomplete Items */ .autocomplete-content { li { .highlight { color: $font-color-main; } img { height: $dropdown-item-height - 10; width: $dropdown-item-height - 10; margin: 5px 15px; } } }