aboutsummaryrefslogtreecommitdiffstats
path: root/core/css/inputs.css
diff options
context:
space:
mode:
Diffstat (limited to 'core/css/inputs.css')
-rw-r--r--core/css/inputs.css1039
1 files changed, 1039 insertions, 0 deletions
diff --git a/core/css/inputs.css b/core/css/inputs.css
new file mode 100644
index 00000000000..4eda99a53fd
--- /dev/null
+++ b/core/css/inputs.css
@@ -0,0 +1,1039 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
+ * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
+ * @copyright Copyright (c) 2015, Joas Schilling <nickvergessen@owncloud.com>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2014-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+/* Specifically override browser styles */
+input, textarea, select, button, div[contenteditable=true], div[contenteditable=false] {
+ font-family: var(--font-face);
+}
+
+.select2-container-multi .select2-choices .select2-search-field input, .select2-search input, .ui-widget {
+ font-family: var(--font-face) !important;
+}
+
+/* Simple selector to allow easy overriding */
+select,
+button:not(.button-vue),
+input,
+textarea,
+div[contenteditable=true],
+div[contenteditable=false] {
+ width: 130px;
+ min-height: 34px;
+ box-sizing: border-box;
+}
+
+/**
+ * color-text-lighter normal state
+ * color-text-lighter active state
+ * color-text-maxcontrast disabled state
+ */
+/* Default global values */
+div.select2-drop .select2-search input,
+select,
+button:not(.button-vue), .button,
+input:not([type=range]),
+textarea,
+div[contenteditable=true],
+.pager li a {
+ margin: 3px 3px 3px 0;
+ padding: 7px 6px;
+ font-size: 13px;
+ background-color: var(--color-main-background);
+ color: var(--color-main-text);
+ border: 1px solid var(--color-border-dark);
+ outline: none;
+ border-radius: var(--border-radius);
+ cursor: text;
+ /* Primary action button, use sparingly */
+}
+div.select2-drop .select2-search input:not(:disabled):not(.primary):hover, div.select2-drop .select2-search input:not(:disabled):not(.primary):focus, div.select2-drop .select2-search input:not(:disabled):not(.primary).active,
+select:not(:disabled):not(.primary):hover,
+select:not(:disabled):not(.primary):focus,
+select:not(:disabled):not(.primary).active,
+button:not(.button-vue):not(:disabled):not(.primary):hover,
+button:not(.button-vue):not(:disabled):not(.primary):focus,
+button:not(.button-vue):not(:disabled):not(.primary).active, .button:not(:disabled):not(.primary):hover, .button:not(:disabled):not(.primary):focus, .button:not(:disabled):not(.primary).active,
+input:not([type=range]):not(:disabled):not(.primary):hover,
+input:not([type=range]):not(:disabled):not(.primary):focus,
+input:not([type=range]):not(:disabled):not(.primary).active,
+textarea:not(:disabled):not(.primary):hover,
+textarea:not(:disabled):not(.primary):focus,
+textarea:not(:disabled):not(.primary).active,
+div[contenteditable=true]:not(:disabled):not(.primary):hover,
+div[contenteditable=true]:not(:disabled):not(.primary):focus,
+div[contenteditable=true]:not(:disabled):not(.primary).active,
+.pager li a:not(:disabled):not(.primary):hover,
+.pager li a:not(:disabled):not(.primary):focus,
+.pager li a:not(:disabled):not(.primary).active {
+ /* active class used for multiselect */
+ border-color: var(--color-primary-element);
+ outline: none;
+}
+div.select2-drop .select2-search input:not(:disabled):not(.primary):active,
+select:not(:disabled):not(.primary):active,
+button:not(.button-vue):not(:disabled):not(.primary):active, .button:not(:disabled):not(.primary):active,
+input:not([type=range]):not(:disabled):not(.primary):active,
+textarea:not(:disabled):not(.primary):active,
+div[contenteditable=true]:not(:disabled):not(.primary):active,
+.pager li a:not(:disabled):not(.primary):active {
+ outline: none;
+ background-color: var(--color-main-background);
+ color: var(--color-text-light);
+}
+div.select2-drop .select2-search input:disabled,
+select:disabled,
+button:not(.button-vue):disabled, .button:disabled,
+input:not([type=range]):disabled,
+textarea:disabled,
+div[contenteditable=true]:disabled,
+.pager li a:disabled {
+ background-color: var(--color-background-dark);
+ color: var(--color-text-maxcontrast);
+ cursor: default;
+ opacity: 0.5;
+}
+div.select2-drop .select2-search input:required,
+select:required,
+button:not(.button-vue):required, .button:required,
+input:not([type=range]):required,
+textarea:required,
+div[contenteditable=true]:required,
+.pager li a:required {
+ box-shadow: none;
+}
+div.select2-drop .select2-search input:invalid,
+select:invalid,
+button:not(.button-vue):invalid, .button:invalid,
+input:not([type=range]):invalid,
+textarea:invalid,
+div[contenteditable=true]:invalid,
+.pager li a:invalid {
+ box-shadow: none !important;
+ border-color: var(--color-error);
+}
+div.select2-drop .select2-search input.primary,
+select.primary,
+button:not(.button-vue).primary, .button.primary,
+input:not([type=range]).primary,
+textarea.primary,
+div[contenteditable=true].primary,
+.pager li a.primary {
+ background-color: var(--color-primary-element);
+ border-color: var(--color-primary-element);
+ color: var(--color-primary-text);
+ cursor: pointer;
+ /* Apply border to primary button if on log in page (and not in a dark container) or if in header */
+}
+#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary, #header div.select2-drop .select2-search input.primary,
+#body-login :not(.body-login-container) select.primary,
+#header select.primary,
+#body-login :not(.body-login-container) button:not(.button-vue).primary,
+#header button:not(.button-vue).primary, #body-login :not(.body-login-container) .button.primary, #header .button.primary,
+#body-login :not(.body-login-container) input:not([type=range]).primary,
+#header input:not([type=range]).primary,
+#body-login :not(.body-login-container) textarea.primary,
+#header textarea.primary,
+#body-login :not(.body-login-container) div[contenteditable=true].primary,
+#header div[contenteditable=true].primary,
+#body-login :not(.body-login-container) .pager li a.primary,
+#header .pager li a.primary {
+ border-color: var(--color-primary-text);
+}
+div.select2-drop .select2-search input.primary:not(:disabled):hover, div.select2-drop .select2-search input.primary:not(:disabled):focus, div.select2-drop .select2-search input.primary:not(:disabled):active,
+select.primary:not(:disabled):hover,
+select.primary:not(:disabled):focus,
+select.primary:not(:disabled):active,
+button:not(.button-vue).primary:not(:disabled):hover,
+button:not(.button-vue).primary:not(:disabled):focus,
+button:not(.button-vue).primary:not(:disabled):active, .button.primary:not(:disabled):hover, .button.primary:not(:disabled):focus, .button.primary:not(:disabled):active,
+input:not([type=range]).primary:not(:disabled):hover,
+input:not([type=range]).primary:not(:disabled):focus,
+input:not([type=range]).primary:not(:disabled):active,
+textarea.primary:not(:disabled):hover,
+textarea.primary:not(:disabled):focus,
+textarea.primary:not(:disabled):active,
+div[contenteditable=true].primary:not(:disabled):hover,
+div[contenteditable=true].primary:not(:disabled):focus,
+div[contenteditable=true].primary:not(:disabled):active,
+.pager li a.primary:not(:disabled):hover,
+.pager li a.primary:not(:disabled):focus,
+.pager li a.primary:not(:disabled):active {
+ background-color: var(--color-primary-element-light);
+ border-color: var(--color-primary-element-light);
+}
+div.select2-drop .select2-search input.primary:not(:disabled):active,
+select.primary:not(:disabled):active,
+button:not(.button-vue).primary:not(:disabled):active, .button.primary:not(:disabled):active,
+input:not([type=range]).primary:not(:disabled):active,
+textarea.primary:not(:disabled):active,
+div[contenteditable=true].primary:not(:disabled):active,
+.pager li a.primary:not(:disabled):active {
+ color: var(--color-primary-text-dark);
+}
+div.select2-drop .select2-search input.primary:disabled,
+select.primary:disabled,
+button:not(.button-vue).primary:disabled, .button.primary:disabled,
+input:not([type=range]).primary:disabled,
+textarea.primary:disabled,
+div[contenteditable=true].primary:disabled,
+.pager li a.primary:disabled {
+ background-color: var(--color-primary-element);
+ color: var(--color-primary-text-dark);
+ cursor: default;
+}
+
+div[contenteditable=false] {
+ margin: 3px 3px 3px 0;
+ padding: 7px 6px;
+ font-size: 13px;
+ background-color: var(--color-main-background);
+ color: var(--color-text-lighter);
+ border: 1px solid var(--color-background-darker);
+ outline: none;
+ border-radius: var(--border-radius);
+ background-color: var(--color-background-dark);
+ color: var(--color-text-lighter);
+ cursor: default;
+ opacity: 0.5;
+}
+
+/* Specific override */
+input {
+ /* Color input doesn't respect the initial height
+ so we need to set a custom one */
+}
+input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]) {
+ -webkit-appearance: textfield;
+ -moz-appearance: textfield;
+ height: 34px;
+}
+input[type=radio], input[type=checkbox], input[type=file], input[type=image] {
+ height: auto;
+ width: auto;
+}
+input[type=color] {
+ margin: 3px;
+ padding: 0 2px;
+ min-height: 30px;
+ width: 40px;
+ cursor: pointer;
+}
+input[type=hidden] {
+ height: 0;
+ width: 0;
+}
+input[type=time] {
+ width: initial;
+}
+
+/* 'Click' inputs */
+select,
+button:not(.button-vue), .button,
+input[type=button],
+input[type=submit],
+input[type=reset] {
+ padding: 6px 16px;
+ width: auto;
+ min-height: 34px;
+ cursor: pointer;
+ box-sizing: border-box;
+ background-color: var(--color-background-dark);
+}
+select:disabled,
+button:not(.button-vue):disabled, .button:disabled,
+input[type=button]:disabled,
+input[type=submit]:disabled,
+input[type=reset]:disabled {
+ cursor: default;
+}
+
+select *,
+button:not(.button-vue) *, .button * {
+ cursor: pointer;
+}
+select:disabled *,
+button:not(.button-vue):disabled *, .button:disabled * {
+ cursor: default;
+}
+
+/* Buttons */
+button:not(.button-vue), .button,
+input[type=button],
+input[type=submit],
+input[type=reset] {
+ font-weight: bold;
+ border-radius: var(--border-radius-pill);
+ /* Get rid of the inside dotted line in Firefox */
+}
+button:not(.button-vue)::-moz-focus-inner, .button::-moz-focus-inner,
+input[type=button]::-moz-focus-inner,
+input[type=submit]::-moz-focus-inner,
+input[type=reset]::-moz-focus-inner {
+ border: 0;
+}
+button:not(.button-vue).error, .button.error,
+input[type=button].error,
+input[type=submit].error,
+input[type=reset].error {
+ background-color: var(--color-error) !important;
+ border-color: var(--color-error) !important;
+ color: #fff !important;
+}
+
+button:not(.button-vue):not(.action-button) > span, .button > span {
+ /* icon position inside buttons */
+}
+button:not(.button-vue):not(.action-button) > span[class^=icon-], button:not(.button-vue):not(.action-button) > span[class*=" icon-"], .button > span[class^=icon-], .button > span[class*=" icon-"] {
+ display: inline-block;
+ vertical-align: text-bottom;
+ opacity: 0.5;
+}
+
+textarea, div[contenteditable=true] {
+ color: var(--color-main-text);
+ cursor: text;
+ font-family: inherit;
+ height: auto;
+}
+textarea:not(:disabled):active, textarea:not(:disabled):hover, textarea:not(:disabled):focus, div[contenteditable=true]:not(:disabled):active, div[contenteditable=true]:not(:disabled):hover, div[contenteditable=true]:not(:disabled):focus {
+ border-color: var(--color-background-darker) !important;
+ background-color: var(--color-main-background) !important;
+}
+
+div[contenteditable=false] {
+ color: var(--color-text-lighter);
+ font-family: inherit;
+ height: auto;
+}
+
+/* Override the ugly select arrow */
+select {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ background: var(--icon-triangle-s-dark) no-repeat right 4px center;
+ background-color: inherit;
+ outline: 0;
+ padding-right: 24px !important;
+ height: 34px;
+}
+
+/* Confirm inputs */
+input[type=text], input[type=password], input[type=email] {
+ /* only show confirm borders if input is not focused */
+}
+input[type=text] + .icon-confirm, input[type=password] + .icon-confirm, input[type=email] + .icon-confirm {
+ margin-left: -8px !important;
+ border-left-color: transparent !important;
+ border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
+ background-clip: padding-box;
+ /* Avoid background under border */
+ background-color: var(--color-main-background) !important;
+ opacity: 1;
+ height: 34px;
+ width: 34px;
+ padding: 7px 6px;
+ cursor: pointer;
+ margin-right: 0;
+}
+input[type=text] + .icon-confirm:disabled, input[type=password] + .icon-confirm:disabled, input[type=email] + .icon-confirm:disabled {
+ cursor: default;
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-confirm-fade-dark);
+}
+input[type=text]:not(:active):not(:hover):not(:focus):invalid + .icon-confirm, input[type=password]:not(:active):not(:hover):not(:focus):invalid + .icon-confirm, input[type=email]:not(:active):not(:hover):not(:focus):invalid + .icon-confirm {
+ border-color: var(--color-error);
+}
+input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:active, input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover, input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:active, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:active, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus {
+ border-color: var(--color-primary-element) !important;
+ border-radius: var(--border-radius) !important;
+}
+input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:active:disabled, input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover:disabled, input[type=text]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus:disabled, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:active:disabled, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover:disabled, input[type=password]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus:disabled, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:active:disabled, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:hover:disabled, input[type=email]:not(:active):not(:hover):not(:focus) + .icon-confirm:focus:disabled {
+ border-color: var(--color-background-darker) !important;
+}
+input[type=text]:active + .icon-confirm, input[type=text]:hover + .icon-confirm, input[type=text]:focus + .icon-confirm, input[type=password]:active + .icon-confirm, input[type=password]:hover + .icon-confirm, input[type=password]:focus + .icon-confirm, input[type=email]:active + .icon-confirm, input[type=email]:hover + .icon-confirm, input[type=email]:focus + .icon-confirm {
+ border-color: var(--color-primary-element) !important;
+ border-left-color: transparent !important;
+ /* above previous input */
+ z-index: 2;
+}
+
+/* Various Fixes */
+button img,
+.button img {
+ cursor: pointer;
+}
+
+select,
+.button.multiselect {
+ font-weight: normal;
+}
+
+/* Radio & Checkboxes */
+input[type=checkbox], input[type=radio] {
+ /* We do not use the variables as we keep the colours as white for this variant */
+}
+input[type=checkbox].radio, input[type=checkbox].checkbox, input[type=radio].radio, input[type=radio].checkbox {
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+input[type=checkbox].radio + label, input[type=checkbox].checkbox + label, input[type=radio].radio + label, input[type=radio].checkbox + label {
+ user-select: none;
+}
+input[type=checkbox].radio:disabled + label, input[type=checkbox].radio:disabled + label:before, input[type=checkbox].checkbox:disabled + label, input[type=checkbox].checkbox:disabled + label:before, input[type=radio].radio:disabled + label, input[type=radio].radio:disabled + label:before, input[type=radio].checkbox:disabled + label, input[type=radio].checkbox:disabled + label:before {
+ cursor: default;
+}
+input[type=checkbox].radio + label:before, input[type=checkbox].checkbox + label:before, input[type=radio].radio + label:before, input[type=radio].checkbox + label:before {
+ content: "";
+ display: inline-block;
+ height: 14px;
+ width: 14px;
+ vertical-align: middle;
+ border-radius: 50%;
+ margin: 0 6px 3px 3px;
+ border: 1px solid var(--color-text-lighter);
+}
+input[type=checkbox].radio:not(:disabled):not(:checked) + label:hover:before, input[type=checkbox].radio:focus + label:before, input[type=checkbox].checkbox:not(:disabled):not(:checked) + label:hover:before, input[type=checkbox].checkbox:focus + label:before, input[type=radio].radio:not(:disabled):not(:checked) + label:hover:before, input[type=radio].radio:focus + label:before, input[type=radio].checkbox:not(:disabled):not(:checked) + label:hover:before, input[type=radio].checkbox:focus + label:before {
+ border-color: var(--color-primary-element);
+}
+input[type=checkbox].radio:focus-visible + label, input[type=checkbox].checkbox:focus-visible + label, input[type=radio].radio:focus-visible + label, input[type=radio].checkbox:focus-visible + label {
+ outline-style: solid;
+ outline-color: var(--color-main-text);
+ outline-width: 1px;
+ outline-offset: 2px;
+}
+input[type=checkbox].radio:checked + label:before, input[type=checkbox].radio.checkbox:indeterminate + label:before, input[type=checkbox].checkbox:checked + label:before, input[type=checkbox].checkbox.checkbox:indeterminate + label:before, input[type=radio].radio:checked + label:before, input[type=radio].radio.checkbox:indeterminate + label:before, input[type=radio].checkbox:checked + label:before, input[type=radio].checkbox.checkbox:indeterminate + label:before {
+ /* ^ :indeterminate have a strange behavior on radio,
+ so we respecified the checkbox class again to be safe */
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ background-color: var(--color-primary-element);
+ border-color: var(--color-primary-element);
+}
+input[type=checkbox].radio:disabled + label:before, input[type=checkbox].checkbox:disabled + label:before, input[type=radio].radio:disabled + label:before, input[type=radio].checkbox:disabled + label:before {
+ border: 1px solid var(--color-text-lighter);
+ background-color: var(--color-text-maxcontrast) !important;
+ /* override other status */
+}
+input[type=checkbox].radio:checked:disabled + label:before, input[type=checkbox].checkbox:checked:disabled + label:before, input[type=radio].radio:checked:disabled + label:before, input[type=radio].checkbox:checked:disabled + label:before {
+ background-color: var(--color-text-maxcontrast);
+}
+input[type=checkbox].radio + label ~ em, input[type=checkbox].checkbox + label ~ em, input[type=radio].radio + label ~ em, input[type=radio].checkbox + label ~ em {
+ display: inline-block;
+ margin-left: 25px;
+}
+input[type=checkbox].radio + label ~ em:last-of-type, input[type=checkbox].checkbox + label ~ em:last-of-type, input[type=radio].radio + label ~ em:last-of-type, input[type=radio].checkbox + label ~ em:last-of-type {
+ margin-bottom: 14px;
+}
+input[type=checkbox].checkbox + label:before, input[type=radio].checkbox + label:before {
+ border-radius: 1px;
+ height: 14px;
+ width: 14px;
+ box-shadow: none !important;
+ background-position: center;
+}
+input[type=checkbox].checkbox:checked + label:before, input[type=radio].checkbox:checked + label:before {
+ background-image: url("../img/actions/checkbox-mark.svg");
+}
+input[type=checkbox].checkbox:indeterminate + label:before, input[type=radio].checkbox:indeterminate + label:before {
+ background-image: url("../img/actions/checkbox-mixed.svg");
+}
+input[type=checkbox].radio--white + label:before, input[type=checkbox].radio--white:focus + label:before, input[type=checkbox].checkbox--white + label:before, input[type=checkbox].checkbox--white:focus + label:before, input[type=radio].radio--white + label:before, input[type=radio].radio--white:focus + label:before, input[type=radio].checkbox--white + label:before, input[type=radio].checkbox--white:focus + label:before {
+ border-color: #bababa;
+}
+input[type=checkbox].radio--white:not(:disabled):not(:checked) + label:hover:before, input[type=checkbox].checkbox--white:not(:disabled):not(:checked) + label:hover:before, input[type=radio].radio--white:not(:disabled):not(:checked) + label:hover:before, input[type=radio].checkbox--white:not(:disabled):not(:checked) + label:hover:before {
+ border-color: #fff;
+}
+input[type=checkbox].radio--white:checked + label:before, input[type=checkbox].checkbox--white:checked + label:before, input[type=radio].radio--white:checked + label:before, input[type=radio].checkbox--white:checked + label:before {
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ background-color: #dbdbdb;
+ border-color: #dbdbdb;
+}
+input[type=checkbox].radio--white:disabled + label:before, input[type=checkbox].checkbox--white:disabled + label:before, input[type=radio].radio--white:disabled + label:before, input[type=radio].checkbox--white:disabled + label:before {
+ background-color: #bababa !important;
+ /* override other status */
+ border-color: rgba(255, 255, 255, 0.4) !important;
+ /* override other status */
+}
+input[type=checkbox].radio--white:checked:disabled + label:before, input[type=checkbox].checkbox--white:checked:disabled + label:before, input[type=radio].radio--white:checked:disabled + label:before, input[type=radio].checkbox--white:checked:disabled + label:before {
+ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
+ border-color: rgba(255, 255, 255, 0.4) !important;
+ /* override other status */
+ background-color: #bababa;
+}
+input[type=checkbox].checkbox--white:checked + label:before, input[type=checkbox].checkbox--white:indeterminate + label:before, input[type=radio].checkbox--white:checked + label:before, input[type=radio].checkbox--white:indeterminate + label:before {
+ background-color: transparent !important;
+ /* Override default checked */
+ border-color: #fff !important;
+ /* Override default checked */
+ background-image: url("../img/actions/checkbox-mark-white.svg");
+}
+input[type=checkbox].checkbox--white:indeterminate + label:before, input[type=radio].checkbox--white:indeterminate + label:before {
+ background-image: url("../img/actions/checkbox-mixed-white.svg");
+}
+input[type=checkbox].checkbox--white:disabled + label:before, input[type=radio].checkbox--white:disabled + label:before {
+ opacity: 0.7;
+ /* No other choice for white background image */
+}
+
+/* Select2 overriding. Merged to core with vendor stylesheet */
+div.select2-drop {
+ margin-top: -2px;
+ background-color: var(--color-main-background);
+}
+div.select2-drop.select2-drop-active {
+ border-color: var(--color-border-dark);
+}
+div.select2-drop .avatar {
+ display: inline-block;
+ margin-right: 8px;
+ vertical-align: middle;
+}
+div.select2-drop .avatar img {
+ cursor: pointer;
+}
+div.select2-drop .select2-search input {
+ min-height: auto;
+ background: var(--icon-search-dark) no-repeat right center !important;
+ background-origin: content-box !important;
+}
+div.select2-drop .select2-results {
+ max-height: 250px;
+ margin: 0;
+ padding: 0;
+}
+div.select2-drop .select2-results .select2-result-label {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+div.select2-drop .select2-results .select2-result-label span {
+ cursor: pointer;
+}
+div.select2-drop .select2-results .select2-result-label span em {
+ cursor: inherit;
+ background: unset;
+}
+div.select2-drop .select2-results .select2-result,
+div.select2-drop .select2-results .select2-no-results,
+div.select2-drop .select2-results .select2-searching {
+ position: relative;
+ display: list-item;
+ padding: 12px;
+ background-color: transparent;
+ cursor: pointer;
+ color: var(--color-text-lighter);
+}
+div.select2-drop .select2-results .select2-result.select2-selected {
+ background-color: var(--color-background-dark);
+}
+div.select2-drop .select2-results .select2-highlighted {
+ background-color: var(--color-background-dark);
+ color: var(--color-main-text);
+}
+
+.select2-chosen .avatar,
+.select2-chosen .avatar img,
+#select2-drop .avatar,
+#select2-drop .avatar img {
+ cursor: pointer;
+}
+
+div.select2-container-multi .select2-choices, div.select2-container-multi.select2-container-active .select2-choices {
+ box-shadow: none;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ background: var(--color-main-background);
+ color: var(--color-text-lighter) !important;
+ box-sizing: content-box;
+ border-radius: var(--border-radius);
+ border: 1px solid var(--color-border-dark);
+ margin: 0;
+ padding: 2px 0;
+ min-height: auto;
+}
+div.select2-container-multi .select2-choices .select2-search-choice, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice {
+ line-height: 20px;
+ padding-left: 5px;
+}
+div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus, div.select2-container-multi .select2-choices .select2-search-choice:hover, div.select2-container-multi .select2-choices .select2-search-choice:active, div.select2-container-multi .select2-choices .select2-search-choice, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice {
+ background-image: none;
+ background-color: var(--color-main-background);
+ color: var(--color-text-lighter);
+ border: 1px solid var(--color-border-dark);
+}
+div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close, div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close {
+ display: none;
+}
+div.select2-container-multi .select2-choices .select2-search-field input, div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input {
+ line-height: 20px;
+}
+div.select2-container-multi .select2-choices .select2-search-field input.select2-active, div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active {
+ background: none !important;
+}
+
+div.select2-container {
+ margin: 3px 3px 3px 0;
+}
+div.select2-container.select2-container-multi .select2-choices {
+ display: flex;
+ flex-wrap: wrap;
+}
+div.select2-container.select2-container-multi .select2-choices li {
+ float: none;
+}
+div.select2-container a.select2-choice {
+ box-shadow: none;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ background: var(--color-main-background);
+ color: var(--color-text-lighter) !important;
+ box-sizing: content-box;
+ border-radius: var(--border-radius);
+ border: 1px solid var(--color-border-dark);
+ margin: 0;
+ padding: 2px 0;
+ padding-left: 6px;
+ min-height: auto;
+}
+div.select2-container a.select2-choice .select2-search-choice {
+ line-height: 20px;
+ padding-left: 5px;
+ background-image: none;
+ background-color: var(--color-background-dark);
+ border-color: var(--color-background-dark);
+}
+div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close {
+ display: none;
+}
+div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus, div.select2-container a.select2-choice .select2-search-choice:hover {
+ background-color: var(--color-border);
+ border-color: var(--color-border);
+}
+div.select2-container a.select2-choice .select2-arrow {
+ background: none;
+ border-radius: 0;
+ border: none;
+}
+div.select2-container a.select2-choice .select2-arrow b {
+ background: var(--icon-triangle-s-dark) no-repeat center !important;
+ opacity: 0.5;
+}
+div.select2-container a.select2-choice:hover .select2-arrow b, div.select2-container a.select2-choice:focus .select2-arrow b, div.select2-container a.select2-choice:active .select2-arrow b {
+ opacity: 0.7;
+}
+div.select2-container a.select2-choice .select2-search-field input {
+ line-height: 20px;
+}
+
+/* Vue v-select */
+.v-select {
+ margin: 3px 3px 3px 0;
+ display: inline-block;
+}
+.v-select .dropdown-toggle {
+ display: flex !important;
+ flex-wrap: wrap;
+}
+.v-select .dropdown-toggle .selected-tag {
+ line-height: 20px;
+ padding-left: 5px;
+ background-image: none;
+ background-color: var(--color-main-background);
+ color: var(--color-text-lighter);
+ border: 1px solid var(--color-border-dark);
+ display: inline-flex;
+ align-items: center;
+}
+.v-select .dropdown-toggle .selected-tag .close {
+ margin-left: 3px;
+}
+.v-select .dropdown-menu {
+ padding: 0;
+}
+.v-select .dropdown-menu li {
+ padding: 5px;
+ position: relative;
+ display: list-item;
+ background-color: transparent;
+ cursor: pointer;
+ color: var(--color-text-lighter);
+}
+.v-select .dropdown-menu li a {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 25px;
+ padding: 3px 7px 4px 2px;
+ margin: 0;
+ cursor: pointer;
+ min-height: 1em;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display: inline-flex;
+ align-items: center;
+ background-color: transparent !important;
+ color: inherit !important;
+}
+.v-select .dropdown-menu li a::before {
+ content: " ";
+ background-image: var(--icon-checkmark-dark);
+ background-repeat: no-repeat;
+ background-position: center;
+ min-width: 16px;
+ min-height: 16px;
+ display: block;
+ opacity: 0.5;
+ margin-right: 5px;
+ visibility: hidden;
+}
+.v-select .dropdown-menu li.highlight {
+ color: var(--color-main-text);
+}
+.v-select .dropdown-menu li.active > a {
+ background-color: var(--color-background-dark);
+ color: var(--color-main-text);
+}
+.v-select .dropdown-menu li.active > a::before {
+ visibility: visible;
+}
+
+/* Vue multiselect */
+.multiselect.multiselect-vue {
+ margin: 1px 2px;
+ padding: 0 !important;
+ display: inline-block;
+ width: 160px;
+ position: relative;
+ background-color: var(--color-main-background);
+ /* results wrapper */
+}
+.multiselect.multiselect-vue.multiselect--active {
+ /* Opened: force display the input */
+}
+.multiselect.multiselect-vue.multiselect--active input.multiselect__input {
+ opacity: 1 !important;
+ cursor: text !important;
+}
+.multiselect.multiselect-vue.multiselect--disabled, .multiselect.multiselect-vue.multiselect--disabled .multiselect__single {
+ background-color: var(--color-background-dark) !important;
+}
+.multiselect.multiselect-vue .multiselect__tags {
+ /* space between tags and limit tag */
+ display: flex;
+ flex-wrap: nowrap;
+ overflow: hidden;
+ border: 1px solid var(--color-border-dark);
+ cursor: pointer;
+ position: relative;
+ border-radius: var(--border-radius);
+ height: 34px;
+ /* tag wrapper */
+ /* Single select default value */
+ /* displayed text if tag limit reached */
+ /* default multiselect input for search and placeholder */
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap {
+ align-items: center;
+ display: inline-flex;
+ overflow: hidden;
+ max-width: 100%;
+ position: relative;
+ padding: 3px 5px;
+ flex-grow: 1;
+ /* no tags or simple select? Show input directly
+ input is used to display single value */
+ /* selected tag */
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input {
+ opacity: 1 !important;
+ /* hide default empty text, show input instead */
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input + span:not(.multiselect__single) {
+ display: none;
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap .multiselect__tag {
+ flex: 1 0 0;
+ line-height: 20px;
+ padding: 1px 5px;
+ background-image: none;
+ color: var(--color-text-lighter);
+ border: 1px solid var(--color-border-dark);
+ display: inline-flex;
+ align-items: center;
+ border-radius: var(--border-radius);
+ /* require to override the default width
+ and force the tag to shring properly */
+ min-width: 0;
+ max-width: 50%;
+ max-width: fit-content;
+ max-width: -moz-fit-content;
+ /* css hack, detect if more than two tags
+ if so, flex-basis is set to half */
+ /* ellipsis the groups to be sure
+ we display at least two of them */
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child {
+ flex: 0 1 auto;
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap .multiselect__tag:not(:last-child) {
+ margin-right: 5px;
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__tags-wrap .multiselect__tag > span {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__single {
+ padding: 8px 10px;
+ flex: 0 0 100%;
+ z-index: 1;
+ /* above input */
+ background-color: var(--color-main-background);
+ cursor: pointer;
+ line-height: 17px;
+}
+.multiselect.multiselect-vue .multiselect__tags .multiselect__strong,
+.multiselect.multiselect-vue .multiselect__tags .multiselect__limit {
+ flex: 0 0 auto;
+ line-height: 20px;
+ color: var(--color-text-lighter);
+ display: inline-flex;
+ align-items: center;
+ opacity: 0.7;
+ margin-right: 5px;
+ /* above the input */
+ z-index: 5;
+}
+.multiselect.multiselect-vue .multiselect__tags input.multiselect__input {
+ width: 100% !important;
+ position: absolute !important;
+ margin: 0;
+ opacity: 0;
+ /* let's leave it on top of tags but hide it */
+ height: 100%;
+ border: none;
+ /* override hide to force show the placeholder */
+ display: block !important;
+ /* only when not active */
+ cursor: pointer;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper {
+ position: absolute;
+ width: 100%;
+ margin-top: -1px;
+ border: 1px solid var(--color-border-dark);
+ background: var(--color-main-background);
+ z-index: 50;
+ max-height: 175px !important;
+ overflow-y: auto;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper .multiselect__content {
+ width: 100%;
+ padding: 5px 0;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li {
+ padding: 5px;
+ position: relative;
+ display: flex;
+ align-items: center;
+ background-color: transparent;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li,
+.multiselect.multiselect-vue .multiselect__content-wrapper li span {
+ cursor: pointer;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 20px;
+ margin: 0;
+ min-height: 1em;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ display: inline-flex;
+ align-items: center;
+ background-color: transparent !important;
+ color: var(--color-text-lighter);
+ width: 100%;
+ /* selected checkmark icon */
+ /* add the prop tag-placeholder="create" to add the +
+ * icon on top of an unknown-and-ready-to-be-created entry
+ */
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span::before {
+ content: " ";
+ background-image: var(--icon-checkmark-dark);
+ background-repeat: no-repeat;
+ background-position: center;
+ min-width: 16px;
+ min-height: 16px;
+ display: block;
+ opacity: 0.5;
+ margin-right: 5px;
+ visibility: hidden;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span.multiselect__option--disabled {
+ background-color: var(--color-background-dark);
+ opacity: 0.5;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span[data-select=create]::before {
+ background-image: var(--icon-add-dark);
+ visibility: visible;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span.multiselect__option--highlight {
+ color: var(--color-main-text);
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span:not(.multiselect__option--disabled):hover::before {
+ opacity: 0.3;
+}
+.multiselect.multiselect-vue .multiselect__content-wrapper li > span.multiselect__option--selected::before, .multiselect.multiselect-vue .multiselect__content-wrapper li > span:not(.multiselect__option--disabled):hover::before {
+ visibility: visible;
+}
+
+/* Progressbar */
+progress:not(.vue) {
+ display: block;
+ width: 100%;
+ padding: 0;
+ border: 0 none;
+ background-color: var(--color-background-dark);
+ border-radius: var(--border-radius);
+ flex-basis: 100%;
+ height: 5px;
+ overflow: hidden;
+}
+progress:not(.vue).warn::-moz-progress-bar {
+ background: var(--color-error);
+}
+progress:not(.vue).warn::-webkit-progress-value {
+ background: var(--color-error);
+}
+progress:not(.vue)::-webkit-progress-bar {
+ background: transparent;
+}
+progress:not(.vue)::-moz-progress-bar {
+ border-radius: var(--border-radius);
+ background: var(--color-primary);
+ transition: 250ms all ease-in-out;
+}
+progress:not(.vue)::-webkit-progress-value {
+ border-radius: var(--border-radius);
+ background: var(--color-primary);
+ transition: 250ms all ease-in-out;
+}
+
+/* Animation */
+@keyframes shake {
+ 10%, 90% {
+ transform: translate(-1px);
+ }
+ 20%, 80% {
+ transform: translate(2px);
+ }
+ 30%, 50%, 70% {
+ transform: translate(-4px);
+ }
+ 40%, 60% {
+ transform: translate(4px);
+ }
+}
+.shake {
+ animation-name: shake;
+ animation-duration: 0.7s;
+ animation-timing-function: ease-out;
+}
+
+label.infield {
+ position: absolute;
+ left: -10000px;
+ top: -10000px;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+
+::placeholder,
+::-ms-input-placeholder,
+::-webkit-input-placeholder {
+ color: var(--color-text-maxcontrast);
+}
+
+/*# sourceMappingURL=inputs.css.map */