@mixin check-box() { .check-box-inner { position: relative; display: inline-block; padding: 0; width: 14px; height: 14px; background-color: #fff; border: 1px solid var(--box-color); 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: var(--link-color); background-color: var(--link-color); >svg { transform: scale(1); opacity: 1; } } &:disabled { &+.check-box-inner { border-color: var(--disabled-box-color); cursor: default; } &:checked+.check-box-inner { border-color: var(--disabled-box-color); background-color: var(--disabled-box-color); } &~span { color: var(--disabled-box-color); cursor: default; } } } }