UNPKG

vui-design

Version:

A high quality UI Toolkit based on Vue.js

307 lines (270 loc) 6.95 kB
@vui-checkbox: ~"@{vui}-checkbox"; .@{vui-checkbox} { cursor:pointer; display:inline-flex; align-items:center; max-width:100%; vertical-align:middle; color:@checkbox-font-color; line-height:@checkbox-line-height; white-space:nowrap; &-input { position:relative; display:block; border:1px solid @checkbox-border-color; border-radius:@checkbox-border-radius; background-color:@checkbox-background-color; transition:all @transition-duration @transition-timing-function; svg { position:absolute; top:50%; left:50%; opacity:0; transform:scale(0); transition:all @transition-duration @transition-timing-function; &:nth-child(1) { fill:@checkbox-indeterminate-color; } &:nth-child(2) { fill:@checkbox-checkmark-color; } } input[type="checkbox"] { position:absolute; top:0; bottom:0; left:0; right:0; z-index:-1; cursor:inherit; display:block; width:100%; height:100%; margin:0; padding:0; opacity:0; appearance:none; } } &-label { flex:1; display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; } // size &-small { font-size:@checkbox-font-size-sm; } &-small &-input { width:@checkbox-size-sm; height:@checkbox-size-sm; svg { width:@checkbox-size-sm - 8px; height:@checkbox-size-sm - 8px; margin-top:-((@checkbox-size-sm - 8px) / 2); margin-left:-((@checkbox-size-sm - 8px) / 2); } } &-small &-label { padding-left:@checkbox-size-sm - 8px; } &-medium { font-size:@checkbox-font-size-md; } &-medium &-input { width:@checkbox-size-md; height:@checkbox-size-md; svg { width:@checkbox-size-md - 8px; height:@checkbox-size-md - 8px; margin-top:-((@checkbox-size-md - 8px) / 2); margin-left:-((@checkbox-size-md - 8px) / 2); } } &-medium &-label { padding-left:@checkbox-size-md - 8px; } &-large { font-size:@checkbox-font-size-lg; } &-large &-input { width:@checkbox-size-lg; height:@checkbox-size-lg; svg { width:@checkbox-size-lg - 8px; height:@checkbox-size-lg - 8px; margin-top:-((@checkbox-size-lg - 8px) / 2); margin-left:-((@checkbox-size-lg - 8px) / 2); } } &-large &-label { padding-left:@checkbox-size-lg - 8px; } // hovered &:hover &-input { border-color:@checkbox-hover-border-color; } // focused &-focused &-input { border-color:@checkbox-hover-border-color; } // indeterminate &-indeterminate &-input { svg:nth-child(1) { opacity:1; transform:scale(1); } } // checked &-checked &-input, &-checked:hover &-input { border-color:@checkbox-checked-border-color; background-color:@checkbox-checked-background-color; svg:nth-child(2) { opacity:1; transform:scale(1); } } // disabled &-disabled { cursor:not-allowed; color:@checkbox-disabled-font-color; } &-disabled &-input, &-disabled:hover &-input { border-color:@checkbox-disabled-border-color; background-color:@checkbox-disabled-background-color; svg:nth-child(1) { fill:@checkbox-disabled-indeterminate-color; } svg:nth-child(2) { fill:@checkbox-disabled-checkmark-color; } } // button &-button { position:relative; cursor:pointer; display:inline-block; border:@checkbox-button-border-width solid @checkbox-button-border-color; border-radius:@checkbox-button-border-radius; background-color:@checkbox-button-background-color; margin:0; vertical-align:middle; color:@checkbox-button-font-color; font-weight:400; white-space:nowrap; text-align:center; transition:all @transition-duration @transition-timing-function; &-input { position:absolute; top:0; bottom:0; left:0; right:0; z-index:-1; display:block; width:100%; height:100%; margin:0; padding:0; opacity:0; input[type="checkbox"] { position:absolute; top:0; bottom:0; left:0; right:0; cursor:inherit; display:block; width:100%; height:100%; margin:0; padding:0; opacity:0; appearance:none; } } &:after { position:absolute; top:1px; right:1px; content:""; display:block; width:0; height:0; border-style:solid; border-color:@checkbox-button-border-color @checkbox-button-border-color transparent transparent; border-radius:@checkbox-button-border-radius; transition:all @transition-duration @transition-timing-function; } // size &-small { height:@checkbox-button-size-sm; padding:0 @checkbox-button-padding-size-sm; font-size:@checkbox-button-font-size-sm; line-height:@checkbox-button-size-sm - @checkbox-button-border-width * 2; &:after { border-width:3px; } } &-medium { height:@checkbox-button-size-md; padding:0 @checkbox-button-padding-size-md; font-size:@checkbox-button-font-size-md; line-height:@checkbox-button-size-md - @checkbox-button-border-width * 2; &:after { border-width:4px; } } &-large { height:@checkbox-button-size-lg; padding:0 @checkbox-button-padding-size-lg; font-size:@checkbox-button-font-size-lg; line-height:@checkbox-button-size-lg - @checkbox-button-border-width * 2; &:after { border-width:5px; } } // hovered &:hover { z-index:1; color:@checkbox-button-hover-font-color; } // focused &-focused { z-index:2 !important; color:@checkbox-button-hover-font-color !important; } // checked &-checked { z-index:3 !important; border-color:@checkbox-button-checked-border-color; color:@checkbox-button-checked-font-color !important; &:after { border-color:@checkbox-button-checked-border-color @checkbox-button-checked-border-color transparent transparent; } } // focused & checked &-focused&-checked { z-index:4 !important; } // disabled &-disabled { z-index:0 !important; cursor:not-allowed; border-color:@checkbox-button-disabled-border-color; background-color:@checkbox-button-disabled-background-color; color:@checkbox-button-disabled-font-color !important; &:after { border-color:@checkbox-button-disabled-border-color @checkbox-button-disabled-border-color transparent transparent; } } // checked & disabled &-checked&-disabled { background-color:shade(@checkbox-button-disabled-background-color, 5%); } } }