|
| 1 | +/* |
| 2 | + * SPDX-FileCopyrightText: 2023 Siemens AG |
| 3 | + * |
| 4 | + * SPDX-License-Identifier: MIT |
| 5 | + * |
| 6 | + * This source code is licensed under the MIT license found in the |
| 7 | + * LICENSE file in the root directory of this source tree. |
| 8 | + */ |
| 9 | +@import 'common-variables'; |
| 10 | +@import 'mixins/fonts'; |
| 11 | + |
| 12 | +@mixin element-input($feature-read-only: true) { |
| 13 | + &, |
| 14 | + &:-webkit-autofill { |
| 15 | + @include typography-body; |
| 16 | + min-height: 2rem; |
| 17 | + width: 100%; |
| 18 | + padding: 0.25rem 0.5rem; |
| 19 | + background-color: var(--theme-input--background); |
| 20 | + color: var(--theme-input--color); |
| 21 | + |
| 22 | + border: var(--theme-input--border-thickness, 1px) solid |
| 23 | + var(--theme-input--border-color); |
| 24 | + border-radius: var(--theme-input--border-radius); |
| 25 | + box-shadow: var(--theme-input--box-shadow); |
| 26 | + } |
| 27 | + |
| 28 | + &:-webkit-autofill { |
| 29 | + -webkit-box-shadow: 0 0 0 1000px var(--theme-input--background) inset !important; |
| 30 | + -webkit-text-fill-color: var(--theme-input--color) !important; |
| 31 | + border-color: var(--theme-input--border-color) !important; |
| 32 | + } |
| 33 | + |
| 34 | + &::placeholder { |
| 35 | + color: var(--theme-input-hint--color); |
| 36 | + } |
| 37 | + |
| 38 | + &.hover, |
| 39 | + &:hover { |
| 40 | + border-color: var(--theme-input--border-color--hover); |
| 41 | + background-color: var(--theme-input--background--hover); |
| 42 | + } |
| 43 | + |
| 44 | + &.focus, |
| 45 | + &:focus { |
| 46 | + outline: 1px solid var(--theme-color-focus-bdr); |
| 47 | + outline-offset: var(--theme-input--focus--outline-offset); |
| 48 | + border-color: var(--theme-input--border-color--focus); |
| 49 | + } |
| 50 | + |
| 51 | + @if $feature-read-only == true { |
| 52 | + &.read-only, |
| 53 | + &:read-only { |
| 54 | + box-shadow: none; |
| 55 | + background-color: transparent; |
| 56 | + outline: none; |
| 57 | + border: none; |
| 58 | + border-bottom: var(--theme-input--border-thickness, 1px) |
| 59 | + solid |
| 60 | + var(--theme-input--border-color-bottom--readonly); |
| 61 | + } |
| 62 | + } |
| 63 | + |
| 64 | + &:disabled { |
| 65 | + box-shadow: none; |
| 66 | + background-color: transparent; |
| 67 | + outline: none; |
| 68 | + border: none; |
| 69 | + color: var(--theme-input--color--disabled); |
| 70 | + border-bottom: var(--theme-input--border-thickness, 1px) solid |
| 71 | + var(--theme-input--border-color-bottom--disabled); |
| 72 | + } |
| 73 | +} |
| 74 | + |
| 75 | +@mixin element-textarea { |
| 76 | + height: 3.25rem; |
| 77 | + padding: 0.375rem 1.25rem 0.375rem 0.5rem; |
| 78 | +} |
| 79 | + |
| 80 | +@mixin form { |
| 81 | + label { |
| 82 | + color: var(--theme-color-soft-text); |
| 83 | + } |
| 84 | + |
| 85 | + input { |
| 86 | + @include element-input(); |
| 87 | + } |
| 88 | + |
| 89 | + input[type='number'] { |
| 90 | + &::-webkit-inner-spin-button { |
| 91 | + margin-right: -2px; |
| 92 | + margin-left: 2px; |
| 93 | + display: none; |
| 94 | + } |
| 95 | + |
| 96 | + text-align: right; |
| 97 | + } |
| 98 | + |
| 99 | + textarea { |
| 100 | + @include element-input(); |
| 101 | + @include element-textarea(); |
| 102 | + } |
| 103 | + |
| 104 | + textarea ~ .valid-feedback, |
| 105 | + textarea ~ .invalid-feedback, |
| 106 | + input ~ .valid-feedback, |
| 107 | + input ~ .invalid-feedback { |
| 108 | + display: none; |
| 109 | + |
| 110 | + @include typography-body; |
| 111 | + } |
| 112 | + |
| 113 | + form { |
| 114 | + textarea ~ .valid-feedback, |
| 115 | + input ~ .valid-feedback { |
| 116 | + color: var(--theme-color-success); |
| 117 | + } |
| 118 | + |
| 119 | + textarea ~ .invalid-feedback, |
| 120 | + input ~ .invalid-feedback { |
| 121 | + color: var(--theme-color-alarm-text); |
| 122 | + } |
| 123 | + } |
| 124 | + |
| 125 | + form:not([novalidate]), |
| 126 | + form.was-validated { |
| 127 | + :invalid, |
| 128 | + .is-invalid { |
| 129 | + background-color: var(--theme-input-error--background); |
| 130 | + border-color: var(--theme-input-error--border-color); |
| 131 | + background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='512px' height='512px' viewBox='0 0 512 512' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3C!-- Generator: sketchtool 62 (101010) - https://sketch.com --%3E%3Ctitle%3Eerror%3C/title%3E%3Cdesc%3ECreated with sketchtool.%3C/desc%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' fill-opacity='0.75'%3E%3Cg id='error' fill='%23ff2640'%3E%3Cg id='error/error'%3E%3Cpath d='M256,42.6666667 C373.626371,42.6666667 469.333333,138.373627 469.333333,256 C469.333333,373.626371 373.626371,469.333333 256,469.333333 C138.373627,469.333333 42.6666667,373.626371 42.6666667,256 C42.6666667,138.373627 138.373627,42.6666667 256,42.6666667 Z M256,85.3333333 C161.559631,85.3333333 85.3333333,161.559631 85.3333333,256 C85.3333333,350.44037 161.559631,426.666667 256,426.666667 C350.44037,426.666667 426.666667,350.44037 426.666667,256 C426.666667,161.559631 350.44037,85.3333333 256,85.3333333 Z M326.248389,155.581722 L356.418278,185.751611 L286.168667,255.999667 L356.418278,326.248389 L326.248389,356.418278 L255.999667,286.168667 L185.751611,356.418278 L155.581722,326.248389 L225.829667,255.999667 L155.581722,185.751611 L185.751611,155.581722 L255.999667,225.829667 L326.248389,155.581722 Z' id='Combined-Shape'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E") !important; |
| 132 | + background-position: left calc(0.375em + 0.1875rem) center; |
| 133 | + padding-right: 0.75rem; |
| 134 | + padding-left: calc(1.5em + 0.75rem); |
| 135 | + background-size: 18px; |
| 136 | + background-repeat: no-repeat; |
| 137 | + } |
| 138 | + |
| 139 | + :invalid, |
| 140 | + .is-invalid { |
| 141 | + ~ .invalid-feedback { |
| 142 | + display: block; |
| 143 | + } |
| 144 | + } |
| 145 | + |
| 146 | + :valid, |
| 147 | + .is-valid { |
| 148 | + ~ .valid-feedback { |
| 149 | + display: block; |
| 150 | + } |
| 151 | + } |
| 152 | + } |
| 153 | +} |
| 154 | + |
| 155 | +@include form; |
0 commit comments