You are here

form--password-confirm.pcss.css in Drupal 10

Visual styles for the Password widgets.

File

core/themes/claro/css/components/form--password-confirm.pcss.css
View source
  1. /**
  2. * @file
  3. * Visual styles for the Password widgets.
  4. */
  5. :root {
  6. /* Weak */
  7. --password-strength-bar--weak-bg-color: var(--color-maximumred);
  8. --password-strength-bar--weak-border-color: var(--color-maximumred);
  9. /* Fair */
  10. --password-strength-bar--fair-bg-color: var(--color-sunglow);
  11. --password-strength-bar--fair-border-color: #977405;
  12. /* Good */
  13. --password-strength-bar--good-bg-color: var(--color-lightninggreen);
  14. --password-strength-bar--good-border-color: var(--color-lightninggreen);
  15. /* Strong */
  16. --password-strength-bar--strong-bg-color: var(--color-lightninggreen);
  17. --password-strength-bar--strong-border-color: var(--color-lightninggreen);
  18. }
  19. /**
  20. * Password confirm widget styles.
  21. */
  22. .password-confirm {
  23. max-width: 25rem;
  24. }
  25. .password-confirm__password {
  26. margin-bottom: 0;
  27. }
  28. .password-confirm__confirm {
  29. margin-bottom: 0;
  30. }
  31. .js .password-confirm__confirm {
  32. max-height: 10rem;
  33. transition: max-height var(--speed-transition) ease-in-out, margin var(--speed-transition) ease-in-out;
  34. }
  35. @media screen and (prefers-reduced-motion: reduce) {
  36. .js .password-confirm__confirm {
  37. transition: none;
  38. }
  39. }
  40. /* Password confirm widget states. */
  41. .js .is-initial:not(.form-item--error) .form-item__description {
  42. margin-top: 0;
  43. }
  44. .js .is-initial.is-password-empty.is-confirm-empty:not(.form-item--error) .password-confirm__confirm {
  45. display: none;
  46. max-height: 0;
  47. margin-top: 0;
  48. }
  49. /**
  50. * Password strength
  51. *
  52. * Description and strength indicator for the main input.
  53. */
  54. .password-strength {
  55. margin-top: var(--progress-bar-spacing-size);
  56. margin-bottom: var(--progress-bar-spacing-size);
  57. }
  58. .password-strength__track {
  59. height: var(--progress-bar-small-size);
  60. margin-top: var(--progress-bar-spacing-size);
  61. margin-bottom: var(--progress-bar-spacing-size);
  62. border: var(--progress-bar-border-size) solid var(--progress-track-border-color);
  63. border-radius: var(--progress-bar-small-size-radius);
  64. background-color: var(--progress-track-bg-color);
  65. }
  66. .password-strength__track::after {
  67. display: table;
  68. clear: both;
  69. content: "";
  70. }
  71. .password-strength__bar {
  72. min-width: var(--progress-bar-small-size);
  73. height: var(--progress-bar-small-size);
  74. margin: calc(var(--progress-bar-border-size) * -1);
  75. transition: var(--progress-bar-transition);
  76. border: var(--progress-bar-border-size) solid transparent;
  77. border-radius: var(--progress-bar-small-size-radius);
  78. background-color: transparent;
  79. }
  80. @media screen and (prefers-reduced-motion: reduce) {
  81. .password-strength__bar {
  82. transition: none;
  83. }
  84. }
  85. @media screen and (-ms-high-contrast: active) {
  86. .password-strength__bar {
  87. background-color: windowText;
  88. }
  89. .is-initial .password-strength__bar {
  90. border-color: transparent;
  91. background-color: transparent;
  92. }
  93. }
  94. .password-strength__title {
  95. overflow: hidden;
  96. margin-top: var(--progress-bar-spacing-size);
  97. margin-bottom: var(--progress-bar-spacing-size);
  98. color: var(--progress-bar-description-color);
  99. font-size: var(--progress-bar-description-font-size);
  100. line-height: var(--space-m);
  101. }
  102. .password-strength__text {
  103. color: var(--progress-bar-label-color);
  104. font-weight: bold;
  105. }
  106. /* Password strength states */
  107. .password-strength__bar.is-weak {
  108. border-color: var(--password-strength-bar--weak-border-color);
  109. background-color: var(--password-strength-bar--weak-bg-color);
  110. }
  111. .password-strength__bar.is-fair {
  112. border-color: var(--password-strength-bar--fair-border-color);
  113. background-color: var(--password-strength-bar--fair-bg-color);
  114. }
  115. .password-strength__bar.is-good {
  116. border-color: var(--password-strength-bar--good-border-color);
  117. background-color: var(--password-strength-bar--good-bg-color);
  118. }
  119. .password-strength__bar.is-strong {
  120. border-color: var(--password-strength-bar--strong-border-color);
  121. background-color: var(--password-strength-bar--strong-bg-color);
  122. }
  123. @media (forced-colors: active) {
  124. .password-strength__bar {
  125. &.is-weak,
  126. &.is-fair,
  127. &.is-good,
  128. &.is-strong {
  129. background-color: canvastext;
  130. }
  131. }
  132. .is-initial .password-strength__bar {
  133. border-color: transparent;
  134. background-color: transparent;
  135. }
  136. }
  137. .is-initial.is-password-empty .password-strength__title {
  138. margin: 0;
  139. line-height: 0;
  140. }
  141. /**
  142. * Password match message.
  143. *
  144. * This is the description-like message on the bottom of the password confirm
  145. * input.
  146. */
  147. .password-match-message {
  148. margin-top: var(--progress-bar-spacing-size);
  149. margin-bottom: var(--progress-bar-spacing-size);
  150. color: var(--progress-bar-description-color);
  151. font-size: var(--progress-bar-description-font-size);
  152. }
  153. .password-match-message__text {
  154. color: var(--progress-bar-label-color);
  155. font-weight: bold;
  156. }
  157. .is-confirm-empty .password-match-message {
  158. visibility: hidden;
  159. }
  160. /**
  161. * Password suggestions.
  162. *
  163. * Tips for improving the password.
  164. */
  165. .password-suggestions {
  166. margin-top: var(--progress-bar-spacing-size);
  167. margin-bottom: var(--space-xs);
  168. padding: var(--space-m);
  169. color: var(--progress-bar-description-color);
  170. border: 1px solid var(--color-gray-200);
  171. border-radius: var(--base-border-radius);
  172. background-color: var(--color-white);
  173. box-shadow: var(--details-box-shadow);
  174. font-size: var(--progress-bar-description-font-size);
  175. }
  176. .password-suggestions__tips {
  177. margin: var(--space-xs) 0 0 var(--space-l); /* LTR */
  178. }
  179. [dir="rtl"] .password-suggestions__tips {
  180. margin-right: var(--space-l);
  181. margin-left: 0;
  182. }