952 days continuous production uptime, 40k+ tp/s single node. Original corpo Bitbucket history not included — clean archive commit.
184 lines
6.0 KiB
SCSS
Executable File
184 lines
6.0 KiB
SCSS
Executable File
/* Remove default checkbox */
|
|
[type="checkbox"]:not(:checked),
|
|
[type="checkbox"]:checked {
|
|
position: absolute;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
// Material checkbox styles
|
|
.form-check-input[type="checkbox"],
|
|
label.btn input[type="checkbox"] {
|
|
// Text Label Style
|
|
+ label {
|
|
position: relative;
|
|
padding-left: $checkbox-label-pl;
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
height: $checkbox-label-height;
|
|
line-height: $checkbox-label-line-height;
|
|
user-select: none;
|
|
}
|
|
|
|
// Checkbox feature
|
|
+ label:before,
|
|
&:not(.filled-in) + label:after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: $checkbox-label-before-after-width;
|
|
height: $checkbox-label-before-after-height;
|
|
z-index: 0;
|
|
border: $checkbox-label-before-after-border-width solid $checkbox-label-before-after-border-color;
|
|
border-radius: $checkbox-label-before-after-border-radius;
|
|
margin-top: $checkbox-label-before-after-mt;
|
|
transition: $checkbox-label-before-after-transition;
|
|
}
|
|
|
|
&:not(.filled-in) + label:after {
|
|
border: 0;
|
|
transform: scale(0);
|
|
}
|
|
|
|
&:not(:checked):disabled + label:before {
|
|
border: none;
|
|
background-color: $input-disabled-solid-color;
|
|
}
|
|
|
|
&:checked {
|
|
+ label:before {
|
|
top: $checkbox-checked-label-before-top;
|
|
left: $checkbox-checked-label-before-left;
|
|
width: $checkbox-checked-label-before-width;
|
|
height: $checkbox-checked-label-before-height;
|
|
border-top: $checkbox-label-before-after-border-width solid transparent;
|
|
border-left: $checkbox-label-before-after-border-width solid transparent;
|
|
border-right: $checkbox-label-before-after-border-width solid $radio-fill-color;
|
|
border-bottom: $checkbox-label-before-after-border-width solid $radio-fill-color;
|
|
transform: $checkbox-checked-label-before-transform;
|
|
backface-visibility: hidden;
|
|
transform-origin: $checkbox-checked-label-before-transform-origin;
|
|
}
|
|
|
|
&:disabled + label:before {
|
|
border-right: $checkbox-label-before-after-border-width solid $input-disabled-solid-color;
|
|
border-bottom: $checkbox-label-before-after-border-width solid $input-disabled-solid-color;
|
|
}
|
|
}
|
|
|
|
// Indeterminate checkbox
|
|
&:indeterminate {
|
|
+ label:before {
|
|
top: $checkbox-indeterminate-label-before-top;
|
|
left: $checkbox-indeterminate-label-before-left;
|
|
width: $checkbox-indeterminate-label-before-width;
|
|
height: $checkbox-indeterminate-label-before-height;
|
|
border-top: none;
|
|
border-left: none;
|
|
border-right: $checkbox-label-before-after-border-width solid $radio-fill-color;
|
|
border-bottom: none;
|
|
transform: $checkbox-indeterminate-label-before-transform;
|
|
backface-visibility: hidden;
|
|
transform-origin: $checkbox-checked-label-before-transform-origin;
|
|
}
|
|
|
|
&:disabled + label:before {
|
|
border-right: $checkbox-label-before-after-border-width solid $input-disabled-color;
|
|
background-color: transparent;
|
|
}
|
|
}
|
|
|
|
// Filled in Style
|
|
&.filled-in {
|
|
+ label:after {
|
|
border-radius: $checkbox-filled-in-border-radius;
|
|
}
|
|
|
|
+ label:before,
|
|
+ label:after {
|
|
content: '';
|
|
left: 0;
|
|
position: absolute;
|
|
/* .1s delay is for check animation */
|
|
transition: $checkbox-filled-in-transition-border, $checkbox-filled-in-transition-background-color, $checkbox-filled-in-transition-width, $checkbox-filled-in-transition-height, $checkbox-filled-in-transition-top, $checkbox-filled-in-transition-left;
|
|
z-index: 1;
|
|
}
|
|
|
|
// Unchecked style
|
|
&:not(:checked) + label:before {
|
|
width: 0;
|
|
height: 0;
|
|
border: $checkbox-filled-in-unchecked-label-before-border-width solid transparent;
|
|
left: $checkbox-filled-in-unchecked-label-before-left;
|
|
top: $checkbox-filled-in-unchecked-label-before-top;
|
|
transform: rotateZ(37deg);
|
|
transform-origin: $checkbox-checked-label-before-transform-origin;
|
|
}
|
|
|
|
&:not(:checked) + label:after {
|
|
height: $checkbox-filled-in-unchecked-label-after-height;
|
|
width: $checkbox-filled-in-unchecked-label-after-width;
|
|
background-color: transparent;
|
|
border: $checkbox-label-before-after-border-width solid $radio-empty-color;
|
|
top: 0;
|
|
z-index: 0;
|
|
}
|
|
|
|
// Checked style
|
|
&:checked {
|
|
+ label:before {
|
|
top: 0;
|
|
left: $checkbox-filled-in-checked-label-before-left;
|
|
width: $checkbox-filled-in-checked-label-before-width;
|
|
height: $checkbox-filled-in-checked-label-before-height;
|
|
border-top: $checkbox-label-before-after-border-width solid transparent;
|
|
border-left: $checkbox-label-before-after-border-width solid transparent;
|
|
border-right: $checkbox-label-before-after-border-width solid $white-base;
|
|
border-bottom: $checkbox-label-before-after-border-width solid $white-base;
|
|
transform: $checkbox-filled-in-unchecked-label-before-transform;
|
|
transform-origin: $checkbox-checked-label-before-transform-origin;
|
|
}
|
|
|
|
+ label:after {
|
|
top: 0;
|
|
width: $checkbox-filled-in-unchecked-label-after-height;
|
|
height: $checkbox-filled-in-unchecked-label-after-width;
|
|
border: $checkbox-label-before-after-border-width solid $secondary-color;
|
|
background-color: $secondary-color;
|
|
z-index: 0;
|
|
}
|
|
}
|
|
|
|
&.filled-in-danger {
|
|
&:checked + label:after {
|
|
background-color: $red-base;
|
|
border-color: $red-base;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Disabled style
|
|
&:disabled {
|
|
&:not(:checked) {
|
|
+ label:before {
|
|
background-color: $input-disabled-solid-color;
|
|
border-color: $input-disabled-solid-color;
|
|
}
|
|
+ label:after {
|
|
border-color: $input-disabled-solid-color;
|
|
background-color: $input-disabled-solid-color;
|
|
}
|
|
}
|
|
&:checked {
|
|
+ label:before {
|
|
background-color: transparent;
|
|
}
|
|
+ label:after {
|
|
background-color: $input-disabled-solid-color;
|
|
border-color: $input-disabled-solid-color;
|
|
}
|
|
}
|
|
}
|
|
}
|