297 lines
7.9 KiB
SCSS
297 lines
7.9 KiB
SCSS
//
|
|
// Custom Form Elements
|
|
// --------------------------------------------------
|
|
|
|
.custom-control-label::before,
|
|
.custom-control-label::after {
|
|
top: 3px;
|
|
}
|
|
|
|
// Base class
|
|
.css-control {
|
|
position: relative;
|
|
display: inline-block;
|
|
padding: 6px 0;
|
|
margin: 0;
|
|
font-weight: 400;
|
|
font-size: $pbf-font-size;
|
|
cursor: pointer;
|
|
|
|
&-input {
|
|
position: absolute;
|
|
z-index: -1;
|
|
opacity: 0;
|
|
|
|
&:focus ~ .css-control-indicator {
|
|
box-shadow: 0 0 3px rgba(0,0,0,.35);
|
|
}
|
|
|
|
~ .css-control-indicator {
|
|
position: relative;
|
|
display: inline-block;
|
|
margin-top: -3px;
|
|
margin-right: 3px;
|
|
vertical-align: middle;
|
|
|
|
&::after {
|
|
position: absolute;
|
|
content: '';
|
|
}
|
|
}
|
|
}
|
|
|
|
&.css-control-sm {
|
|
padding: 3px 0 4px;
|
|
font-size: $pbf-font-size-sm;
|
|
}
|
|
|
|
&.css-control-lg {
|
|
padding: 7px 0;
|
|
font-size: $pbf-font-size-lg;
|
|
}
|
|
|
|
&.disabled {
|
|
opacity: .5;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
& + & {
|
|
margin-left: 10px;
|
|
}
|
|
}
|
|
|
|
// CSS Radios
|
|
.css-radio {
|
|
.css-control-input {
|
|
~ .css-control-indicator {
|
|
width: 20px;
|
|
height: 20px;
|
|
background-color: $white;
|
|
border: 1px solid #ddd;
|
|
border-radius: 50%;
|
|
|
|
&::after {
|
|
top: 2px;
|
|
right: 2px;
|
|
bottom: 2px;
|
|
left: 2px;
|
|
background-color: $white;
|
|
border-radius: 50%;
|
|
opacity: 0;
|
|
transition: opacity .15s ease-out;
|
|
}
|
|
}
|
|
|
|
&:checked ~ .css-control-indicator::after {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
&:hover .css-control-input ~ .css-control-indicator {
|
|
border-color: $body-bg-dark;
|
|
}
|
|
|
|
// Size Variations
|
|
&.css-control-sm {
|
|
.css-control-input ~ .css-control-indicator {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
}
|
|
|
|
&.css-control-lg {
|
|
.css-control-input ~ .css-control-indicator {
|
|
width: 26px;
|
|
height: 26px;
|
|
}
|
|
}
|
|
|
|
// Color Variations
|
|
&.css-control-primary .css-control-input:checked ~ .css-control-indicator::after { background-color: $brand-primary; }
|
|
&.css-control-secondary .css-control-input:checked ~ .css-control-indicator::after { background-color: $gray-dark; }
|
|
&.css-control-info .css-control-input:checked ~ .css-control-indicator::after { background-color: $brand-info; }
|
|
&.css-control-success .css-control-input:checked ~ .css-control-indicator::after { background-color: $brand-success; }
|
|
&.css-control-warning .css-control-input:checked ~ .css-control-indicator::after { background-color: $brand-warning; }
|
|
&.css-control-danger .css-control-input:checked ~ .css-control-indicator::after { background-color: $brand-danger; }
|
|
}
|
|
|
|
// CSS Checkboxes
|
|
.css-checkbox {
|
|
.css-control-input ~ .css-control-indicator {
|
|
width: 20px;
|
|
height: 20px;
|
|
background-color: $white;
|
|
border: 1px solid #ddd;
|
|
transition: background-color .15s;
|
|
|
|
&::after {
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
font-family: $font-family-fontawesome;
|
|
font-weight: 900;
|
|
font-size: 10px;
|
|
color: $white;
|
|
line-height: 18px;
|
|
content: '\f00c';
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
&:hover .css-control-input ~ .css-control-indicator {
|
|
border-color: $body-bg-dark;
|
|
}
|
|
|
|
// Size Variations
|
|
&.css-control-sm {
|
|
.css-control-input ~ .css-control-indicator {
|
|
width: 16px;
|
|
height: 16px;
|
|
|
|
&::after {
|
|
font-size: 8px;
|
|
line-height: 15px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.css-control-lg {
|
|
padding: 6px 0 7px;
|
|
|
|
.css-control-input ~ .css-control-indicator {
|
|
width: 28px;
|
|
height: 28px;
|
|
|
|
&::after {
|
|
font-size: 14px;
|
|
line-height: 26px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Shape Variations
|
|
&.css-checkbox-rounded .css-control-input ~ .css-control-indicator {
|
|
border-radius: 2px;
|
|
}
|
|
|
|
// Color Variations
|
|
&.css-control-primary .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $brand-primary;
|
|
border-color: darken($brand-primary, 15%);
|
|
}
|
|
|
|
&.css-control-secondary .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $gray-dark;
|
|
border-color: darken($gray-dark, 15%);
|
|
}
|
|
|
|
&.css-control-info .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $brand-info;
|
|
border-color: darken($brand-info, 15%);
|
|
}
|
|
|
|
&.css-control-success .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $brand-success;
|
|
border-color: darken($brand-success, 15%);
|
|
}
|
|
|
|
&.css-control-warning .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $brand-warning;
|
|
border-color: darken($brand-warning, 15%);
|
|
}
|
|
|
|
&.css-control-danger .css-control-input:checked ~ .css-control-indicator {
|
|
background-color: $brand-danger;
|
|
border-color: darken($brand-danger, 15%);
|
|
}
|
|
}
|
|
|
|
// CSS Switches
|
|
.css-switch {
|
|
padding: 3px 0;
|
|
|
|
.css-control-input {
|
|
~ .css-control-indicator {
|
|
width: 51px;
|
|
height: 30px;
|
|
background-color: #eee;
|
|
border-radius: 30px;
|
|
transition: background-color .3s;
|
|
|
|
&::after {
|
|
top: 2px;
|
|
bottom: 2px;
|
|
left: 2px;
|
|
width: 26px;
|
|
background-color: $white;
|
|
border-radius: 50%;
|
|
box-shadow: 1px 0 3px rgba(0,0,0,.1);
|
|
transition: transform .15s ease-out;
|
|
}
|
|
}
|
|
|
|
&:checked ~ .css-control-indicator {
|
|
background-color: #ddd;
|
|
|
|
&::after {
|
|
box-shadow: -2px 0 3px rgba(0,0,0,.3);
|
|
transform: translateX(20px);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Size Variations
|
|
&.css-control-sm {
|
|
padding: 3px 0;
|
|
|
|
.css-control-input {
|
|
~ .css-control-indicator {
|
|
width: 36px;
|
|
height: 20px;
|
|
|
|
&::after {
|
|
width: 16px;
|
|
}
|
|
}
|
|
|
|
&:checked ~ .css-control-indicator::after {
|
|
transform: translateX(15px);
|
|
}
|
|
}
|
|
}
|
|
|
|
&.css-control-lg {
|
|
padding: 4px 0;
|
|
|
|
.css-control-input {
|
|
~ .css-control-indicator {
|
|
width: 65px;
|
|
height: 34px;
|
|
|
|
&::after {
|
|
width: 30px;
|
|
}
|
|
}
|
|
|
|
&:checked ~ .css-control-indicator::after {
|
|
transform: translateX(30px);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Shape Variations
|
|
&.css-switch-square .css-control-input ~ .css-control-indicator,
|
|
&.css-switch-square .css-control-input ~ .css-control-indicator::after {
|
|
border-radius: 0;
|
|
}
|
|
|
|
// Color Variations
|
|
&.css-control-primary .css-control-input:checked ~ .css-control-indicator { background-color: $brand-primary; }
|
|
&.css-control-secondary .css-control-input:checked ~ .css-control-indicator { background-color: $gray-dark; }
|
|
&.css-control-info .css-control-input:checked ~ .css-control-indicator { background-color: $brand-info; }
|
|
&.css-control-success .css-control-input:checked ~ .css-control-indicator { background-color: $brand-success; }
|
|
&.css-control-warning .css-control-input:checked ~ .css-control-indicator { background-color: $brand-warning; }
|
|
&.css-control-danger .css-control-input:checked ~ .css-control-indicator { background-color: $brand-danger; }
|
|
}
|