You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
461 lines
8.6 KiB
461 lines
8.6 KiB
/*
|
|
* # Semantic - Checkbox
|
|
* http://github.com/semantic-org/semantic-ui/
|
|
*
|
|
*
|
|
* Copyright 2014 Contributor
|
|
* Released under the MIT license
|
|
* http://opensource.org/licenses/MIT
|
|
*
|
|
*/
|
|
|
|
/*******************************
|
|
Theme
|
|
*******************************/
|
|
|
|
@type : 'module';
|
|
@element : 'checkbox';
|
|
|
|
@import '../../semantic.config';
|
|
|
|
|
|
/*******************************
|
|
Checkbox
|
|
*******************************/
|
|
|
|
|
|
/*--------------
|
|
Content
|
|
---------------*/
|
|
|
|
.ui.checkbox {
|
|
position: relative;
|
|
display: inline-block;
|
|
|
|
height: @checkboxSize;
|
|
|
|
font-size: 1rem;
|
|
line-height: @checkboxLineHeight;
|
|
min-width: @checkboxSize;
|
|
backface-visibility: hidden;
|
|
|
|
outline: none;
|
|
vertical-align: middle;
|
|
}
|
|
.ui.checkbox input {
|
|
position: absolute;
|
|
top: 0px;
|
|
left: 0px;
|
|
opacity: 0 !important;
|
|
outline: none;
|
|
z-index: -1;
|
|
}
|
|
|
|
|
|
/*--------------
|
|
Box
|
|
---------------*/
|
|
|
|
|
|
.ui.checkbox .box,
|
|
.ui.checkbox label {
|
|
cursor: pointer;
|
|
padding-left: @labelPadding;
|
|
outline: none;
|
|
}
|
|
.ui.checkbox label {
|
|
font-size: @fontSize;
|
|
}
|
|
|
|
.ui.checkbox .box:before,
|
|
.ui.checkbox label:before {
|
|
position: absolute;
|
|
|
|
line-height: 1;
|
|
width: @checkboxSize;
|
|
height: @checkboxSize;
|
|
top: 0em;
|
|
left: 0em;
|
|
content: '';
|
|
|
|
background: @checkboxBackground;
|
|
border-radius: @checkboxBorderRadius;
|
|
|
|
transition: @checkboxTransition;
|
|
border: @checkboxBorder;
|
|
}
|
|
|
|
/*--------------
|
|
Checkmark
|
|
---------------*/
|
|
|
|
.ui.checkbox .box:after,
|
|
.ui.checkbox label:after {
|
|
position: absolute;
|
|
top: @checkboxCheckTop;
|
|
left: @checkboxCheckLeft;
|
|
line-height: @checkboxSize;
|
|
width: @checkboxSize;
|
|
height: @checkboxSize;
|
|
text-align: center;
|
|
|
|
opacity: 0;
|
|
color: @checkboxColor;
|
|
transition: all 0.1s ease;
|
|
}
|
|
|
|
/*--------------
|
|
Label
|
|
---------------*/
|
|
|
|
/* Inside */
|
|
.ui.checkbox label,
|
|
.ui.checkbox + label {
|
|
cursor: pointer;
|
|
color: @labelColor;
|
|
transition: color 0.2s ease;
|
|
user-select: none;
|
|
}
|
|
|
|
/* Outside */
|
|
.ui.checkbox + label {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
|
|
/*******************************
|
|
States
|
|
*******************************/
|
|
|
|
|
|
/*--------------
|
|
Hover
|
|
---------------*/
|
|
|
|
.ui.checkbox .box:hover::before,
|
|
.ui.checkbox label:hover::before {
|
|
background: @checkboxHoverBackground;
|
|
border: @checkboxHoverBorder;
|
|
}
|
|
.ui.checkbox label:hover,
|
|
.ui.checkbox + label:hover {
|
|
color: @labelHoverColor;
|
|
}
|
|
|
|
/*--------------
|
|
Down
|
|
---------------*/
|
|
|
|
.ui.checkbox .box:active::before,
|
|
.ui.checkbox label:active::before {
|
|
background: @checkboxSelectedBackground;
|
|
border: 1px solid @checkboxSelectedBorder;
|
|
}
|
|
.ui.checkbox input:active ~ label {
|
|
color: @labelSelectedColor;
|
|
}
|
|
|
|
/*--------------
|
|
Focus
|
|
---------------*/
|
|
|
|
.ui.checkbox input:focus ~ .box:before,
|
|
.ui.checkbox input:focus ~ label:before {
|
|
background: @checkboxSelectedBackground;
|
|
border: 1px solid @checkboxSelectedBorder;
|
|
}
|
|
.ui.checkbox input:focus ~ label {
|
|
color: @labelSelectedColor;
|
|
}
|
|
|
|
|
|
/*--------------
|
|
Active
|
|
---------------*/
|
|
|
|
.ui.checkbox input:checked ~ .box:after,
|
|
.ui.checkbox input:checked ~ label:after {
|
|
opacity: 1;
|
|
}
|
|
|
|
/*--------------
|
|
Read-Only
|
|
---------------*/
|
|
|
|
.ui.read-only.checkbox,
|
|
.ui.read-only.checkbox label {
|
|
cursor: default;
|
|
}
|
|
|
|
|
|
/*--------------
|
|
Disabled
|
|
---------------*/
|
|
|
|
.ui.disabled.checkbox .box:after,
|
|
.ui.disabled.checkbox label,
|
|
.ui.checkbox input[disabled] ~ .box:after,
|
|
.ui.checkbox input[disabled] ~ label {
|
|
cursor: default;
|
|
opacity: @disabledCheckboxOpacity;
|
|
color: @disabledCheckboxLabelColor;
|
|
}
|
|
|
|
|
|
/*******************************
|
|
Types
|
|
*******************************/
|
|
|
|
|
|
/*--------------
|
|
Radio
|
|
---------------*/
|
|
|
|
.ui.radio.checkbox {
|
|
height: @checkboxRadioSize;
|
|
}
|
|
|
|
/* Box */
|
|
.ui.radio.checkbox .box:before,
|
|
.ui.radio.checkbox label:before {
|
|
width: @checkboxRadioSize;
|
|
height: @checkboxRadioSize;
|
|
border-radius: @circularRadius;
|
|
top: @checkboxRadioTop;
|
|
left: @checkboxRadioLeft;
|
|
transform: none;
|
|
}
|
|
|
|
/* Circle */
|
|
.ui.radio.checkbox .box:after,
|
|
.ui.radio.checkbox label:after {
|
|
border: none;
|
|
width: @checkboxRadioSize;
|
|
height: @checkboxRadioSize;
|
|
line-height: @checkboxRadioSize;
|
|
top: @checkboxRadioTop;
|
|
left: @checkboxRadioLeft;
|
|
font-size: @checkboxRadioCircleSize;
|
|
}
|
|
/* Radio Checkbox */
|
|
.ui.radio.checkbox .box:after,
|
|
.ui.radio.checkbox label:after {
|
|
width: @checkboxRadioSize;
|
|
height: @checkboxRadioSize;
|
|
border-radius: @checkboxBulletRadius;
|
|
transform: scale(@checkboxBulletScale);
|
|
background-color: @checkboxBulletColor;
|
|
}
|
|
|
|
|
|
/*--------------
|
|
Slider
|
|
---------------*/
|
|
|
|
.ui.slider.checkbox {
|
|
cursor: pointer;
|
|
height: @sliderHeight;
|
|
}
|
|
|
|
.ui.slider.checkbox .box,
|
|
.ui.slider.checkbox label {
|
|
padding-left: @sliderLabelDistance;
|
|
line-height: @sliderLabelLineHeight;
|
|
color: @sliderOffLabelColor;
|
|
}
|
|
|
|
/* Line */
|
|
.ui.slider.checkbox .box:before,
|
|
.ui.slider.checkbox label:before {
|
|
cursor: pointer;
|
|
display: block;
|
|
|
|
position: absolute;
|
|
content: '';
|
|
top: @sliderLineVerticalOffset;
|
|
left: 0em;
|
|
z-index: 1;
|
|
border: none !important;
|
|
|
|
background-color: @sliderLineColor;
|
|
width: @sliderLineWidth;
|
|
height: @sliderLineHeight;
|
|
|
|
transform: none;
|
|
border-radius: @sliderLineRadius;
|
|
transition:
|
|
background 0.3s ease
|
|
;
|
|
}
|
|
|
|
/* Handle */
|
|
.ui.slider.checkbox .box:after,
|
|
.ui.slider.checkbox label:after {
|
|
background: @handleBackground;
|
|
position: absolute;
|
|
content: '';
|
|
opacity: 1;
|
|
z-index: 2;
|
|
|
|
border: none;
|
|
box-shadow: @handleBoxShadow;
|
|
width: @sliderHandleSize;
|
|
height: @sliderHandleSize;
|
|
top: @sliderHandleOffset;
|
|
left: 0em;
|
|
transform: none;
|
|
|
|
border-radius: @circularRadius;
|
|
transition:
|
|
left 0.3s ease 0s
|
|
;
|
|
}
|
|
|
|
/* Focus */
|
|
.ui.slider.checkbox input:focus ~ .box:before,
|
|
.ui.slider.checkbox input:focus ~ label:before {
|
|
background-color: @toggleFocusColor;
|
|
border: none;
|
|
}
|
|
|
|
/* Hover */
|
|
.ui.slider.checkbox .box:hover,
|
|
.ui.slider.checkbox label:hover {
|
|
color: @sliderHoverLabelColor;
|
|
}
|
|
.ui.slider.checkbox .box:hover::before,
|
|
.ui.slider.checkbox label:hover::before {
|
|
background: @sliderHoverLaneBackground;
|
|
}
|
|
|
|
/* Active */
|
|
.ui.slider.checkbox input:checked ~ .box,
|
|
.ui.slider.checkbox input:checked ~ label {
|
|
color: @sliderOnLabelColor;
|
|
}
|
|
.ui.slider.checkbox input:checked ~ .box:before,
|
|
.ui.slider.checkbox input:checked ~ label:before {
|
|
background-color: @sliderOnLineColor;
|
|
}
|
|
.ui.slider.checkbox input:checked ~ .box:after,
|
|
.ui.slider.checkbox input:checked ~ label:after {
|
|
left: @sliderTravelDistance;
|
|
}
|
|
|
|
|
|
/*--------------
|
|
Toggle
|
|
---------------*/
|
|
|
|
.ui.toggle.checkbox {
|
|
cursor: pointer;
|
|
height: @toggleHeight;
|
|
}
|
|
|
|
.ui.toggle.checkbox .box,
|
|
.ui.toggle.checkbox label {
|
|
height: @toggleHandleSize;
|
|
padding-left: @toggleLabelDistance;
|
|
line-height: @toggleLabelLineHeight;
|
|
color: @toggleOffLabelColor;
|
|
}
|
|
|
|
/* Switch */
|
|
.ui.toggle.checkbox .box:before,
|
|
.ui.toggle.checkbox label:before {
|
|
cursor: pointer;
|
|
display: block;
|
|
|
|
position: absolute;
|
|
content: '';
|
|
|
|
top: @toggleLaneVerticalOffset;
|
|
z-index: 1;
|
|
border: none;
|
|
|
|
background-color: @neutralCheckbox;
|
|
width: @toggleLaneWidth;
|
|
height: @toggleLaneHeight;
|
|
border-radius: @toggleHandleRadius;
|
|
}
|
|
|
|
/* Handle */
|
|
.ui.toggle.checkbox .box:after,
|
|
.ui.toggle.checkbox label:after {
|
|
background: @handleBackground;
|
|
position: absolute;
|
|
content: '';
|
|
opacity: 1;
|
|
z-index: 2;
|
|
|
|
border: none;
|
|
box-shadow: @handleBoxShadow;
|
|
width: @toggleHandleSize;
|
|
height: @toggleHandleSize;
|
|
top: @toggleHandleOffset;
|
|
left: 0em;
|
|
|
|
border-radius: @circularRadius;
|
|
transition:
|
|
background 0.3s ease 0s,
|
|
left 0.3s ease 0s
|
|
;
|
|
}
|
|
|
|
.ui.toggle.checkbox input ~ .box:after,
|
|
.ui.toggle.checkbox input ~ label:after {
|
|
left: @toggleOffOffset;
|
|
}
|
|
|
|
/* Focus */
|
|
.ui.toggle.checkbox input:focus ~ .box:before,
|
|
.ui.toggle.checkbox input:focus ~ label:before {
|
|
background-color: @toggleFocusColor;
|
|
border: none;
|
|
}
|
|
|
|
/* Hover */
|
|
.ui.toggle.checkbox .box:hover::before,
|
|
.ui.toggle.checkbox label:hover::before {
|
|
background-color: @toggleHoverColor;
|
|
border: none;
|
|
}
|
|
|
|
/* Active */
|
|
.ui.toggle.checkbox input:checked ~ .box,
|
|
.ui.toggle.checkbox input:checked ~ label {
|
|
color: @toggleOnLabelColor;
|
|
}
|
|
.ui.toggle.checkbox input:checked ~ .box:before,
|
|
.ui.toggle.checkbox input:checked ~ label:before {
|
|
background-color: @toggleOnLaneColor;
|
|
}
|
|
.ui.toggle.checkbox input:checked ~ .box:after,
|
|
.ui.toggle.checkbox input:checked ~ label:after {
|
|
left: @toggleOnOffset;
|
|
}
|
|
|
|
/*******************************
|
|
Variations
|
|
*******************************/
|
|
|
|
/*--------------
|
|
Fitted
|
|
---------------*/
|
|
|
|
.ui.fitted.checkbox .box,
|
|
.ui.fitted.checkbox label {
|
|
padding-left: 0em !important;
|
|
}
|
|
|
|
.ui.fitted.toggle.checkbox,
|
|
.ui.fitted.toggle.checkbox {
|
|
width: @toggleWidth;
|
|
}
|
|
|
|
.ui.fitted.slider.checkbox,
|
|
.ui.fitted.slider.checkbox {
|
|
width: @sliderWidth;
|
|
}
|
|
|
|
.loadUIOverrides();
|