@if not-imported("import_once_func") { @import "import_once_func"; } @if not-imported("framework") { @import "framework"; } /** * Since fieldset borders are removed in the reset style sheet, adjust the * legends accordingly */ *:not(.widget) { > fieldset { clear: left; } } legend { width: 100%; display: block; font-weight: bold; border: 0; } input, textarea, select { line-height: 150%; outline: none; font-size: $font-size-field; font-family: $font-family-form; font-weight: 400; } /** * Placeholders */ ::-webkit-input-placeholder { /* Webkit Browsers */ color: $placeholder-color; font-size: $font-size-placeholder; text-transform: uppercase; opacity: 0.9; font-weight: 600; } :-moz-placeholder { /* Firefox < 19 */ color: $placeholder-color; font-size: $font-size-placeholder; text-transform: uppercase; opacity: 0.9; font-weight: 600; } ::-moz-placeholder { /* Firefox >= 19 */ color: $placeholder-color; font-size: $font-size-placeholder; text-transform: uppercase; opacity: 0.9; font-weight: 600; } :-ms-input-placeholder { /* IE 10-11 */ color: $placeholder-color !important; font-size: $font-size-placeholder !important; text-transform: uppercase !important; opacity: 0.9; font-weight: 600; } ::-ms-input-placeholder { /* Edge (old) */ color: $placeholder-color; font-size: $font-size-placeholder; text-transform: uppercase; opacity: 0.9; font-weight: 600; } ::placeholder { /* CSS 4 Draft */ color: $placeholder-color; font-size: $font-size-placeholder; text-transform: uppercase; opacity: 0.9; font-weight: 600; } /* Chrome, Safari, Edge, Opera */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } /* Firefox */ input[type=number] { -moz-appearance: textfield; } /** * Widget */ .widget { margin-bottom: 15px; min-height: font-size($field-height+(1.75*10px)); input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input:not([type]), textarea, select { vertical-align: top; } > .formelement { position: relative; } &.icon { > .formelement { > input, > textarea { padding-right: 1.75em; } > .ico-wrapper { font-size: font-size(20px); cursor: default; position: absolute; top: 0; right: 0; height: 100%; width: 1.75em; border-radius: 0 .28571429rem .28571429rem 0; > a { display: flex; align-items: center; justify-content: center; line-height: inherit; color: $color-text; &:hover { color: $color-link; } } &.link { cursor: pointer; } } } } } /** * Text fields and textareas */ input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input:not([type]), textarea, select { display: inline-block; width: 100%; height: $field-height; line-height: #{$field-height - (2*$field-border-width) - (2*$field-padding-vertical)}; padding: $field-padding; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; color: $field-color; background: $field-background-color; border: $field-border-width solid $field-border-color; -webkit-border-radius: $field-radius; -moz-border-radius: $field-radius; border-radius: $field-radius; -webkit-transition: all .15s linear; -moz-transition: all .15s linear; -ms-transition: all .15s linear; -o-transition: all .15s linear; transition: all .15s linear; &:focus { outline: 0; background: $field-background-color-hl; border-color: $field-border-color-hl; } } textarea { line-height: 1.35; } /** * Label styling */ .formbody { @include cf; label { color: $label-color; display: block; margin-bottom: 0.25em; padding-top: 0.5em; text-transform: uppercase; font-size: font-size(10px); letter-spacing: 0.1em; line-height: 1.5; font-weight: 600; .mandatory { vertical-align: middle; font-size: font-size(18px); font-weight: 300; color: $color-link; line-height: 0; } } .widget { &.lblp { padding-top: font-size(10px*2.25); } } } /** * Fieldset styling */ .formbody > fieldset { margin-top: 1.5em; &:first-of-type { margin-top: 0; } legend { @include headline(font-size(18px)); } } /** * Fix some width and height settings */ input[type="file"] { cursor: pointer; } select, input[type="file"] { display: block; } input[type="file"], input[type="image"], input[type="submit"], input[type="reset"], input[type="button"], input[type="radio"], input[type="checkbox"] { width: auto; } textarea, select[multiple], select[size] { height: auto; } select { -moz-appearance: none; -webkit-appearance: none; appearance: none; border: none; } select::-ms-expand { display: none; } select { display: inline-block; width: 100%; height: $field-height; padding: $field-padding-vertical $field-padding-horizontal+25px $field-padding-vertical $field-padding-horizontal; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; color: $field-color; background: $field-background-color; border: $field-border-width solid $field-border-color; -webkit-border-radius: $field-radius; -moz-border-radius: $field-radius; border-radius: $field-radius; -webkit-transition: all .15s linear; -moz-transition: all .15s linear; -ms-transition: all .15s linear; -o-transition: all .15s linear; transition: all .15s linear; } .select-wrapper { position: relative; display: inline-block; width: 100%; min-height: $field-height; &:before, &:after { //@include icon('\e90a',font-size(20px)); content: ''; width: 1em; height: 1em; background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" fill="%23323535" width="1em" height="1em" viewBox="0 0 32 32"%3E%3Cpath d="M14.898 19.849c0.585 0.579 1.592 0.604 2.202 0.001l12.084-12.084 2.815 2.815-12.093 12.093c-2.055 2.027-5.656 2.13-7.815-0.001l-12.092-12.092 2.815-2.815c4.027 4.029 8.054 8.056 12.083 12.083z"/%3E%3C/svg%3E') 50% 50% no-repeat; position: absolute; right: 10px; top: 10px; pointer-events: none; } &:after { @include transition(all 0.25s); opacity: 0; visibility: hidden; background: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" fill="%23C48F3A" width="1em" height="1em" viewBox="0 0 32 32"%3E%3Cpath d="M14.898 19.849c0.585 0.579 1.592 0.604 2.202 0.001l12.084-12.084 2.815 2.815-12.093 12.093c-2.055 2.027-5.656 2.13-7.815-0.001l-12.092-12.092 2.815-2.815c4.027 4.029 8.054 8.056 12.083 12.083z"/%3E%3C/svg%3E') 50% 50% no-repeat; } &:hover { &:after { opacity: 1; visibility: visible; } } /*select { vertical-align: top; }*/ } /** * Checkboxes and radio buttons */ .widget { &.widget-checkbox, &.widget-radio { > fieldset { padding-left: 1.5em; } .options { > span { margin-bottom: 0.25em; display: block; font-size: font-size(12px); } } input[type="radio"], input[type="checkbox"] { height: 2em; width: 2em; margin-left: -2.25em; margin-right: 5px; } label { display: inline; margin-bottom: 0; font-size: font-size(12px); font-weight: 600; } /*@supports(-webkit-appearance: none) or (-moz-appearance: none) { input[type='checkbox'], input[type='radio'] { --active: #275EFE; --active-inner: #fff; --focus: 2px rgba(39, 94, 254, .3); --border: #BBC1E1; --border-hover: #275EFE; --background: #fff; --disabled: #F6F8FF; --disabled-inner: #E1E6F9; -webkit-appearance: none; -moz-appearance: none; height: 21px; outline: none; display: inline-block; vertical-align: top; position: relative; margin: 0; cursor: pointer; border: 1px solid var(--bc, var(--border)); background: var(--b, var(--background)); transition: background .3s, border-color .3s, box-shadow .2s; &:after { content: ''; display: block; left: 0; top: 0; position: absolute; transition: transform var(--d-t, .3s) var(--d-t-e, ease), opacity var(--d-o, .2s); } &:checked { --b: var(--active); --bc: var(--active); --d-o: .3s; --d-t: .6s; --d-t-e: cubic-bezier(.2, .85, .32, 1.2); } &:disabled { --b: var(--disabled); cursor: not-allowed; opacity: .9; &:checked { --b: var(--disabled-inner); --bc: var(--border); } & + label { cursor: not-allowed; } } &:hover { &:not(:checked) { &:not(:disabled) { --bc: var(--border-hover); } } } &:focus { box-shadow: 0 0 0 var(--focus); } &:not(.switch) { width: 21px; &:after { opacity: var(--o, 0); } &:checked { --o: 1; } } & + label { font-size: 14px; line-height: 21px; display: inline-block; vertical-align: top; cursor: pointer; margin-left: 4px; } } input[type='checkbox'] { &:not(.switch) { border-radius: 7px; &:after { width: 5px; height: 9px; border: 2px solid var(--active-inner); border-top: 0; border-left: 0; left: 7px; top: 4px; transform: rotate(var(--r, 20deg)); } &:checked { --r: 43deg; } } &.switch { width: 38px; border-radius: 11px; &:after { left: 2px; top: 2px; border-radius: 50%; width: 15px; height: 15px; background: var(--ab, var(--border)); transform: translateX(var(--x, 0)); } &:checked { --ab: var(--active-inner); --x: 17px; } &:disabled { &:not(:checked) { &:after { opacity: .6; } } } } } input[type='radio'] { border-radius: 50%; &:after { width: 19px; height: 19px; border-radius: 50%; background: var(--active-inner); opacity: 0; transform: scale(var(--s, .7)); } &:checked { --s: .5; } } }*/ } } input[type="radio"], input[type="checkbox"] { margin: 0 3px 0 0; } input[type="radio"], input[type="checkbox"], label { vertical-align: middle; } /** * Handle disabled and read-only */ input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { cursor: not-allowed; background: $field-background-color-ro; } input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] { background: transparent; } /** * Buttons */ input[type="submit"], //input[type="button"], button[type="submit"], .submit, .button { @include button-outline(); &:not([data-icon]) { @include button-no-icon; } &.button-icon-only { @include button-icon-only; } .-alt-color > & { @include button-outline($color: $color-stroke-grey, $border-color: $color-stroke-grey); @include button-no-icon; } &.-big { padding: $button-padding-vertical*2 $button-padding-horizontal*2; height: $button-height*2; line-height: #{$button-height*2 - (2*$button-border-width) - (2*($button-padding-vertical*2))}; } } .button-block { display: block; width: 100%; }