/* * # 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();