Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

// Floating & Form Line Input

@mixin input-variant($color) {
        
        .form-control {

                border-bottom: 1px solid $color;

                &.edited:not([readonly]),
                &.form-control-static,
                &:focus:not([readonly]),
                &.focus:not([readonly]) {  

                        ~ label,
                        ~ .form-control-focus {
                                &:after {
                                        background: $color; 
                                }        
                        }

                        ~ label {                                  
                                color: $color;   
                        }  

                        ~ i {
                                color: $color;
                        }

                        ~ .help-block {
                                color: $color;
                        }
                }
        }       

        .input-group-addon {
                color: $color;
                border-bottom: 1px solid $color;
        }

        label {
                color: $color;     
        }
}

.form-group.form-md-line-input {  
        position: relative;    
        margin: 0 0 35px 0;  
        padding-top: 20px;     

        //&:last-child { remove to fix mobile mode issue
                //margin-bottom: 10px;
        //}

        .form-horizontal & {
                padding-top: 10px;
                margin-bottom: 20px;  
                margin: 0 -15px 20px -15px; 
        }       

        .form-horizontal & > label {
                padding-top: 5px;
                font-size: $input-md-label-font-size;
                color: $input-md-label-color;     
                @include opacity($input-md-label-opacity);      
        }

        .form-control {     
                background: none;
                border: 0;
                border-bottom: 1px solid $input-md-input-border; 
                @include placeholder($input-md-placeholder);  
                @include border-radius(0);   
                color: $input-md-color;  
                box-shadow: none;
                
                &.form-control-static {
                        border-bottom: 0;
                }

                padding-left: 0;     
                padding-right: 0;   
                font-size: 14px;

                &.input-sm {  
                        font-size: 14px;
                        padding: 6px 0;
                }   

                &.input-lg {   
                        font-size: 20px;        
                        padding: 14px 0;
                }

                ~ label,   
                ~ .form-control-focus {
                        width: 100%;
                        position: absolute;  
                        left: 0;       
                        bottom: 0;  
                        pointer-events: none;

                        .form-horizontal & {
                                width: auto;
                                left: 15px;
                                right: 15px; 
                        }

                        &:after {
                                content: '';  
                                position: absolute;
                                z-index: 5;
                                bottom: 0;
                                left: 50%;
                                width: 0;   
                                height: 2px;
                                width: 0;  
                                visibility: hidden;
                                transition: 0.2s ease all;
                        }
                }   

                ~ label {    
                        top: 0;  
                        margin-bottom: 0;
                        font-size: $input-md-label-font-size;
                        color: $input-md-label-color;     
                        @include opacity($input-md-label-opacity);  
                }     

                ~ .help-block-error {
                        @include opacity(1);
                }
   
                &.edited:not([readonly]),
                &:focus:not([readonly]) {
                        ~ label,   
                        ~ .form-control-focus {
                                color: $input-md-label-color;  
                                   
                                &:after {
                                        visibility: visible;  
                                        left: 0;
                                        width: 100%; 
                                        background: $input-md-focus-border;
                                }  
                        }
   
                        ~ label {
                                @include opacity(1);
                        }

                        ~ .help-block {
                                color: $input-md-focus-border;     
                                @include opacity(1);
                        }

                        ~ .help-block-error {
                                @include opacity(0);
                        }
                }  
 
                &.edited:not([readonly]):not(:focus) {
                        ~ .help-block {  
                                @include opacity(0);
                        }

                        ~ .help-block-error {
                                @include opacity(0);
                        }
                }  

                &[readonly], 
                &[disabled],   
            fieldset[disabled] & {
                background: none;
                cursor: not-allowed;
                        border-bottom: 1px dashed $input-border;
            }   
        }

        &.form-md-floating-label {
                .form-control {

                        ~ label {          
                                font-size: 16px;
                                top: 25px;       
                                transition: 0.2s ease all;
                                color: $input-md-placeholder;
                        }   

                        &[readonly],
                        &.edited,
                        &.form-control-static,   
                        &:focus:not([readonly]),  
                        &.focus:not([readonly]) {                        
                                ~ label {
                                        top: 0; 
                                        font-size: 13px;            
                                }   
                        }     

                        &.input-sm {
                                ~ label {     
                                        font-size: 14px;
                                        top: 24px;  
                                }  

                                &[readonly],
                                &.form-control-static,  
                                &.edited,
                                &:focus:not([readonly]),  
                                &.focus:not([readonly]) {                          
                                        ~ label {      
                                                top: 0; 
                                                font-size: 13px;            
                                        }
                                }  
                        }

                        &.input-lg {
                                ~ label {     
                                        font-size: 20px;
                                        top: 30px;      
                                }     

                                &[readonly],
                                &.edited,
                                &.form-control-static,
                                &:focus:not([readonly]),        
                                &.focus:not([readonly]) {                               
                                        ~ label {
                                                top: 0;       
                                                font-size: 13px;                 
                                        }
                                }  
                        }
                }

                .input-icon > label {
                        padding-left: 34px;
                }   

                .input-icon.right > label {
                        padding-left: 0;
                        padding-right: 34px;
                }

                .input-group.left-addon {
                        label {
                                padding-left: 34px;   
                        }
                }
     
                .input-group.right-addon {
                        label {
                                padding-right: 34px;
                        }   
                } 
        }  
  
        & + .input-icon {
                padding-top: 0;
        }


        // Help block

        .help-block { 
                position: absolute;
                margin: 2px 0 0 0;   
                @include opacity(0);   
                font-size: 13px;
        }

        // Input icons

        > .input-icon {

                > i {
                        left: 0;
                bottom: 0;
                margin: 9px 2px 10px 10px; 
                        color: $input-md-label-color;
                }  

                &.input-icon-lg > i {
                        top: 6px;
                }

                &.input-icon-sm > i {
                        top: -1px;
                }

                .form-control {
                        padding-left: 34px;      
                }

                > label {
                        margin-top: -20px;  
                }

                &.right {
                        .form-control {
                                padding-left: 0;
                                padding-right: 34px;        
                        }

                        > i {
                                left: auto;
                                right: 8px;
                                margin: 11px 2px 10px 10px;
                        }
                }
        }

        // Input groups
  
        & + .input-group {
                padding-top: 0;
        } 

        .input-group {
                padding-top: 0;

                > label {
                        margin-top: -20px;  
                }

                .input-group-addon {
                        @include border-radius(0);  
                        background: none;
                        border: 0;    
                        border-bottom: 1px solid $input-border;                 
                }

                & + .input-group-control {
                        padding-top: 0;
                }       

                .input-group-control {  
                        padding-top: 0;
                        position: relative;
                        display: table-cell;
                        vertical-align: bottom;

                        > label {
                                margin-top: -20px;
                        }
                }

                .input-group-btn {
                        .btn {
                                @include border-radius($general-border-radius);
                        }
                }

                .input-group-btn.btn-left .btn {
                        margin-right: 10px;
                }

                .input-group-btn.btn-right .btn {
                        margin-left: 10px;
                }

                .help-block {
                        margin-top: 35px;
                }

                &.input-group-sm .help-block {
                        margin-top: 30px;  
                }

                &.input-group-lg .help-block {
                        margin-top: 47px;  
                }
        }

        // States

        &.has-success {   
                @include input-variant($state-success-text);
        }

        &.has-warning {
                @include input-variant($state-warning-text);
        }

        &.has-error {
                @include input-variant($state-danger-text);
        }   

        &.has-info {
                @include input-variant($state-info-text);
        }
} 

// Inline forms

.form-inline {
        .form-md-line-input {
                margin: 0;
                padding-top: 0;
                margin-right: 20px;

                > .input-icon {
                        padding: 0;
                }
        }
}

// Horizontal forms

.form-horizontal {
        .form-group.form-md-line-input {
                .input-icon {
                        .form-control {
                                padding-left: 33px;
                        }

                        > i {
                                top: 0;
                        }

                        &.right {
                                .form-control {
                                        padding-left: 0;
                                        padding-right: 33px;
                                }
                        }

                        > .form-control-focus {
                                left: 0 !important;
                                right: 0 !important;
                        }
                }
        }

        .form-group.form-md-line-input {
                .input-group {
                        padding-top: 0;

                        > .input-group-btn {
                                .btn {
                                        margin-bottom: 0 !important;  
                                }
                        }

                        > .input-group-control {
                                padding-top: 0;

                                > .form-control-focus {
                                        left: 0 !important;
                                        right: 0 !important;
                                }
                        }

                        > .form-control-focus {
                                left: 0 !important;
                                right: 0 !important;
                        }
                }
        }
}