input.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. /*!
  2. * Angular Material Design
  3. * https://github.com/angular/material
  4. * @license MIT
  5. * v0.11.4
  6. */
  7. md-input-container {
  8. display: -webkit-flex;
  9. display: -ms-flexbox;
  10. display: flex;
  11. position: relative;
  12. -webkit-flex-direction: column;
  13. -ms-flex-direction: column;
  14. flex-direction: column;
  15. padding: 2px;
  16. padding-bottom: 26px;
  17. /*
  18. * The .md-input class is added to the input/textarea
  19. */ }
  20. md-input-container.md-input-has-messages {
  21. padding-bottom: 2px; }
  22. md-input-container > md-icon {
  23. position: absolute;
  24. top: 5px;
  25. left: 2px; }
  26. md-input-container > md-icon + input {
  27. margin-left: 36px; }
  28. md-input-container textarea, md-input-container input[type="text"], md-input-container input[type="password"], md-input-container input[type="datetime"], md-input-container input[type="datetime-local"], md-input-container input[type="date"], md-input-container input[type="month"], md-input-container input[type="time"], md-input-container input[type="week"], md-input-container input[type="number"], md-input-container input[type="email"], md-input-container input[type="url"], md-input-container input[type="search"], md-input-container input[type="tel"], md-input-container input[type="color"] {
  29. /* remove default appearance from all input/textarea */
  30. -moz-appearance: none;
  31. -webkit-appearance: none; }
  32. md-input-container input[type="date"], md-input-container input[type="datetime-local"], md-input-container input[type="month"], md-input-container input[type="time"], md-input-container input[type="week"] {
  33. min-height: 26px; }
  34. md-input-container textarea {
  35. resize: none;
  36. overflow: hidden; }
  37. md-input-container textarea.md-input {
  38. min-height: 26px;
  39. -ms-flex-preferred-size: auto; }
  40. md-input-container label {
  41. position: relative;
  42. top: -2px; }
  43. md-input-container label:not(.md-no-float), md-input-container .md-placeholder {
  44. -webkit-order: 1;
  45. -ms-flex-order: 1;
  46. order: 1;
  47. pointer-events: none;
  48. -webkit-font-smoothing: antialiased;
  49. padding-left: 2px;
  50. z-index: 1;
  51. -webkit-transform: translate3d(0, 28px, 0) scale(1);
  52. transform: translate3d(0, 28px, 0) scale(1);
  53. transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.25s;
  54. transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.25s;
  55. -webkit-transform-origin: left top;
  56. transform-origin: left top; }
  57. html[dir=rtl] md-input-container label:not(.md-no-float), html[dir=rtl] md-input-container .md-placeholder {
  58. -webkit-transform-origin: right top;
  59. transform-origin: right top;
  60. unicode-bidi: embed; }
  61. body[dir=rtl] md-input-container label:not(.md-no-float), body[dir=rtl] md-input-container .md-placeholder {
  62. -webkit-transform-origin: right top;
  63. transform-origin: right top;
  64. unicode-bidi: embed; }
  65. md-input-container label:not(.md-no-float) bdo[dir=rtl], md-input-container .md-placeholder bdo[dir=rtl] {
  66. direction: rtl;
  67. unicode-bidi: bidi-override; }
  68. md-input-container label:not(.md-no-float) bdo[dir=ltr], md-input-container .md-placeholder bdo[dir=ltr] {
  69. direction: ltr;
  70. unicode-bidi: bidi-override; }
  71. md-input-container .md-placeholder {
  72. position: absolute;
  73. top: 0;
  74. opacity: 0;
  75. transition-property: opacity, -webkit-transform;
  76. transition-property: opacity, transform;
  77. -webkit-transform: translate3d(0, 30px, 0);
  78. transform: translate3d(0, 30px, 0); }
  79. md-input-container .md-placeholder.md-static {
  80. position: static; }
  81. md-input-container.md-input-focused .md-placeholder {
  82. opacity: 1;
  83. -webkit-transform: translate3d(0, 24px, 0);
  84. transform: translate3d(0, 24px, 0); }
  85. md-input-container.md-input-has-value .md-placeholder {
  86. transition: none;
  87. opacity: 0; }
  88. md-input-container:not(.md-input-has-value) input:not(:focus), md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field, md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text {
  89. color: transparent; }
  90. md-input-container .md-input {
  91. -webkit-order: 2;
  92. -ms-flex-order: 2;
  93. order: 2;
  94. display: block;
  95. margin-top: 0;
  96. background: none;
  97. padding-top: 2px;
  98. padding-bottom: 1px;
  99. padding-left: 2px;
  100. padding-right: 2px;
  101. border-width: 0 0 1px 0;
  102. line-height: 26px;
  103. -ms-flex-preferred-size: 26px;
  104. border-radius: 0;
  105. border-style: solid;
  106. width: auto; }
  107. md-input-container .md-input:focus {
  108. outline: none; }
  109. md-input-container .md-input:invalid {
  110. outline: none;
  111. box-shadow: none; }
  112. md-input-container .md-input.md-no-flex {
  113. -webkit-flex: none !important;
  114. -ms-flex: none !important;
  115. flex: none !important; }
  116. md-input-container .md-char-counter {
  117. position: absolute;
  118. right: 2px;
  119. bottom: 7px; }
  120. md-input-container ng-messages, md-input-container data-ng-messages, md-input-container x-ng-messages, md-input-container [ng-messages], md-input-container [data-ng-messages], md-input-container [x-ng-messages] {
  121. position: relative;
  122. -webkit-order: 4;
  123. -ms-flex-order: 4;
  124. order: 4;
  125. min-height: 24px; }
  126. md-input-container ng-messages .md-char-counter, md-input-container data-ng-messages .md-char-counter, md-input-container x-ng-messages .md-char-counter, md-input-container [ng-messages] .md-char-counter, md-input-container [data-ng-messages] .md-char-counter, md-input-container [x-ng-messages] .md-char-counter {
  127. position: absolute;
  128. top: 0;
  129. right: 0;
  130. bottom: auto; }
  131. md-input-container ng-message, md-input-container data-ng-message, md-input-container x-ng-message, md-input-container [ng-message], md-input-container [data-ng-message], md-input-container [x-ng-message], md-input-container [ng-message-exp], md-input-container [data-ng-message-exp], md-input-container [x-ng-message-exp], md-input-container .md-char-counter {
  132. font-size: 12px;
  133. line-height: 14px;
  134. overflow: hidden;
  135. padding-top: 5px; }
  136. md-input-container ng-message:not(.md-char-counter), md-input-container data-ng-message:not(.md-char-counter), md-input-container x-ng-message:not(.md-char-counter), md-input-container [ng-message]:not(.md-char-counter), md-input-container [data-ng-message]:not(.md-char-counter), md-input-container [x-ng-message]:not(.md-char-counter), md-input-container [ng-message-exp]:not(.md-char-counter), md-input-container [data-ng-message-exp]:not(.md-char-counter), md-input-container [x-ng-message-exp]:not(.md-char-counter), md-input-container .md-char-counter:not(.md-char-counter) {
  137. padding-right: 50px; }
  138. md-input-container ng-message.ng-enter, md-input-container data-ng-message.ng-enter, md-input-container x-ng-message.ng-enter, md-input-container [ng-message].ng-enter, md-input-container [data-ng-message].ng-enter, md-input-container [x-ng-message].ng-enter, md-input-container [ng-message-exp].ng-enter, md-input-container [data-ng-message-exp].ng-enter, md-input-container [x-ng-message-exp].ng-enter, md-input-container .md-char-counter.ng-enter {
  139. transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
  140. transition-delay: 0.2s;
  141. transition-duration: 0.2s; }
  142. md-input-container ng-message.ng-leave, md-input-container data-ng-message.ng-leave, md-input-container x-ng-message.ng-leave, md-input-container [ng-message].ng-leave, md-input-container [data-ng-message].ng-leave, md-input-container [x-ng-message].ng-leave, md-input-container [ng-message-exp].ng-leave, md-input-container [data-ng-message-exp].ng-leave, md-input-container [x-ng-message-exp].ng-leave, md-input-container .md-char-counter.ng-leave {
  143. transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
  144. transition-duration: 0.26667s; }
  145. md-input-container ng-message.ng-enter, md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-enter, md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-enter, md-input-container x-ng-message.ng-leave.ng-leave-active, md-input-container [ng-message].ng-enter, md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-enter, md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-enter, md-input-container [x-ng-message].ng-leave.ng-leave-active, md-input-container [ng-message-exp].ng-enter, md-input-container [ng-message-exp].ng-leave.ng-leave-active, md-input-container [data-ng-message-exp].ng-enter, md-input-container [data-ng-message-exp].ng-leave.ng-leave-active, md-input-container [x-ng-message-exp].ng-enter, md-input-container [x-ng-message-exp].ng-leave.ng-leave-active, md-input-container .md-char-counter.ng-enter, md-input-container .md-char-counter.ng-leave.ng-leave-active {
  146. margin-top: -19px;
  147. opacity: 0; }
  148. md-input-container ng-message.ng-leave, md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-leave, md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-leave, md-input-container x-ng-message.ng-enter.ng-enter-active, md-input-container [ng-message].ng-leave, md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-leave, md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-leave, md-input-container [x-ng-message].ng-enter.ng-enter-active, md-input-container [ng-message-exp].ng-leave, md-input-container [ng-message-exp].ng-enter.ng-enter-active, md-input-container [data-ng-message-exp].ng-leave, md-input-container [data-ng-message-exp].ng-enter.ng-enter-active, md-input-container [x-ng-message-exp].ng-leave, md-input-container [x-ng-message-exp].ng-enter.ng-enter-active, md-input-container .md-char-counter.ng-leave, md-input-container .md-char-counter.ng-enter.ng-enter-active {
  149. margin-top: 0;
  150. opacity: 1; }
  151. md-input-container.md-input-focused label:not(.md-no-float), md-input-container.md-input-has-placeholder label:not(.md-no-float), md-input-container.md-input-has-value label:not(.md-no-float) {
  152. -webkit-transform: translate3d(0, 6px, 0) scale(0.75);
  153. transform: translate3d(0, 6px, 0) scale(0.75); }
  154. md-input-container.md-input-has-value label {
  155. transition: none; }
  156. md-input-container.md-input-focused .md-input, md-input-container .md-input.ng-invalid.ng-dirty {
  157. padding-bottom: 0;
  158. border-width: 0 0 2px 0; }
  159. md-input-container .md-input[disabled], [disabled] md-input-container .md-input {
  160. background-position: 0 bottom;
  161. background-size: 4px 1px;
  162. background-repeat: repeat-x;
  163. margin-bottom: -1px; }
  164. md-input-container.md-icon-float {
  165. margin-top: -16px;
  166. transition: margin-top 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); }
  167. md-input-container.md-icon-float > label {
  168. pointer-events: none;
  169. position: absolute;
  170. margin-left: 36px; }
  171. md-input-container.md-icon-float > md-icon {
  172. top: 26px;
  173. left: 2px; }
  174. md-input-container.md-icon-float > md-icon + input, md-input-container.md-icon-float > md-icon + textarea {
  175. margin-left: 36px; }
  176. md-input-container.md-icon-float > input, md-input-container.md-icon-float > textarea {
  177. padding-top: 24px; }
  178. md-input-container.md-icon-float.md-input-focused, md-input-container.md-icon-float.md-input-has-value {
  179. margin-top: -8px; }
  180. md-input-container.md-icon-float.md-input-focused label, md-input-container.md-icon-float.md-input-has-value label {
  181. -webkit-transform: translate3d(0, 6px, 0) scale(0.75);
  182. transform: translate3d(0, 6px, 0) scale(0.75);
  183. transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s;
  184. transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; }
  185. md-input-container.md-icon-right input {
  186. margin-right: 36px; }
  187. md-input-container.md-icon-right input + md-icon {
  188. top: 26px;
  189. right: 2px;
  190. margin-right: 0; }
  191. @media screen and (-ms-high-contrast: active) {
  192. md-input-container.md-default-theme > md-icon {
  193. fill: #fff; } }