$boxBorderColor: #999898; $boxCheckedColor: #1890ff; $boxDisabledColor: #d9d9d9; @mixin check-box() { .check-box-inner { position: relative; display: inline-block; padding: 0; width: 14px; height: 14px; background-color: #fff; border: 1px solid $boxBorderColor; user-select: none; border-radius: 2px; transition: all .2s; cursor: pointer; >svg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; fill: #fff; transform: scale(0); opacity: 0; transition: all .08s cubic-bezier(.78, .14, .15, .86); } } >input[type="checkbox"] { display: none; &:checked+.check-box-inner { border-color: $boxCheckedColor; background-color: $boxCheckedColor; >svg { transform: scale(1); opacity: 1; } } &:disabled { &+.check-box-inner { border-color: $boxDisabledColor; cursor: default; } &:checked+.check-box-inner { border-color: $boxDisabledColor; background-color: $boxDisabledColor; } &~span { color: $boxDisabledColor; cursor: default; } } } }