2 input[type="datetime"],
5 input[type="password"],
12 margin: 0; /* safari fix */
16 /* set placeholder color */
18 input[type="datetime"],
21 input[type="password"],
27 color: var(--wcfInputPlaceholder);
31 color: var(--wcfInputPlaceholderActive);
37 background-color: var(--wcfInputDisabledBackground) !important;
38 border-color: var(--wcfInputDisabledBorder) !important;
39 color: var(--wcfInputDisabledText) !important;
43 textarea::placeholder {
44 color: var(--wcfInputPlaceholder);
48 color: var(--wcfInputPlaceholderActive);
54 -webkit-appearance: none;
57 @media (pointer: coarse) {
59 input[type="datetime"],
62 input[type="password"],
81 @include wcfFontDefault;
85 background-color: var(--wcfInputDisabledBackground) !important;
86 border-color: var(--wcfInputDisabledBorder) !important;
87 color: var(--wcfInputDisabledText) !important;
93 -webkit-text-fill-color: var(--wcfInputDisabledText); /* override safari font color change */
94 -webkit-opacity: 1; /* override mobile safari opacity change affecting text color */
98 // The width is determined by the browser based upon the longest <option> contained,
99 // but this can cause the <select> to overflow the parent container. This is acceptable
100 // to some extent, but on mobile it can cause the entire site to have a horizontal
101 // scrollbar instead. Setting a `max-width` will cause the browser to respect the page
102 // boundaries and nicely wrap the displayed value instead.
112 flex-direction: row-reverse;
115 justify-content: center;
117 &:not(:first-child) {
124 input[type="button"],
126 input[type="submit"],
134 .formSubmit.formSubmit.formSubmit + .section {
135 /* Intentional selector to overwrite existing selector. */
163 .inputAddonTextarea {
195 @include screen-sm-up {
214 color: var(--color-error) !important;
220 border-color: var(--color-error) !important;
224 html[data-color-scheme="dark"] .formError {
225 --color-error: #ff4747;
229 --color-success: rgb(46, 139, 87);
232 color: var(--color-success) !important;
238 border-color: var(--color-success) !important;
242 /* grid-based form controls */
254 .customOptionRequired {
255 color: rgba(204, 0, 1, 1) !important;
258 .formFieldRequiredNotice {
259 color: var(--wcfContentDimmedText);
261 @include wcfFontSmall;
264 html[data-color-scheme="dark"] :is(.formFieldRequired, .customOptionRequired) {
265 color: #ff4444 !important;
268 /* password strength estimator */
269 .inputAddonPasswordStrength {
270 align-items: flex-start;
279 input:is(.medium, .long) {
285 .passwordStrengthRating {
288 @include screen-sm-up {
298 .passwordStrengthScore {
299 background-color: rgb(224, 224, 224);
307 background-color: transparent;
314 background-color 0.12s linear,
319 &[data-score="0"]::before {
320 background-color: #dd2c00;
323 &[data-score="1"]::before {
324 background-color: #ff9100;
327 &[data-score="2"]::before {
328 background-color: #cddc39;
331 &[data-score="3"]::before {
332 background-color: #64dd17;
335 &[data-score="4"]::before {
336 background-color: #2e7d32;