UNPKG

vui-design

Version:

A high quality UI Toolkit based on Vue.js

258 lines (229 loc) 5.63 kB
@vui-radio: ~"@{vui}-radio"; .@{vui-radio} { cursor:pointer; display:inline-flex; align-items:center; max-width:100%; vertical-align:middle; color:@radio-font-color; line-height:@radio-line-height; white-space:nowrap; &-input { position:relative; display:block; border:1px solid @radio-border-color; border-radius:@radio-border-radius; background-color:@radio-background-color; transition:all @transition-duration @transition-timing-function; &:before { content:""; position:absolute; top:50%; left:50%; display:block; border-radius:@radio-border-radius; background-color:@radio-checkmark-color; opacity:0; transform:scale(0); transition:all @transition-duration @transition-timing-function; } input[type="radio"] { 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:@radio-font-size-sm; } &-small &-input { width:@radio-size-sm; height:@radio-size-sm; &:before { width:@radio-size-sm - 8px; height:@radio-size-sm - 8px; margin-top:-((@radio-size-sm - 8px) / 2); margin-left:-((@radio-size-sm - 8px) / 2); } } &-small &-label { padding-left:@radio-size-sm - 8px; } &-medium { font-size:@radio-font-size-md; } &-medium &-input { width:@radio-size-md; height:@radio-size-md; &:before { width:@radio-size-md - 8px; height:@radio-size-md - 8px; margin-top:-((@radio-size-md - 8px) / 2); margin-left:-((@radio-size-md - 8px) / 2); } } &-medium &-label { padding-left:@radio-size-md - 8px; } &-large { font-size:@radio-font-size-lg; } &-large &-input { width:@radio-size-lg; height:@radio-size-lg; &:before { width:@radio-size-lg - 8px; height:@radio-size-lg - 8px; margin-top:-((@radio-size-lg - 8px) / 2); margin-left:-((@radio-size-lg - 8px) / 2); } } &-large &-label { padding-left:@radio-size-lg - 8px; } // hovered &:hover &-input { border-color:@radio-hover-border-color; } // focused &-focused &-input { border-color:@radio-hover-border-color; } // checked &-checked &-input, &-checked:hover &-input { border-color:@radio-checked-border-color; &:before { opacity:1; transform:scale(1); } } // disabled &-disabled { cursor:not-allowed; color:@radio-disabled-font-color; } &-disabled &-input, &-disabled:hover &-input { border-color:@radio-disabled-border-color; background-color:@radio-disabled-background-color; &:before { background-color:@radio-disabled-checkmark-color; } } // button &-button { position:relative; cursor:pointer; display:inline-block; border:@radio-button-border-width solid @radio-button-border-color; border-radius:@radio-button-border-radius; background-color:@radio-button-background-color; margin:0; vertical-align:middle; color:@radio-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="radio"] { 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; } } // size &-small { height:@radio-button-size-sm; padding:0 @radio-button-padding-size-sm; font-size:@radio-button-font-size-sm; line-height:@radio-button-size-sm - @radio-button-border-width * 2; } &-medium { height:@radio-button-size-md; padding:0 @radio-button-padding-size-sm; font-size:@radio-button-font-size-md; line-height:@radio-button-size-md - @radio-button-border-width * 2; } &-large { height:@radio-button-size-lg; padding:0 @radio-button-padding-size-lg; font-size:@radio-button-font-size-lg; line-height:@radio-button-size-lg - @radio-button-border-width * 2; } // hovered &:hover { z-index:1; color:@radio-button-hover-font-color; } // focused &-focused { z-index:2 !important; color:@radio-button-hover-font-color !important; } // checked &-checked { z-index:3 !important; border-color:@radio-button-checked-border-color; color:@radio-button-checked-font-color !important; } // focused & checked &-focused&-checked { z-index:4 !important; } // disabled &-disabled { z-index:0 !important; cursor:not-allowed; border-color:@radio-button-disabled-border-color; background-color:@radio-button-disabled-background-color; color:@radio-button-disabled-font-color !important; } // checked & disabled &-checked&-disabled { background-color:shade(@radio-button-disabled-background-color, 5%); } } }