@import "variables"; vn-check { position: relative; cursor: pointer; display: inline-block; outline: none; & > .check { position: relative; box-sizing: border-box; display: inline-block; vertical-align: middle; border-radius: 2px; width: 20px; height: 20px; transition: background 250ms; border: 2px solid #666; margin: 3px; margin-right: .4em; & > .mark { box-sizing: border-box; position: absolute; display: block; border-width: 0; } &.checked { background-color: $color-main; border-color: $color-main; & > .focus { background-color: rgba($color-main, .15); } } &.checked > .mark { top: 0; left: 4px; transform: rotate(45deg); width: 7px; height: 13px; border: 2px solid $color-font-dark; border-top: 0; border-left: 0; } &.indeterminate > .mark { top: 50%; left: 50%; transform: translate(-50%, -50%); width: 12px; height: 2px; border-bottom: 2px solid #666; } } & > .check > .focus { position: absolute; top: 50%; left: 50%; height: 38px; width: 38px; margin-top: -19px; margin-left: -19px; border-radius: 50%; transform: scale3d(0, 0, 0); transition: background 250ms; transition: transform 250ms; background-color: rgba(0, 0, 0, .1); } &:focus > .check:not(.disabled) > .focus { transform: scale3d(1, 1, 1); } & > i { padding-left: 5px; position: absolute; color: $color-font-secondary; font-size: 20px; } }