diff options
| author | Fuwn <[email protected]> | 2020-12-14 23:21:39 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2020-12-14 23:21:39 -0800 |
| commit | 823344c19094680e80e2b56449a243e183db8b06 (patch) | |
| tree | 92277700547ea671331828caa258ace7aaaa46d5 /semantic/src/definitions/modules/checkbox.less | |
| parent | repo: angular (diff) | |
| download | me-823344c19094680e80e2b56449a243e183db8b06.tar.xz me-823344c19094680e80e2b56449a243e183db8b06.zip | |
:star:
Diffstat (limited to 'semantic/src/definitions/modules/checkbox.less')
| -rw-r--r-- | semantic/src/definitions/modules/checkbox.less | 814 |
1 files changed, 814 insertions, 0 deletions
diff --git a/semantic/src/definitions/modules/checkbox.less b/semantic/src/definitions/modules/checkbox.less new file mode 100644 index 0000000..32974de --- /dev/null +++ b/semantic/src/definitions/modules/checkbox.less @@ -0,0 +1,814 @@ +/*! + * # Fomantic-UI - Checkbox + * http://github.com/fomantic/Fomantic-UI/ + * + * + * Released under the MIT license + * http://opensource.org/licenses/MIT + * + */ + +/******************************* + Theme +*******************************/ + +@type : 'module'; +@element : 'checkbox'; + +@import (multiple) '../../theme.config'; + +/******************************* + Checkbox +*******************************/ + + +/*-------------- + Content +---------------*/ + +.ui.checkbox { + position: relative; + display: inline-block; + backface-visibility: hidden; + outline: none; + vertical-align: baseline; + font-style: normal; + + min-height: @checkboxSize; + font-size: @relativeMedium; + line-height: @checkboxLineHeight; + min-width: @checkboxSize; +} + +/* HTML Checkbox */ +.ui.checkbox input[type="checkbox"], +.ui.checkbox input[type="radio"] { + cursor: pointer; + position: absolute; + top: 0; + left: 0; + opacity: 0 !important; + outline: none; + z-index: 3; + width: @checkboxSize; + height: @checkboxSize; +} + + +& when (@variationCheckboxBox) { + /*-------------- + Box + ---------------*/ + + /* .box selector is deprecated and will be removed in v3 */ + .ui.checkbox .box { + &:extend(.ui.checkbox label all); + } + .ui.checkbox + .box { + &:extend(.ui.checkbox + label all); + } + .ui.checkbox input:focus ~ .box { + &:extend(.ui.checkbox input:focus ~ label all); + } + .ui.checkbox input:checked ~ .box { + &:extend(.ui.checkbox input:checked ~ label all); + } + & when (@variationCheckboxIndeterminate) { + .ui.checkbox input:not([type=radio]):indeterminate ~ .box { + &:extend(.ui.checkbox input:not([type=radio]):indeterminate ~ label all); + } + .ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box { + &:extend(.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label all); + } + } + .ui.checkbox input:checked:focus ~ .box { + &:extend(.ui.checkbox input:checked:focus ~ label all); + } + & when (@variationCheckboxDisabled) { + .ui.disabled.checkbox .box { + &:extend(.ui.disabled.checkbox label all); + } + + .ui.checkbox input[disabled] ~ .box { + &:extend(.ui.checkbox input[disabled] ~ label all); + } + } + & when (@variationCheckboxRadio) { + .ui.radio.checkbox .box { + &:extend(.ui.radio.checkbox label all); + } + .ui.radio.checkbox input:focus ~ .box { + &:extend(.ui.radio.checkbox input:focus ~ label all); + } + .ui.radio.checkbox input:indeterminate ~ .box { + &:extend(.ui.radio.checkbox input:indeterminate ~ label all); + } + .ui.radio.checkbox input:checked ~ .box { + &:extend(.ui.radio.checkbox input:checked ~ label all); + } + .ui.radio.checkbox input:focus:checked ~ .box { + &:extend(.ui.radio.checkbox input:focus:checked ~ label all); + } + } + & when (@variationCheckboxSlider) { + .ui.slider.checkbox .box { + &:extend(.ui.slider.checkbox label all); + } + .ui.slider.checkbox input:focus ~ .box { + &:extend(.ui.slider.checkbox input:focus ~ label all); + } + .ui.slider.checkbox input:checked ~ .box { + &:extend(.ui.slider.checkbox input:checked ~ label all); + } + .ui.slider.checkbox input:focus:checked ~ .box { + &:extend(.ui.slider.checkbox input:focus:checked ~ label all); + } + } + & when (@variationCheckboxToggle) { + .ui.toggle.checkbox .box { + &:extend(.ui.toggle.checkbox label all); + } + .ui.toggle.checkbox input ~ .box { + &:extend(.ui.toggle.checkbox input ~ label all); + } + .ui.toggle.checkbox input:focus ~ .box { + &:extend(.ui.toggle.checkbox input:focus ~ label all); + } + .ui.toggle.checkbox input:checked ~ .box { + &:extend(.ui.toggle.checkbox input:checked ~ label all); + } + .ui.toggle.checkbox input:focus:checked ~ .box { + &:extend(.ui.toggle.checkbox input:focus:checked ~ label all); + } + } + & when (@variationCheckboxFitted) { + .ui.fitted.checkbox .box { + &:extend(.ui.fitted.checkbox label all); + } + } + & when (@variationCheckboxInverted) { + .ui.inverted.checkbox .box { + &:extend(.ui.inverted.checkbox label all); + } + & when (@variationCheckboxSlider) { + .ui.inverted.slider.checkbox .box { + &:extend(.ui.inverted.slider.checkbox label all); + } + .ui.inverted.slider.checkbox input:checked ~ .box { + &:extend(.ui.inverted.slider.checkbox input:checked ~ label all); + } + .ui.inverted.slider.checkbox input:focus:checked ~ .box { + &:extend(.ui.inverted.slider.checkbox input:focus:checked ~ label all); + } + } + & when (@variationCheckboxToggle) { + .ui.inverted.toggle.checkbox .box { + &:extend(.ui.inverted.toggle.checkbox label all); + } + .ui.inverted.toggle.checkbox input:checked ~ .box { + &:extend(.ui.inverted.toggle.checkbox input:checked ~ label all); + } + .ui.inverted.toggle.checkbox input:focus:checked ~ .box { + &:extend(.ui.inverted.toggle.checkbox input:focus:checked ~ label all); + } + } + } +} + +.ui.checkbox label { + cursor: auto; + position: relative; + display: block; + padding-left: @labelDistance; + outline: none; + font-size: @labelFontSize; +} + +.ui.checkbox label:before { + position: absolute; + top: 0; + left: 0; + + width: @checkboxSize; + height: @checkboxSize; + content: ''; + + background: @checkboxBackground; + border-radius: @checkboxBorderRadius; + + transition: @checkboxTransition; + border: @checkboxBorder; +} + +/*-------------- + Checkmark +---------------*/ + +.ui.checkbox label:after { + position: absolute; + font-size: @checkboxCheckFontSize; + top: @checkboxCheckTop; + left: @checkboxCheckLeft; + width: @checkboxCheckSize; + height: @checkboxCheckSize; + text-align: center; + + opacity: 0; + color: @checkboxColor; + transition: @checkboxTransition; +} + +/*-------------- + Label +---------------*/ + +/* Inside */ +.ui.checkbox label, +.ui.checkbox + label { + color: @labelColor; + transition: @labelTransition; +} + +/* Outside */ +.ui.checkbox + label { + vertical-align: middle; +} + + +/******************************* + States +*******************************/ + + +/*-------------- + Hover +---------------*/ + +.ui.checkbox label:hover::before { + background: @checkboxHoverBackground; + border-color: @checkboxHoverBorderColor; +} +.ui.checkbox label:hover, +.ui.checkbox + label:hover { + color: @labelHoverColor; +} + +/*-------------- + Down +---------------*/ + +.ui.checkbox label:active::before { + background: @checkboxPressedBackground; + border-color: @checkboxPressedBorderColor; +} +.ui.checkbox label:active::after { + color: @checkboxPressedColor; +} +.ui.checkbox input:active ~ label { + color: @labelPressedColor; +} + +/*-------------- + Focus +---------------*/ + +.ui.checkbox input:focus ~ label:before { + background: @checkboxFocusBackground; + border-color: @checkboxFocusBorderColor; +} +.ui.checkbox input:focus ~ label:after { + color: @checkboxFocusCheckColor; +} +.ui.checkbox input:focus ~ label { + color: @labelFocusColor; +} + +/*-------------- + Active +---------------*/ + +.ui.checkbox input:checked ~ label:before { + background: @checkboxActiveBackground; + border-color: @checkboxActiveBorderColor; +} +.ui.checkbox input:checked ~ label:after { + opacity: @checkboxActiveCheckOpacity; + color: @checkboxActiveCheckColor; +} + +& when (@variationCheckboxIndeterminate){ + /*-------------- + Indeterminate + ---------------*/ + + .ui.checkbox input:not([type=radio]):indeterminate ~ label:before { + background: @checkboxIndeterminateBackground; + border-color: @checkboxIndeterminateBorderColor; + } + .ui.checkbox input:not([type=radio]):indeterminate ~ label:after { + opacity: @checkboxIndeterminateCheckOpacity; + color: @checkboxIndeterminateCheckColor; + } + .ui.indeterminate.toggle.checkbox { + & input:not([type=radio]):indeterminate ~ label:before { + background: @toggleCenterLaneBackground; + } + & input:not([type=radio]) ~ label:after { + left: @toggleCenterOffset; + } + } +} + +/*-------------- + Active Focus +---------------*/ + +.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before, +.ui.checkbox input:checked:focus ~ label:before { + background: @checkboxActiveFocusBackground; + border-color: @checkboxActiveFocusBorderColor; +} +.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after, +.ui.checkbox input:checked:focus ~ label:after { + color: @checkboxActiveFocusCheckColor; +} + + +/*-------------- + Read-Only +---------------*/ + +.ui.read-only.checkbox, +.ui.read-only.checkbox label { + cursor: default; +} + +& when (@variationCheckboxDisabled) { + /*-------------- + Disabled + ---------------*/ + + .ui.disabled.checkbox label, + .ui.checkbox input[disabled] ~ label { + cursor: default !important; + opacity: @disabledCheckboxOpacity; + color: @disabledCheckboxLabelColor; + pointer-events: none; + } +} + +/*-------------- + Hidden +---------------*/ + +/* Initialized checkbox moves input below element + to prevent manually triggering */ +.ui.checkbox input.hidden { + z-index: -1; +} + +/* Selectable Label */ +.ui.checkbox input.hidden + label { + cursor: pointer; + user-select: none; +} + + +/******************************* + Types +*******************************/ + +& when (@variationCheckboxRadio) { + /*-------------- + Radio + ---------------*/ + + .ui.radio.checkbox { + min-height: @radioSize; + } + + .ui.radio.checkbox label { + padding-left: @radioLabelDistance; + } + + /* Box */ + .ui.radio.checkbox label:before { + content: ''; + transform: none; + + width: @radioSize; + height: @radioSize; + border-radius: @circularRadius; + top: @radioTop; + left: @radioLeft; + } + + /* Bullet */ + .ui.radio.checkbox label:after { + border: none; + content: '' !important; + line-height: @radioSize; + top: @bulletTop; + left: @bulletLeft; + width: @radioSize; + height: @radioSize; + border-radius: @bulletRadius; + transform: scale(@bulletScale); + background-color: @bulletColor; + } + + /* Focus */ + .ui.radio.checkbox input:focus ~ label:before { + background-color: @radioFocusBackground; + } + .ui.radio.checkbox input:focus ~ label:after { + background-color: @radioFocusBulletColor; + } + + /* Indeterminate */ + .ui.radio.checkbox input:indeterminate ~ label:after { + opacity: 0; + } + + /* Active */ + .ui.radio.checkbox input:checked ~ label:before { + background-color: @radioActiveBackground; + } + .ui.radio.checkbox input:checked ~ label:after { + background-color: @radioActiveBulletColor; + } + + /* Active Focus */ + .ui.radio.checkbox input:focus:checked ~ label:before { + background-color: @radioActiveFocusBackground; + } + .ui.radio.checkbox input:focus:checked ~ label:after { + background-color: @radioActiveFocusBulletColor; + } +} + +& when (@variationCheckboxSlider) { + /*-------------- + Slider + ---------------*/ + + .ui.slider.checkbox { + min-height: @sliderHeight; + } + + /* Input */ + .ui.slider.checkbox input { + width: @sliderWidth; + height: @sliderHeight; + } + + /* Label */ + .ui.slider.checkbox label { + padding-left: @sliderLabelDistance; + line-height: @sliderLabelLineHeight; + color: @sliderOffLabelColor; + } + + /* Line */ + .ui.slider.checkbox label:before { + display: block; + position: absolute; + content: ''; + transform: none; + border: none !important; + left: 0; + z-index: 1; + + top: @sliderLineVerticalOffset; + + background-color: @sliderLineColor; + width: @sliderLineWidth; + height: @sliderLineHeight; + + border-radius: @sliderLineRadius; + transition: @sliderLineTransition; + + } + + /* Handle */ + .ui.slider.checkbox label:after { + background: @handleBackground; + position: absolute; + content: '' !important; + opacity: 1; + z-index: 2; + + border: none; + box-shadow: @handleBoxShadow; + width: @sliderHandleSize; + height: @sliderHandleSize; + top: @sliderHandleOffset; + left: 0; + transform: none; + + border-radius: @circularRadius; + transition: @sliderHandleTransition; + } + + /* Focus */ + .ui.slider.checkbox input:focus ~ label:before { + background-color: @toggleFocusColor; + border: none; + } + + /* Hover */ + .ui.slider.checkbox label:hover { + color: @sliderHoverLabelColor; + } + .ui.slider.checkbox label:hover::before { + background: @sliderHoverLaneBackground; + } + + /* Active */ + .ui.slider.checkbox input:checked ~ label { + color: @sliderOnLabelColor !important; + } + .ui.slider.checkbox input:checked ~ label:before { + background-color: @sliderOnLineColor !important; + } + .ui.slider.checkbox input:checked ~ label:after { + left: @sliderTravelDistance; + } + + /* Active Focus */ + .ui.slider.checkbox input:focus:checked ~ label { + color: @sliderOnFocusLabelColor !important; + } + .ui.slider.checkbox input:focus:checked ~ label:before { + background-color: @sliderOnFocusLineColor !important; + } +} + +& when (@variationCheckboxToggle) { + /*-------------- + Toggle + ---------------*/ + + .ui.toggle.checkbox { + min-height: @toggleHeight; + } + + /* Input */ + .ui.toggle.checkbox input { + width: @toggleWidth; + height: @toggleHeight; + } + + /* Label */ + .ui.toggle.checkbox label { + min-height: @toggleHandleSize; + padding-left: @toggleLabelDistance; + color: @toggleOffLabelColor; + } + .ui.toggle.checkbox label { + padding-top: @toggleLabelOffset; + } + + /* Switch */ + .ui.toggle.checkbox label:before { + display: block; + position: absolute; + content: ''; + z-index: 1; + transform: none; + border: none; + + top: @toggleLaneVerticalOffset; + + background: @toggleLaneBackground; + box-shadow: @toggleLaneBoxShadow; + width: @toggleLaneWidth; + height: @toggleLaneHeight; + border-radius: @toggleHandleRadius; + } + + /* Handle */ + .ui.toggle.checkbox label:after { + background: @handleBackground; + position: absolute; + content: '' !important; + opacity: 1; + z-index: 2; + + border: none; + box-shadow: @handleBoxShadow; + width: @toggleHandleSize; + height: @toggleHandleSize; + top: @toggleHandleOffset; + left: 0; + + border-radius: @circularRadius; + transition: @toggleHandleTransition; + } + + .ui.toggle.checkbox input ~ label:after { + left: @toggleOffOffset; + box-shadow: @toggleOffHandleBoxShadow; + } + + /* Focus */ + .ui.toggle.checkbox input:focus ~ label:before { + background-color: @toggleFocusColor; + border: none; + } + + /* Hover */ + .ui.toggle.checkbox label:hover::before { + background-color: @toggleHoverColor; + border: none; + } + + /* Active */ + .ui.toggle.checkbox input:checked ~ label { + color: @toggleOnLabelColor !important; + } + .ui.toggle.checkbox input:checked ~ label:before { + background-color: @toggleOnLaneColor !important; + } + .ui.toggle.checkbox input:checked ~ label:after { + left: @toggleOnOffset; + box-shadow: @toggleOnHandleBoxShadow; + } + + + /* Active Focus */ + .ui.toggle.checkbox input:focus:checked ~ label { + color: @toggleOnFocusLabelColor !important; + } + .ui.toggle.checkbox input:focus:checked ~ label:before { + background-color: @toggleOnFocusLaneColor !important; + } +} + +/******************************* + Variations +*******************************/ +& when (@variationCheckboxFitted) { + /*-------------- + Fitted + ---------------*/ + + .ui.fitted.checkbox label { + padding-left: 0 !important; + } + + .ui.fitted.toggle.checkbox { + width: @toggleWidth; + } + + .ui.fitted.slider.checkbox { + width: @sliderWidth; + } +} + +& when (@variationCheckboxInverted) { + /*-------------- + Inverted + ---------------*/ + .ui.inverted.checkbox label, + .ui.inverted.checkbox + label { + color: @invertedTextColor !important; + } + + /* Hover */ + .ui.inverted.checkbox label:hover { + color: @invertedHoveredTextColor !important; + } + .ui.inverted.checkbox label:hover::before { + border-color: @strongSelectedBorderColor; + } + & when (@variationCheckboxSlider) { + /*Slider Label */ + .ui.inverted.slider.checkbox label { + color: @invertedUnselectedTextColor; + } + + /* Slider Line */ + .ui.inverted.slider.checkbox label:before { + background-color: @invertedUnselectedTextColor !important; + } + + /* Slider Hover */ + .ui.inverted.slider.checkbox label:hover::before { + background: @invertedLightTextColor !important; + } + + /* Slider Active */ + .ui.inverted.slider.checkbox input:checked ~ label { + color: @invertedSelectedTextColor !important; + } + .ui.inverted.slider.checkbox input:checked ~ label:before { + background-color: @selectedWhiteBorderColor !important; + } + + /* Slider Active Focus */ + .ui.inverted.slider.checkbox input:focus:checked ~ label { + color: @invertedSelectedTextColor !important; + } + .ui.inverted.slider.checkbox input:focus:checked ~ label:before { + background-color: @selectedWhiteBorderColor !important; + } + } + & when (@variationCheckboxToggle) { + /* Toggle Switch */ + .ui.inverted.toggle.checkbox label:before { + background-color: @invertedTextColor !important; + } + + /* Toggle Hover */ + .ui.inverted.toggle.checkbox label:hover::before { + background: @invertedHoveredTextColor !important; + } + + /* Toggle Active */ + .ui.inverted.toggle.checkbox input:checked ~ label { + color: @invertedSelectedTextColor !important; + } + .ui.inverted.toggle.checkbox input:checked ~ label:before { + background-color: @toggleOnLaneColor !important; + } + + /* Toggle Active Focus */ + .ui.inverted.toggle.checkbox input:focus:checked ~ label { + color: @invertedSelectedTextColor !important; + } + .ui.inverted.toggle.checkbox input:focus:checked ~ label:before { + background-color: @toggleOnFocusLaneColor !important; + } + } +} + +/*-------------------- + Size +---------------------*/ + +each(@variationCheckboxSizes, { + @raw: @{value}Raw; + @size: @{value}CheckboxSize; + @circleScale: @{value}CheckboxCircleScale; + @circleLeft: @{value}CheckboxCircleLeft; + + .ui.@{value}.checkbox { + font-size: @@size; + } + + & when (@@raw > 1) { + .ui.@{value}.form .checkbox, + .ui.@{value}.checkbox { + &:not(.slider):not(.toggle):not(.radio) { + & + label:after, + label:before { + transform: scale(@@raw); + transform-origin:left; + } + } + &.radio when (@variationCheckboxRadio) { + & + label:before { + transform: scale(@@raw); + transform-origin:left; + } + & + label:after { + transform:scale(@@circleScale); + transform-origin:left; + left: @@circleLeft; + } + } + } + } + & when (@@raw > 1) and (@variationCheckboxBox) { + .ui.@{value}.form .checkbox, + .ui.@{value}.checkbox { + &:not(.slider):not(.toggle):not(.radio) { + & + .box:after, + .box:before { + transform: scale(@@raw); + transform-origin:left; + } + } + &.radio when (@variationCheckboxRadio) { + & + .box:before { + transform: scale(@@raw); + transform-origin:left; + } + & + .box:after { + transform:scale(@@circleScale); + transform-origin:left; + left: @@circleLeft; + } + } + } + } +}) + +.loadUIOverrides(); |