UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

130 lines (119 loc) 3.47 kB
@import '../../../../es/style/themes/default'; @import '../../../../es/style/mixins/index'; @import '../../radio/style/mixin'; @pro-checkbox-prefix-cls: ~'@{c7n-pro-prefix}-checkbox'; .@{pro-checkbox-prefix-cls} { .radio-btn; &-inner { position: relative; display: inline-block; width: @checkbox-size; height: @checkbox-size; font-size: @font-size-base !important; vertical-align: middle; background-color: #fff; border: @checkbox-border-width @border-style-base @checkbox-border-color; border-radius: @border-radius-sm; border-collapse: separate; transition: border-color 90ms cubic-bezier(0, 0, 0.2, 0.1), background-color 90ms cubic-bezier(0, 0, 0.2, 0.1); &::after { @check-width: (@checkbox-size / 14) * 5; @check-height: (@checkbox-size / 14) * 10; position: absolute; top: (@checkbox-size - @check-height) / 2 - 3 * (@checkbox-size / 14); left: (@checkbox-size - @check-width) / 2 - 1.5 * (@checkbox-size / 14); display: table; width: @check-width; height: @check-height; border: 0.02rem solid #fff; border-top: 0; border-left: 0; transform: rotate(45deg) scale(0); transition: all 0.1s @ease-in-back; content: ' '; } & + span { padding-right: 0.08rem; padding-left: 0.08rem; vertical-align: middle; } } &:hover + &-inner, &-wrapper:hover &-inner { border-color: @primary-7; } &:focus + &-inner { border-color: @primary-7; box-shadow: 0 0 @outline-blur-size @outline-width fade(@outline-color, 20%); } &:checked + &-inner, &-indeterminate &-inner { background-color: @primary-color !important; border-color: @primary-color; &::after { transform: rotate(45deg) scale(1); opacity: 1; } } &:hover &:checked + &-inner, &-indeterminate:hover &-inner, &:focus:checked + &-inner { background-color: @primary-7; border-color: @primary-7; } &-indeterminate &-inner::after { @indeterminate-width: (@checkbox-size / 14) * 8; @indeterminate-height: (@checkbox-size / 14) * 1; position: absolute; top: (@checkbox-size - 0.05rem - @indeterminate-height) / 2; left: (@checkbox-size - @indeterminate-width - @checkbox-border-width * 2) / 2; width: @indeterminate-width; height: @indeterminate-height; transform: scale(1) !important; content: ' '; } &:disabled + &-inner { color: @disabled-color; background-color: @input-disabled-bg !important; border-color: @disabled-color !important; &::after { border-color: @disabled-color !important; } } &-button { padding: 0 0.15rem; line-height: 0.3rem; .@{pro-checkbox-prefix-cls}-inner { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: auto; height: auto; border-radius: @border-radius-base; &::after { display: none; } & + span { position: relative; z-index: 1; padding: 0; } } .@{pro-checkbox-prefix-cls}:checked + .@{pro-checkbox-prefix-cls}-inner + span { color: #fff; } &:hover .@{pro-checkbox-prefix-cls}-inner + span { color: @primary-color; } } &-button + &-button { margin-left: 0.1rem; } &-float-label .@{field-label-prefix-cls}-wrapper { left: 0; transform-origin: @float-label-transform-origin-high; } }