index.less 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. @import './var.less';
  2. @import '../cell/var.less';
  3. :root {
  4. --van-field-label-width: @field-label-width;
  5. --van-field-label-color: @field-label-color;
  6. --van-field-label-margin-right: @field-label-margin-right;
  7. --van-field-input-text-color: @field-input-text-color;
  8. --van-field-input-error-text-color: @field-input-error-text-color;
  9. --van-field-input-disabled-text-color: @field-input-disabled-text-color;
  10. --van-field-placeholder-text-color: @field-placeholder-text-color;
  11. --van-field-icon-size: @field-icon-size;
  12. --van-field-clear-icon-size: @field-clear-icon-size;
  13. --van-field-clear-icon-color: @field-clear-icon-color;
  14. --van-field-right-icon-color: @field-right-icon-color;
  15. --van-field-error-message-color: @field-error-message-color;
  16. --van-field-error-message-font-size: @field-error-message-font-size;
  17. --van-field-text-area-min-height: @field-text-area-min-height;
  18. --van-field-word-limit-color: @field-word-limit-color;
  19. --van-field-word-limit-font-size: @field-word-limit-font-size;
  20. --van-field-word-limit-line-height: @field-word-limit-line-height;
  21. --van-field-disabled-text-color: @field-disabled-text-color;
  22. --van-field-required-mark-color: @field-required-mark-color;
  23. }
  24. .van-field {
  25. &__label {
  26. flex: none;
  27. box-sizing: border-box;
  28. width: var(--van-field-label-width);
  29. margin-right: var(--van-field-label-margin-right);
  30. color: var(--van-field-label-color);
  31. text-align: left;
  32. word-wrap: break-word;
  33. &--center {
  34. text-align: center;
  35. }
  36. &--right {
  37. text-align: right;
  38. }
  39. &--required {
  40. &::before {
  41. margin-right: 2px;
  42. color: var(--van-field-required-mark-color);
  43. content: '*';
  44. }
  45. }
  46. }
  47. &--disabled {
  48. .van-field__label {
  49. color: var(--van-field-disabled-text-color);
  50. }
  51. }
  52. &__value {
  53. overflow: visible;
  54. }
  55. &__body {
  56. display: flex;
  57. align-items: center;
  58. }
  59. &__control {
  60. display: block;
  61. box-sizing: border-box;
  62. width: 100%;
  63. min-width: 0; // for flex-shrink in field__button
  64. margin: 0;
  65. padding: 0;
  66. color: var(--van-field-input-text-color);
  67. line-height: inherit;
  68. text-align: left;
  69. background-color: transparent;
  70. border: 0;
  71. resize: none;
  72. // https://github.com/vant-ui/vant/pull/9418
  73. user-select: auto;
  74. &::placeholder {
  75. color: var(--van-field-placeholder-text-color);
  76. }
  77. &:disabled {
  78. color: var(--van-field-input-disabled-text-color);
  79. cursor: not-allowed;
  80. opacity: 1;
  81. // fix disabled color in mobile safari
  82. -webkit-text-fill-color: var(--van-field-input-disabled-text-color);
  83. }
  84. &:read-only {
  85. cursor: default;
  86. }
  87. &--center {
  88. justify-content: center;
  89. text-align: center;
  90. }
  91. &--right {
  92. justify-content: flex-end;
  93. text-align: right;
  94. }
  95. &--custom {
  96. display: flex;
  97. align-items: center;
  98. min-height: var(--van-cell-line-height);
  99. }
  100. &--error,
  101. &--error::placeholder {
  102. color: var(--van-field-input-error-text-color);
  103. -webkit-text-fill-color: currentColor;
  104. }
  105. &--min-height {
  106. min-height: var(--van-field-text-area-min-height);
  107. }
  108. // for ios wechat
  109. &[type='date'],
  110. &[type='time'],
  111. &[type='datetime-local'] {
  112. min-height: var(--van-cell-line-height);
  113. }
  114. // for safari
  115. &[type='search'] {
  116. -webkit-appearance: none;
  117. }
  118. }
  119. &__clear,
  120. &__icon,
  121. &__button,
  122. &__right-icon {
  123. flex-shrink: 0;
  124. }
  125. &__clear,
  126. &__right-icon {
  127. margin-right: calc(var(--van-padding-xs) * -1);
  128. padding: 0 var(--van-padding-xs);
  129. line-height: inherit;
  130. }
  131. &__clear {
  132. color: var(--van-field-clear-icon-color);
  133. font-size: var(--van-field-clear-icon-size);
  134. cursor: pointer;
  135. }
  136. &__left-icon .van-icon,
  137. &__right-icon .van-icon {
  138. display: block;
  139. font-size: var(--van-field-icon-size);
  140. line-height: inherit;
  141. }
  142. &__left-icon {
  143. margin-right: var(--van-padding-base);
  144. }
  145. &__right-icon {
  146. color: var(--van-field-right-icon-color);
  147. }
  148. &__button {
  149. padding-left: var(--van-padding-xs);
  150. }
  151. &__error-message {
  152. color: var(--van-field-error-message-color);
  153. font-size: var(--van-field-error-message-font-size);
  154. text-align: left;
  155. &--center {
  156. text-align: center;
  157. }
  158. &--right {
  159. text-align: right;
  160. }
  161. }
  162. &__word-limit {
  163. margin-top: var(--van-padding-base);
  164. color: var(--van-field-word-limit-color);
  165. font-size: var(--van-field-word-limit-font-size);
  166. line-height: var(--van-field-word-limit-line-height);
  167. text-align: right;
  168. }
  169. }