vpn.email
Version:
vpn.email client
941 lines (808 loc) • 15.7 kB
text/less
@import (once) "vars";
@import (once) "transform";
@import (once) "utils";
@import (once) "buttons";
.input-control {
display: inline-block;
min-height: 2.125rem;
height: 2.125rem;
position: relative;
vertical-align: middle;
margin: .325rem 0;
line-height: 1;
}
.input-control[data-role=select] {
height: auto;
}
.input-control {
&.text, &.select, &.file, &.password, &.number, &.email, &.tel {
width: 10.875rem;
.button {
position: absolute;
top: 0;
right: 0;
z-index: 2;
margin: 0;
}
& > label, & > .label {
position: absolute;
left: 0;
top: -1rem;
font-size: .875rem;
}
& > input:disabled + .button {
display: none;
}
.prepend-icon {
width: 24px;
height: 24px;
font-size: 24px;
line-height: 1;
position: absolute;
top: 50%;
margin-top: -12px;
left: 4px;
z-index: 2;
color: @grayLight;
}
.prepend-icon ~ input {
padding-left: 30px;
}
}
input, textarea, select {
.no-appearance;
position: relative;
border: 1px @inputRestState solid;
width: 100%;
height: 100%;
padding: .3125rem;
z-index: 0;
&:focus {
outline: none;
}
&:disabled {
background-color: #EBEBE4;
}
}
input, textarea, select {
&:focus, &:hover {
border-color: darken(@inputHoverState, 10%);
}
}
textarea {
position: relative;
min-height: 6.25rem;
font-family: @fontName;
}
&.textarea {
height: auto;
}
&.select {
select {
padding-right: 20px;
}
position: relative;
}
&.rounded {
input, textarea, select {
border-radius: @borderRadius;
}
}
&.big-input {
height: 4.125rem;
input {
font-size: 1.875rem;
padding-left: 1.25rem ;
}
.button {
height: 3.25rem;
top: 50%;
margin-top: -1.625rem;
right: 0.3125rem;
font-size: 1.125rem;
font-weight: bold;
padding-left: 1.875rem;
padding-right: 1.875rem;
}
}
[class*=input-state-] {
position: absolute;
display: none;
top: 50%;
right: 8px;
z-index: 3;
font-size: 1rem;
margin-top: -.5rem;
}
&.required {
input, textarea, select {
border: 1px dashed @cyan ;
}
&.neon {
input, textarea, select {
.block-shadow-info;
}
}
.input-state-required {
display: block;
color: @cyan;
}
}
&.error {
input, textarea, select {
border: 1px solid @red;
}
&.neon {
input, textarea, select {
.block-shadow-error;
}
}
.input-state-error {
display: block;
color: @red;
}
}
&.warning {
input, textarea, select {
border: 1px solid @yellow;
}
&.neon {
input, textarea, select {
.block-shadow-warning;
}
}
.input-state-warning {
display: block;
color: @yellow;
}
}
&.success {
input, textarea, select {
border: 1px solid @green;
}
&.neon {
input, textarea, select {
.block-shadow-success;
}
}
.input-state-success {
display: block;
color: @green;
}
}
&.info {
input, textarea, select {
border: 1px solid @cyan;
}
&.neon {
input, textarea, select {
.block-shadow-info;
}
}
.input-state-success {
display: block;
color: @cyan;
}
}
}
input, select, textarea {
&.error {border: 1px solid @red;}
&.warning {border: 1px solid @yellow;}
&.info {border: 1px solid @cyan;}
&.success {border: 1px solid @green;}
&.required {border: 1px dashed @cyan;}
}
.input-control {
&.file {
input[type=file] {
position: absolute;
opacity: 0;
width: 0.0625rem;
height: 0.0625rem;
}
input[type=file]:disabled ~ input[type=text], input[type=file]:disabled ~ .button {
background-color: #EBEBE4;
}
&:hover {
input[type=text], button {
border-color: darken(@inputHoverState, 10%);
}
}
}
}
.input-control {
.button-group {
position: absolute;
right: 0;
top: 0;
margin: 0;
padding: 0;
z-index: 2;
.clear-float;
.button {
position: relative;
float: left;
margin: 0;
}
}
}
.input-control {
& > .helper-button, & > .button-group > .helper-button {
visibility: hidden;
margin: 0;
border: 0;
height: 1.875rem;
padding: 0 .6rem;
z-index: 100;
font-size: .75rem;
}
& > .button.helper-button {
margin: 2px 2px 0;
}
& > .button-group > .button.helper-button {
margin: 2px 0 ;
&:last-child {
margin-right: 2px ;
}
}
input:focus ~ .helper-button, input:focus ~ .button-group > .helper-button {
visibility: visible;
}
input ~ .helper-button:active, input ~ .button-group > .helper-button:active {
visibility: visible;
}
input:disabled ~ .helper-button, input:disabled ~ .button-group > .helper-button {
display: none ;
}
}
.input-control.modern {
position: relative;
width: 12.25rem;
height: 3rem;
display: inline-block;
margin: .625rem 0;
input {
position: absolute;
top: 1rem;
left: 0;
right: 0;
bottom: .5rem;
border: 0;
border-bottom: 2px #DDDDDD solid;
background-color: transparent;
outline: none;
font-size: 1rem;
padding-bottom: .5rem;
padding-left: 0;
width: 100%;
z-index: 2;
height: 1.75rem;
//.debug;
&:focus {
border-bottom-color: @dark;
}
}
.label, .informer {
position: absolute;
display: block;
//.text-caption;
z-index: 1;
color: @dark;
}
.label {
opacity: 0;
top: 16px;
left: 0;
.transition(.3s, linear);
}
.informer {
opacity: 0;
bottom: .75rem;
color: #C8C8C8;
font-size: .8rem;
.transition(.3s, linear);
}
.placeholder {
font-size: 1rem;
color: #C8C8C8;
position: absolute;
top: 1.2rem;
left: 0;
z-index: 1;
opacity: 1;
.transition(.3s, linear);
}
.helper-button {
top: 8px;
}
&.iconic {
margin-left: 32px;
.icon {
width: 24px;
height: 24px;
font-size: 24px;
line-height: 1;
position: absolute;
left: -28px;
top: 50%;
margin-top: -8px;
display: block;
opacity: .2;
.transition(.3s, linear);
img {
width: 100%;
max-width: 100%;
height: 100%;
max-height: 100%;
}
}
&.full-size {
width: ~"calc(100% - 32px) !important";
}
}
}
.input-control.modern {
input:focus ~ .label {
opacity: 1;
.translateY(-18px);
.transition(.3s, linear);
}
input:focus ~ .placeholder {
opacity: 0;
.translateX(200px);
.transition(.3s, linear);
}
input:focus ~ .informer {
opacity: 1;
color: @dark;
bottom: -.75rem;
.transition(.3s, linear);
}
input:focus ~ .icon {
opacity: 1;
.transition(.3s, linear);
}
}
.input-control.modern {
&.error {
input {
border-bottom-color: @red;
}
.informer, .label {
color: @red;
}
}
&.success {
input {
border-bottom-color: @green;
}
.informer, .label {
color: @green;
}
}
&.warning {
input {
border-bottom-color: @yellow;
}
.informer, .label {
color: @yellow;
}
}
&.info {
input {
border-bottom-color: @cyan;
}
.informer, .label {
color: @cyan;
}
}
input:disabled {
border-bottom-style: dotted;
color: #BCBCBC;
}
}
.input-control {
&.checkbox, &.radio {
line-height: 1.875rem;
min-width: 1rem;
.no-user-select;
input[type="checkbox"], input[type="radio"] {
position: absolute;
opacity: 0;
width: 0.0625rem;
height: 0.0625rem;
}
.caption {
margin: 0 .125rem;
vertical-align: middle;
}
.check {
.square(1.625rem);
background-color: @white;
border: 1px @grayLight solid;
padding: 0;
position: relative;
display: inline-block;
vertical-align: middle;
}
&.text-left {
.check {
margin: 0 0 0 .3125rem;
}
}
&:hover {
.check {
}
}
.check:active {
}
.check:hover {
}
.check:focus {
border-color: @borderColor;
}
.check:before {
position: absolute;
vertical-align: middle;
color: transparent;
font-size: 0;
content: "";
height: .3125rem;
width: .565rem;
background-color: @transparent;
border-left: .1875rem solid;
border-bottom: .1875rem solid;
border-color: transparent;
left: 50%;
top: 50%;
margin-left: -.325rem;
margin-top: -.365rem;
display: block;
.rotate(-45deg);
.transition(.2s, linear);
}
input[type=radio] ~ .check:before {
border-color: transparent;
}
input[type="checkbox"]:checked ~ .check, input[type="radio"]:checked ~ .check {
&:before {
border-color: @gray;
.transition(.2s, linear);
}
}
input[type="checkbox"]:disabled ~ .caption, input[type="radio"]:disabled ~ .caption {
color: @disabledColor;
cursor: default;
}
input[type="checkbox"]:disabled ~ .check, input[type="radio"]:disabled ~ .check {
border-color: @disabledColor;
cursor: default;
}
input[type="checkbox"]:disabled:checked ~ .check {
&:before {border-color: @disabledColor;}
}
input[type="radio"]:disabled:checked ~ .check {
&:before {background-color: @disabledColor;}
}
input[data-show="indeterminate"] ~ .check,
input[data-show="indeterminate"]:checked ~ .check,
input.indeterminate:checked ~ .check,
input[type="checkbox"]:indeterminate ~ .check {
&:before {
display: none;
}
&:after {
position: absolute;
display: block;
content: "";
background-color: @dark;
height: .875rem;
width: .875rem;
left: 50%;
top: 50%;
margin-left: -.4375rem;
margin-top: -.4375rem;
}
}
input[data-show="indeterminate"]:not(:checked) ~ .check {
&:after {
background-color: @transparent;
}
}
input[data-show="indeterminate"]:disabled ~ .check {
&:after {
background-color: @disabledColor;
}
}
}
&.radio {
.check {
border: 1px @grayLight solid;
border-radius: 50%;
&:before {
position: absolute;
display: block;
content: "" ;
background-color: @dark;
height: .5624rem;
width: .5624rem;
left: 50%;
top: 50%;
margin-left: -.375rem;
margin-top: -.375rem;
.rotate(0deg);
border-radius: 50%;
}
}
input[type="radio"]:checked ~ .check:before {
border-color: @transparent;
}
input[type="radio"]:not(:checked) ~ .check:before {
background-color: @transparent;
}
input[type="radio"]:disabled ~ .check:before {
border-color: @transparent;
}
}
&.small-check {
.check {
.square(1rem) ;
&:before {
width: 6px;
height: 3px;
margin-left: -4px;
margin-top: -4px;
border-width: 2px;
}
}
&.radio {
.check:before {
height: .375rem;
width: .375rem;
left: 50%;
top: 50%;
margin-left: -.25rem;
margin-top: -.25rem;
}
}
input[data-show="indeterminate"] ~ .check,
input[data-show="indeterminate"]:checked ~ .check,
input.indeterminate:checked ~ .check,
input[type="checkbox"]:indeterminate ~ .check {
&:after {
height: .375rem;
width: .375rem;
left: 50%;
top: 50%;
margin-left: -.1875rem;
margin-top: -.1875rem;
}
}
}
}
input[type="button"], input[type="reset"], input[type="submit"] {
.button;
vertical-align: middle;
}
.switch, .switch-original {
display: inline-block;
margin: 0 .625rem 0 0;
input {
position: absolute;
opacity: 0;
width: 0.0625rem;
height: 0.0625rem;
}
.check, .caption {
display: inline-block;
vertical-align: middle;
line-height: 18px;
}
.no-user-select;
}
.switch {
.check {
width: 36px;
height: 16px;
background-color: #929292;
border-radius: 8px;
overflow: visible;
position: relative;
}
.check {
&:before {
position: absolute;
display: block;
content: "";
width: 22px;
height: 22px;
z-index: 2;
margin-top: -4px;
margin-left: -3px;
border-radius: 50%;
background-color: @white;
.shadow;
}
}
input:checked ~ .check {
background-color: #008287;
}
input:not(:checked) ~ .check {
&:before {
background-color: @white;
.transition(.2s, linear);
}
}
input:checked ~ .check {
background-color: #008287;
&:before {
.translateX(22px);
.transition(.2s, linear);
}
}
input:disabled ~ .check {
background-color: #D5D5D5;
&:before {
background-color: #BDBDBD;
}
}
}
&.switch-original {
.caption {
margin: 0 5px;
}
.check {
position: relative;
height: 1.125rem;
width: 2.8125rem;
outline: 2px #a6a6a6 solid;
border: 1px #fff solid;
cursor: pointer;
background: #A6A6A6;
z-index: 1;
display: inline-block;
vertical-align: middle;
}
.check:after {
position: absolute;
left: -1px;
top: -1px;
display: block;
content: "";
height: 1rem;
width: .5625rem;
outline: 2px #333 solid;
border: 1px #333 solid;
cursor: pointer;
background: #333;
z-index: 2;
.transition(.2s, linear);
}
input[type="checkbox"]:focus ~ .check {
outline: 1px @grayLight dotted ;
}
input[type="checkbox"]:checked ~ .check {
background: #008287;
&:after {
left: auto;
.translateX(2rem);
.transition(.2s, linear);
}
}
input[type="checkbox"]:disabled ~ .check {
background-color: @inputDisabledBgState;
border-color: @white;
&:after {
background-color: @inputDisabledState;
outline-color: @inputDisabledState;
border-color: @inputDisabledState;
}
}
}
.input-control {
&.button-group {
&.one-state {
}
&.multi-state {
}
}
}
.input-control {
&.range {
input[type=range] {
border: 0;
box-sizing: border-box;
line-height: 1;
background-color: transparent;
cursor: pointer;
-webkit-appearance: none;
width: 100%;
&::-webkit-slider-thumb {
-webkit-appearance: none;
}
&:focus {
outline: none;
}
&::-ms-track {
width: 100%;
cursor: pointer;
background: transparent;
border-color: transparent;
color: transparent;
}
.mx-trange-trump(){
width: 1em;
height: 1em;
margin-top: 0;
background-color: @gray;
border: 2px solid @gray;
cursor: pointer;
}
&::-webkit-slider-thumb {
-webkit-appearance: none;
.mx-trange-trump();
}
&::-moz-range-thumb {
.mx-trange-trump();
border-radius: 0;
margin: 0;
}
&::-ms-thumb {
.mx-trange-trump();
}
&:hover{
&::-webkit-slider-thumb { border-color: lighten(@dark, 10%); background-color: @dark;}
&::-moz-range-thumb { border-color: lighten(@dark, 10%); background-color: @dark; }
&::-ms-thumb { border-color: lighten(@dark, 10%); background-color: @dark; }
}
&:active{
&::-webkit-slider-thumb { border-color: lighten(@dark, 10%); }
&::-moz-range-thumb { border-color: lighten(@dark, 10%); }
&::-ms-thumb { border-color: lighten(@dark, 10%); }
}
.mx-range-track(){
width: 100%;
cursor: pointer;
height: 100%;
background-color: @teal;
transition: background .3s ease;
}
&::-webkit-slider-runnable-track {
.mx-range-track();
}
&:focus::-webkit-slider-runnable-track {
}
&::-moz-range-track {
.mx-range-track()
}
&::-ms-track {
background: @teal;
border-color: transparent;
color: transparent;
height: 1.25em;
}
&::-ms-fill-lower {
background: @teal;
}
&:focus::-ms-fill-lower {
}
&::-ms-fill-upper {
display: none;
}
&:focus::-ms-fill-upper {
}
&::-moz-range-track {
height: 1.25em;
}
}
&.big-input {
height: 2.125rem;
input[type=range] {
padding: 0;
&::-moz-range-track {
height: 1.2em;
}
}
}
}
}